React Native Starter Resources for Native Developers

March 29, 2018

I was asked online for a list of resources for iOS developers looking to dip their toes into React Native. What a great question!

React Native is a framework for building native apps (iOS and Android) on top of React, which is a JavaScript framework for writing user interfaces. There are many benefits (and drawbacks, of course) to using React Native. Importantly: React Native is just a tool. It’s not a replacement to Swift or Objective-C; it’s just a tool that you can add to your toolbox. The more tools you have, the more types of problems you can solve!

The official React Native guide is a great place to start, and it includes an in-browser simulator for you to try out. The official React docs are also useful but are targeted for web developers. Still, the technology is incredibly fascinating. If you’re clever enough to write Swift, you’re clever enough to learn a bit of web tech, and I encourage you to skim over the docs.

Predictably, the Ray Wenderlich React Native tutorial is excellent and in-depth. It takes you through building a full app, so it’s a great end-to-end resource but might be overwhelming when your first starting out.

You should obviously check out the Artsy Engineer Blog. Most React Native tutorials and resources you’ll find online are targeting web developers who are already familiar with React; iOS developers should read Orta’s post on Intro to React Native for iOS Developers for a native perspective.

Naturally, Artsy’s React Native codebase is open source. You can download the code and try it out for yourself! The setup instructions are very detailed, specifically to help unfamiliar developers try it out. The readme also has an extensive list of resources. One note about our React Native app: it’s written in TypeScript, not JavaScript. TypeScript is definitely something you’ll want to check out if you’re coming from a Swift background. I would not write React Native without TypeScript. The docs for how to do this are a bit out of date, but I’ve got an open pull request to update it (I would read the proposed updated docs here).

One more resource I found quite helpful, but assumes a bit of a web developer-y background, is It contains excellent, short video screencasts explaining single topics at a time. It’s a paid resource; if you can, ask your work to pay for it.

So that’s it! Hopefully you’ll find these useful. One final note: it’s easy to get frustrated and discouraged. Especially if you’re trying this by yourself. But try not to give up – this stuff is new, and new stuff is always difficult. Try not to worry about understanding the full stack. There’s going to be a lot of communal knowledge that “everybody knows” but no one specifically teaches. It sucks. The best suggestions I can give you is to find someone to learn this stuff with, together. Don’t give up, you can do this.

Please submit typo corrections on GitHub