React Native for iOS developer: my journey and impressions
My journey from a complete beginner to production-ready apps
So I've been busy with some React Native stuff lately and in this article I'll describe my journey from a complete beginner to a point where I feel ready to fight real world challenges and build real production-ready apps with this awesome tool. Please note that this is not a quick start guide for iOS developers, but a list of resources I used to learn React Native with my thoughts on them.
The first thing I did is type 'react native for iOS developer' in Google and find this nice article . Authors provide a really good explanation to what is going on under the hood, compare it to what iOS developers are used to use. There are also really nice interactive examples.
However, the article is so big, I think anyone who can make it to the end in a single run should be granted a medal. 20 minutes in I was overwhelmed with all this new information and was not even in the middle of it. So I gave up on this article for now and started looking for some faster way to get started.
Where to go from here? I was feeling like I needed a course or a book which I could follow and build a real app that would do something useful.
So I found this book at packtpub.com called "Mastering React Native". Well, actually it was in one of the packs at hublebundle.com which included something like 15 books for $15. Not a bad deal, I though.
The description was good, it promised me that I will build a great app for both iOS and Android. BUT one thing that I didn't notice is that the book was almost a year old.
OMG, never read a book on React Native that is older than a month. Or even better — never read a book on React Native at all! Literally, RN is not even 1.0 at the moment and it is changing so fast that even a month-old advice may not work in the most recent update. Better find fresh courses and articles on the internet.
There is one thing I really enjoyed in this book, though — a brilliant explanation of Flux architecture. This book teaches you how to implement your own Flux from scratch and then gives you an introduction to redux, providing you with a great understanding of how things work under the hood.
I was so impressed I was literally running around in the office the next day and telling everyone that we have to use this approach in our next project. I know that this is not something new, but I just never had a chance or interest to have a look at it before.
But apart from introduction to Flux the book was useless. The code was barely working, I had to google and fix everything more and more as I progress through it and somewhere in the middle I was stuck completely. I needed another option.
Every course I found was either paid or outdated, except this one:
The course is basically perfect for a beginner and it's free! It's more targeted to web developers, though, but that's ok at this point.
The author gives a few awesome tips on how to configure the IDE (Visual Studio Code), points out a few awesome extensions to make life a lot easier. Course is well structured and split into small pieces, 5–10 minutes each. You will learn everything you need to be up and running:
- creating custom components
- using redux for state management
- using navigation
- performing network requests
- adjusting the app to work perfectly on both iOS and Android
It's being continuously updated and if something is not working as described in the video, you will surely find the answer on github.
Pay attention that this course assumes that you will use Expo to build and distribute your app. But ejecting the project form Expo should be fairly easy with a few small tweaks here and there. You may check out my repo on github for this app where I did not use Expo.
After completing this course you should be prepared to start working on your own project. There is still a lot to learn, though:
I've designed a small app that would generate a daily report describing what I've done during the day at work based on my activity from time tracker.
Would you like to read an article describing the process of developing this app with React Native? Let me know in the comments :)
Here I would like to give a few recommendations to anyone who comes from the world of iOS development, as my self, willing to learn some React Native:
- Start with this tutorial from raywenderlich.com. You will have a chance to quickly try this technology without wasting a too much time on theory.
- Check out this free course at Handlebar Labs to gain more experience and understanding of things. This get you prepared to real world projects.
- Check out this awesome talk about Flux at Facebook
- Do not use Deco IDE :)
- Use Visual Studio Code