At Label A we have been building apps for a long time. We have been doing this native, always. Throughout the years we have seen many hybrid platforms come and go (RIP Phonegap💔) but we have always held an eye out for these platforms, for they could be the Next Big Thing. And when this happens, we want to be right on top of it. This brings us to React Native: a platform that has been getting a lot of praise from developers everywhere. It is being developed by Facebook and it seems to be the next big thing. We’re aware, yet we’re wary. We haven’t made the switch and we believe we have some good reasons to stay native (at least for now).
1. So we’re always up-to date
As long as Apple and Google do not work together, cross-platform will always be a third-party solution. This means an extra dependency apart from being dependant on the platform. New updates, new SDK, etc. will never be ready on release day in React Native and so it will always fall behind. We want to be on top of the latest changes and features of new OS versions to provide the best solutions for our clients.
2. Simply more options
Since the platforms allow us to push the limits we also get the best possible performance of the app. We are directly in control of everything and this results in smooth running and high-performance apps. Of course if you are developing a more standard app, this might not be an issue. However, our clients choose to work with us for our custom solutions for their very specific problems. We have an advising role and always try to go a few steps further than the standard. We look for the source of the problem and that may result in something entirely different than what the client has in mind, but fits better with company and its users or clients.
We have even had clients come to us with hybrid solutions, asking us to rebuild this to a native solution for better support and a more custom final product.
3. iOS and Android users might require different solutions
The most-heard argument for choosing React Native is that it saves a lot of development time. This is true. Where you’d have to build the same thing twice in Swift and Kotlin to get native apps for iOS and Android, you only have to do this once in React Native to get two apps for your platforms. That’s a win right? Not necessarily. Two of the same apps also means you’ll get the exact same experience on both platforms, and this might not be the best experience for that specific platform.
Even as a platform specific developer, you have to keep in mind that Android and iOS are different platforms. These differences are there for a reason. Most smartphone users choose a specific platform because of personal preference, and as a mobile app developer you need to keep these preferences in mind.
For example: Android has a dedicated back button and iOS doesn’t. Flows can be different. So the presentation or navigation of the app can be different depending on what is best for iOS or Android users. Creating identical experiences on both platforms means you are most likely selling half of the users short on one or more accounts.
Ofcourse React Native also allows you to combine native iOS and Android code to overcome this problem. However this will result in a scattered codebase which will make it harder to keep your project organized and also maintain it in the long run.
React Native might save you some time, but if you truly strive for the best user experience on each platform, you are better off staying native.
4. React Native isn’t the only one with libraries
A much heard argument for React Native is that there are so many libraries available. Well guess what? We can say the same for iOS and Android: the communities for both platforms have created a lot of useful libraries that are easy to implement in native development. These libraries save us a lot of time and prevent us from having to reinvent the wheel.
At this point, React Native isn’t the best solution for our clients. But our motto is: ‘experience is not an excuse for not learning’. If a different solution comes along that truly improves our way of working and the way we can serve our clients, we will make the switch. We will always keep an eye out for other solutions and keep trying them out to see if they fit our needs –and more importantly– our clients’ needs. Until then: native development is how we roll.