Dec 2016 - Current
Full Stack Developer
This is a personal project of mine. I started with just wanting to get familiar with React Native, but then I couldn't put it down. The RN ecosystem has been a joy to learn & I look forward to future releases.
Behind the code
The client is running on
react-native init Project. This gave me access to all iOS and Android native code. This was important since there is a lot of unknowns with RN still and I would need to manipulate the
appdelegate.m often. If you use
create-react-native-app to initiate your RN project, you will have very limited access to the properties of these types of files.
For state management, I am using a combination of
Redux-Form. I also take advantage of
React-state but primarily for fast UI updates. This has proven to work very similarly to
React, actually... it is the exact same.
This is a bit different from
React in that you primarily scope all styles to the component. Unless you've used something like
Styled-Components this may seem odd at first. Here's a short example of how I do this.
As you can see I've created reusable styles via the object spread syntax. With this, I can define main styles in a separate file and then override on per-component bases.
Dealing with Xcode
This has been a fun and steep learning curve. I don't directly communicate with the bridge via
obj-c instead I mainly interact with configurations. Things like
build phase settings and library linking. A lot of this is handled with
rnpm link but expect to be in here often still. I have gotten pretty good about debugging with Xcode and as long as I stay out of its way, it stays outta mine.
The server is a pretty standard
Express server. Routes are protected via
Local-strategy. In addition, I use the
async library to prevent convoluted code or "callback" hell.
Simply put. I am proficient with it. I am actually not running mongo as "schema-less" either. I know I know, let me explain. Here are few reasons why I chose the ODM abstraction
- Schemas to model the data
- I learned
Postgresfirst, so schemas made sense to me
- Validation & Required properties made simple
- Easier to read and write queries
- Attaching new functionality to Models
- Handles tight relationships well
So, now that you know why... I will say this. If I had the time and I was going to deploy this, I would use something like
neo4j or even
Hopefully, this project gives you a sense of my passion and proficiency as a full-stack developer. I've built this on my weekends and evenings and currently the private repo has
200+ commits. I did all this while working full time as hybrid Product Designer/ Developer at an early-stage startup. Lot's of coffee and dedication is my recommendation for anyone looking to build something similar.