Updated June 8, 2016
Blueprint to becoming a React Native Developer
Originally publish on medium.com.
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.
1. 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.
Also, though I’ve never personally used them, I’ve heard incredible things about Free Code Camp.
Tutorial
If a course or a book isn’t for you then I would suggest checking out the Javascript tutorials from the Mozilla Development Group. They’re completely free but may lack some of the polish that a course or book may have. This is how I personally learn Javascript.
ES6
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.
For an introduction to ES6 checkout out this overview.
2. 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.
Another option would be the React.js Fundamentals course from React.js Program.
3. 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.
The Getting Started is available here and the tutorial is here.
Beyond that you can get a long way with reading through the rest of the docs and spending some time experimenting.
Course
I would suggest checking out React Native Basics: Build a Currency Converter. This is an in-depth video series I put together (for free) to teach you the information you’ll need to know when building a React Native app. if you’re just getting started Modules 1–4 will save you an insane amount of time. There’s also a great community you can join to ask questions.
4. 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.
I’ve got an entire course dedicated to teaching people how to use React Native and Meteor together — it’s a paid course but it’s the best option if you’re serious about this stack and want to start building apps with it fast. Learn More.
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.
5. 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.
My free video course, React Native Basics: Build a Currency Converter, covers adding Redux to your app in Module 5.
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!