I’ve always done mobile development in the device native language (Objective-C/Swift for iOS, and Java for Android)
Recently I worked on a project that needed to be deployed on Android, iOS and eventually the web, using the same code base if possible. After reviewing the options I decided to use React Native.
The project was originally a native Android app – used by TED for handling attendees checking in to individual sessions during a conference. It makes multiple API calls to the server back-end, does NFC scanning, needs local data storage, and must work offline as well as online.
I’ll post more further down the road about working in React Native so for now I’ll list some initial pros and cons…
Performance – better and faster json parsing, cleaner program flow, screen redraw update appears faster than native if state is used properly
Multi-platform – same code base for Android and iOS, can also develop for web using React Native for Web.
Debugging – debugging tools aren’t as mature as I would like, using Chrome and a lot of console.log calls – which is definitely old school.
Tools – no integrated tools, I use a mixture of the command line, Chrome, and Sublime Text as my editor.