Once upon a random day in the life of anybody and everybody, who aspires to be somebody, in this world of words written to make signals, that crosses over continents in seconds:
"Aww! You poor thing lemme just look at you. Ahh, don't worry I can fix you." "Just a tweak here and a li'l there. Go on, run, you should be perfectly fine now!" .... BOOOOOM!!!... Oh Boy! Code Red! Everythings falling apart! Mayday! Mayday!.
Now, if you're one of those few lucky souls, who never faced this exciting mishap and would love to go on this adventure trip; I have great news for you!
Step into the world of React Native and I'm pretty sure that you'd end up with the Mayday Incident soon enough.
If you have happened to Google for JS recently; you would have probably seen it all over the place.
Dev: Hey, I need some help in the backend;
JS: Sure! Why not, you can use nodeJS.
Dev: Oh uh, could I get some help with web development too?
JS: No problem, here's angularJS and ReactJS for you.
Dev: Hey Buddy! How ya doin..? If only you'd support mobile app development... You'd be super cool!
JS: Duh! I already do!.. You hibernating or what?! React Native is the way to go!
Dev: OMG! JS you're the man! When the greatest minds in the world are trying to incorporate polymorphism into their language; JS went out of the way swag and made the language itself polymorphic! How cool is that!
So there I was perfectly happy shipping native iOS apps, head over heels in love with xCode and Swift. That's when I got to hear all this fuss about ReactNative and my curiosity was sparked. The gist of React Native, with a wee bit of research I did turn out to be that, it's basically ReactJS with native components for creating hybrid apps.
Oh cool! Swift is similar to JS, this is gonna be a piece of cake! I'm just gonna dive right in and get my hands dirty with the traditional Hello World app.
For someone who's been an iOS developer, creating mind-blowing apps with just an IDE (xCode) and an iPhone, React Native is literally all over the place. You have the IDE, iPhone, the terminal, the metro bundler terminal, the browser for debugging and the endless red screens that pop up. Whoa! That's a lot of windows for running a simple Hello World app!
Once you get past all these overwhelming windows and come out of the safe space of Hello World app, you realize, creating UI, which is relatively quite simple with xCode interface builder, is not that easy in React Native. That you'd have to actually write chunks of code for creating UI. There are tags and styles, that will be completely alien, if you have zero experience of Web development. A bit more of hitting the walls and asking a couple of advice, finally you realise it's been going all wrong about this.
So here are some pointers for all the native developers who are planning to give a shot at react native.
1. First things first; the basics! Before you even remotely think about anything native in react, you need to first get a grip of ReactJS.
2. Make sure that you get a good understanding of Props and States; cause you'd be using them a lot.
3. The next important concept to get the hang of is navigation.
4. Then comes the part where you'd need to provide dynamic content; make web service calls.
5. After all this, you can finally come to the native part of React Native
6. I would suggest finding someone who already knows React Native, trust me, it helps a lot!
7. If you want to step it up a notch, you can also try to develop apps that are partly native and partly react.
The ReactJS and React Native documentations are by itself very clean and self-explanatory. Here are some useful tutorials and articles that helped me out along the way: