A couple of my colleagues and friends attended React workshop at Wunderdog http://wunder.dog/ last week. React Native allows JS developers to easily dive in into iOS and Android development (with same code base, Hooray!). Here’s the sample application we built using React Native in mob programming style for iOS: https://github.com/Snjoo/wunderkit-react-native.
Why this is interesting? HTML, CSS and JS developers can relatively easily adopt native development with React Native, which uses JS bridge to call the native iOS and Android components — So instead of learning languages like Objective C and Swift for iOS and Java for Android, web developers can create native user experiences for the mobile world with little to no effort as long as the platform specific design guidelines are respected. This is something not to be underestimated.
This is different from for example from Phonegap, which will render HTML, CSS and JS inside a Webview. The experience doesn’t quite reach the same point.
I delved into this topic few years ago in my Master’s Thesis, but the tech stack wasn’t quite mature enough. My idea was to build an app with Appcelerator Titanium, but I had to pivot. The concepts were similar to React Native though.
I had almost no previous experience with iOS and Android development, but I have done React. In a way, I was the perfect candidate to see how easily React Native can be adopted with front-end web development skills.
After 15 min intro we were divided into two groups, one for Vanilla React and one for React Native. Our posse was already familiar with React.js, so we decided to go to for the React Native workshop, to get the most out of the workshop.
The infamous @Snjoo was the mentor of the React Native group. We had no actual plan of an app we would implement, but Snjoo had planned some contents beforehand. The contents was somewhat freestyle, but offering an overall set of insights into the world of React Native. Including but not limited to:
The source code can be found at Snjoo’s repo: wunderkit-react-native@GitHub
View the repo’s branches for different stages of the application.
Coming from the web world, I have little to none experience programming for Android / iOS. As most of us had at least some experience with React.js, it was really easy to dive straight into action instead of focusing on React.js, ES6, CSS,… etc.
The workshop was just enough to get me started on doing React Native. I will likely try out to build some custom app and release it to App Store on my spare time — I could also recommend React Native in cases where you have a team with web dev background, a green field case and you already know the app’s scope to some extent.
On the other hand, if you have highly talented iOS and Android teams, they are always capable of delivering quality apps in no time, and they have a thorough understanding of the platform design conventions. If you don’t have, you can hire one from outside your company.
This is a case-by-case decision to be made, anyway.
From the design point of view, there’s of course platform specific interaction / design patterns you need to be aware. Design guidelines for each platform are pretty heavy on content-wise, but they are built and fine-tuned for the platform. If you were to implement a web-like app on the mobile world, the end-result would likely feel more like a mobile web app. And this is not a result we want.
In the end, most often you want an app because it offers superior user experience when compared to mobile web, with intuitive UI patterns familiar to all iOS / Android users from other apps they have.
IMHO the easiest way is to go to Create React Native App and follow the instructions. The setup is similar to Create-React-App, and you should have a dev environment set up in 5 minutes.
Just try it.
See what we have to offer - Careers