Blueprint to Becoming a React Native Developer

by Spencer Carli

This post was originally published on Medium. Please look there for any updates.

I’m a big believer in React Native — if you’re reading this you’re likely interested in it as well. The Javascript ecosystem is quickly evolving and it’s hard to make choices without often following the latest buzz.

So I wanted to put together a curated list of how to become a React Native developer. A list that will allow you to build native iOS and Android apps, with Javascript, in a quick and effective way — while minimizing the noise.

I’ve been using React Native for just shy of a year, every day, and whenever someone asks me how to get started this is the exact sequence I prescribe.

Learn Javascript

Javascript has been around a while and relatively recently it went through a pretty major update with the release of ES6. This makes Javascript intimidating, especially to those who haven’t used it before. It may seem like all of the tutorials you’re finding, all of the books out there, are no longer “right”.

This may lead some to avoid learning Javascript and hoping to just pick it up along the way. Though it’s possible, I think you can more effectively learn specific technologies if you have a basic understanding of Javascript.

Course

Codeacademy has a nice intro to Javascript course. It’s mostly free but if you want access to quizzes you’ll have to upgrade. You can access that course here.

If you’re brand new to the Javascript world, or if you’ve decided not to learn it yet, ES6 is the latest update to the language. There are a number of great updates to the language and I’ve loved using it. But it does mean that quite a few tutorials are now out of date. Though all of those tutorials still work completely fine, you’ll want to know ES6 so everything you’re writing and reading in React Native doesn’t seem totally foreign to you.

Learn React

Now that you’ve got a grasp on Javascript we can move on to React. React is a technology created and used by Facebook to build web applications. Why would you be interested in this if you want to use React Native? As the name suggests they’re both based on React meaning the way you structure your application, how data moves, and how you think about your app will be the same between the two.

This is something I did not do when first starting with React Native — I had never used React before I decided to skip over React with the thought that I would learn it as I went. Sure it worked but I think I could have saved a lot of time by investing a little time up front to learn React itself. I highly recommend this.

Tutorial

I’m always a fan of tutorials, especially the “official” ones. Again, they may not be the most polished thing but they always provide value. With that I would highly suggest going over the tutorial in the React docs.

Course

As I mentioned before Free Code Camp seems to be a great option and they do cover React.

Learn React Native

As I said before React Native is React — it just targets native platforms. A lot of the high level stuff you’ll already know from learning React. There are some syntax differences (using View instead of div, etc) but the way you reason about code is exactly the same. What you’re really learning is how to work with the native platforms. It’s not difficult but, as with anything, there is a learning curve.

Tutorial

Again I want to point you to the official Tutorial because I feel it’s the fastest, albeit maybe not the most in depth, way to get started with React Native. Prior to going through the tutorial though make sure to do the Getting Started guide to make sure your development environment is ready to go.

Learn a Backend

So at this point, and if you’ve never built an app before, you should be able to build a basic app… but it’s all client side. What if you want to store some data on your server or connect multiple users together? You’ll need to setup a backend for that. There are a plethora of choices… so I’m just going to cover 3. All I can say, especially as you’re getting started, is to choose one and stick with it. You could constantly chase the holy grail of technologies but then you’ll never have time to actually build something :)

Here’s a few suggestions

Parse Server

Parse Server is replacing Parse.com since it has been announced that it will shut down. It’s a self hosted version of the platform. Facebook’s F8 app was powered by this service. You can view a guide on how to use it here.

Meteor

I’m personally biased towards Meteor. It’s what I use at work every day and I am an advocate for. You can get started with Meteor by following the tutorial. Once you’ve got a grasp on Meteor check out this boilerplate to quickly get started with Meteor and React Native.

Why not framework X?!?!?!?!

There are so many frameworks out there that I can’t mention them all. Beyond that I want to keep things simple and not overload you with choice — there’s a lot of choice out there. I want to prescribe a plan that will allow you to actually build apps with React Native.

Learn Redux

A transformative moment for me was when I learned Redux — even if I wasn’t using it I was able to reason about how to better build apps. Especially when using React. It’s definitely more advanced and I found it a little tricky to pick up at first but once I figured it out I was very happy by what I was seeing.

Redux allows you to build apps that are very predictable and let’s you keep all of your data in once place. If you start to build apps of a decent size with React/React Native and start getting confused about where everything is this will likely help you out quite a lot.

Tutorial

Again with the official docs! I think the Redux docs have a great tutorial and would definitely suggest checking it out.

Beyond that, the course that I’ve recommended numerous times is “Full Stack Redux Tutorial”. It goes well beyond Redux alone (covering testing and React as well) but since you’ve got that knowledge already you’re ready. This was the tutorial that made Redux “click” for me.

Course

The creator of Redux has a free course on egghead.io for learning Redux. At times it went through things a bit fast (for me at least) but is still a great resource. You can access that here.

I hope you found this outline helpful! There are a million and one ways to learn a new technology and this is simply one way. Let me know what you end up building!

If you’re interested in learning more about React Native and Meteor sign up for my email list! I’ll send you the latest post each week and will soon be sending exclusive content to the members on that list.