After going through all the business steps of defining your product, you get to the moment of coding the actual mobile app. The first decision you must take is what coding language and what technologies to use.
React Native or Native iOS and Android?
Be aware that these are the hardest things to change the further you move along the app development process. Moreover, the timeline of the project, budget-related decisions, the approach on functionalities, and sometimes even the UX/UI design, may depend on this choice. React Native, or Native iOS and Android development are both options that will ensure you are able to build a powerful mobile app. Still, let's see which one suits your business goals the best.
Native iOS and Android apps are those apps that were built using native iOS or Android development tools. In the case of developing iOS apps, Xcode is the most used, while Android Studio is the most popular for building Android apps.
You are an ambitious business owner who wants to reach both iOS and Android users. This goal requires you to build two apps with exactly the same functionalities, one for iOS and one for Android, using two separate codebases.
React Native aims to solve this problem of working on two apps (iOS and Android) by having one single codebase as input, and two separate app builds as an output: an iOS version and an Android version.
React Native is not the only one to try to fix this issue. But unlike it, many others failed this battle. Just so you know, React Native is backed by Facebook.
Our experience shows that React Native is worth trying. It is a fairly sustainable option. After years of tests and updates, it became a viable solution for building almost any app, and by "almost any" we mean over 90% of apps.
The power is in the developer's hands. If one has no experience with React Native, app builds may come out with distinct issues. When the execution is done right and there are no significant technical challenges or constraints, React Native generates two separate apps that are no different from native iOS and Android apps.
However, you can't expect a perfect outcome from React Native. There are still some final elements you need to take care of. React Native is doing a pretty good job in respecting iOS and Android design guidelines. However, developers must double-check and manually adjust UI elements, which ends up taking more time and sometimes requires entering a “hacking” mindset, in the detriment of scalability.
An example of a challenge is the fact that the tab bar on Android is placed at the top of the screen, while on iOS, it's at the bottom. Treating this kind of situation for both platforms actually requires equivalent (or even more) development time to that needed to write native iOS and Android code.
Most of all, it depends on your app development team, how big and skillful it is. But if we focus on creating only one app, then building a React Native app takes more time than building a native one. Therefore, building a native app will help you launch faster if time is an issue. On the other hand, if you need both iOS and Android apps and you have only one developer up to the job with knowledge across all platforms (which is rare), then React Native is the one to help you save on overall development time.
The chosen technology is where you, as a business founder, can benefit from cost savings. As mentioned above, React Native requires longer development time. But in the long run, it will cost you less building in React Native than using native iOS and Android frameworks, especially for apps of low complexity. You win by building two apps at a time instead of investing in two development processes, one for each iOS and Android apps.
Speaking in numbers, the cost of building fairly simple apps in React Native is about 70% of the development cost of the Native iOS and Android apps. For a better understanding, let's imagine that we want to build two apps in Native iOS and Android, which will cost us $ 15,000, ($ 7,500 each). In the case of using React Native, we will spend only $10,000. However, with certain constraints/complexities in place (a more special UX/UI, for example). Beware that building your apps with React Native may cost even more than building them natively. In our example, it may cost $ 18,000. It all depends on the particularities of your apps.
Driven by the desire to launch, many startup founders postpone thinking about scalability. But if you dream big, you should plan big. Once your business expands, you need to make sure the app handles the growing number of features and users.
React Native is not the one to stop you from that. As a technology, it lets you build and architect a scalable app. The rest depends on your developers and the quality of the code. Still not sure about that? We have some examples prepared, as you will soon read.
The one thing about React Native you are going to love for sure is that you will have to fix bugs in only one codebase. It means that the bug fixing process for both apps will be quicker, which leads you faster to a flawless digital product.
Here are some widely-known apps that got to experience working with both React Native and Native iOS/Android development. Some of them ended with success, others were less promising. Discover the reasons behind each decision of whether to use React Native or not:
Airbnb started in 2009 as a native app for both iOS and Android. In 7 years, their number of users reached millions. This kind of scalability required a decent number of developers for both iOS and Android to maintain the apps. With an open mind for new technologies and a cost-efficient attitude, in 2016 Airbnb switched to React Native. Now a smaller team of developers was integrating React Native in the existing code and generating changes for both iOS and Android within a single codebase.
However, in 2019, Airbnb made an announcement about their unsatisfactory experience with React Native. As a result, they decided to switch back to Native iOS and Android. In 2 years of working with this new technology, they came to the conclusion that it is more buggy and less time-efficient to use.
From the very beginning, Uber decided to treat iOS and Android differently. Based on their target audience, respectively mainly users from the US, Uber started with building a native iOS app. In time they also built a native Android app and expanded worldwide. Interestingly, they identified differences in the needs of iOS users and Android users. They also took into consideration the differences between device capabilities. With this in mind, building native iOS and Android apps seemed to be the best decision.
However, the brother app of Uber, Uber EATS, is built in React Native. Why so? Firstly Uber EATS was built as a single-page web application accessed through tablet devices. When Uber came to the need to expand the app also on mobile devices, they chose React Native to do so. This technology allowed them to easily build a mobile app on both iOS and Android, starting from the web codebase. Also, the process was quite efficient because of the simplicity of the app comparing with the Uber app itself.
In 2012 Mark Zuckerberg commented, "The biggest mistake we made as a company was betting too much on HTML as opposed to native". In 2015 Facebook was the one to release React Native. Today the app we all use is built with this technology. Instagram is also an app Facebook uses React Native for.
Weight your needs as a startup founder. If you think of building an MVP only for one platform (iOS or Android), then it is most likely to be faster and cheaper to make it in a native codebase. If you aim to have the best of both worlds while controlling your budget, then you should consider React Native. And take into account there may be certain compromises to make. However, if you are looking to build a premium quality app, the native way will clearly offer that extra edge. Pros and cons are presented above. So you can consider them when deciding on the right technology for your future mobile app.