Building mobile apps for both Android and iOS used to be very expensive and require separate teams with a highly specialised expert knowledge of the platform. That’s always expensive for small teams. React Native has changed that significantly by having a single source code for both platforms. So it is just more efficient and maintainable, especially, for small teams. React Native is not the first framework that allows it. There are great Cordova based examples like ionic. Unlike Cordova, however, React Native gives a developer a possibility to use actual native components. It is especially important and attractive for teams with no prior mobile knowledge or experience because the only thing this framework requires is modern JavaScript experience and React (web)-like mindset. That’s one of the reasons why at FieldBuddy, we decided to build our FieldBuddy Swift with React Native. We described that before Our technology of choice: Sencha EXT JS or React Native?.
Cornerstones
Of course, building mobile apps is still very different from building websites and requires certain experience that you can acquire only through practice. That simple fact, however, that you can just take your current web development knowledge with all the React (web) framework principles and its programming language and start building mobile application is priceless.
One of the major differences between web and mobile apps is the deployment process. While in case of the website, it is rather trivial, in case of mobile apps it used to be very complex and slow. So developing apps used to be one thing, while building and deploying them used be a different battlefield. Luckily for us at FieldBuddy, we started our React Native journey at almost the same time when a new brilliant solution had just appeared. This is how we met Expo development tools: Expo SDK, Expo CLI, Expo XDE and Expo Client. Long story short, Expo is essentially a way of creating React Native apps and Expo SDK is a well maintained React Native version and some extra libraries. In fact, not only simplifies Expo building React Native application, it also gives a developer a number of useful tools that make the development process much easier and predictable. It also enforces certain mindset, a way of thinking and building mobile applications. Since we liked it, we based our FieldBuddy Swift on Expo for several reasons. Two of them are the most crucial:
- Building apps
Thanks to Expo CLI we can completely forget about perhaps the most painful part of the mobile development, that is, building using XCode and Android Studio separately. Expo CLI is a set of essential commands that basically generate a binary, that is, the mobile app, that can be uploaded to both Apple AppStore and Google Play Store. And they’re quick and don’t require any extra configuration.
- Over-the-air update
A unique feature of the Expo based apps, is so called over-the-air updates. Since a major of the React Native source code is written in JavaScript, it is possible to safely update an existing source code just like it happens on the website. With Expo this process is safe and painless. For developers and devops engineers it means less updates of the AppStore and Google Play Store that are the biggest bottleneck of the mobile deployment. For end users it means basically more frequent updates with new features and quicker fixes and patches.