React Native provides an avenue for organizations to develop native-feeling mobile applications without the steep investment of specialized app teams for iOS and Android. By sharing a unified code base for both platforms you are also reducing feature's time to market and minimizing the amount of code needed.
When exploring taking your business mobile, looking at a hybrid framework often makes the most sense. When weighing out the options, utilizing one team to develop for web, iOS, and Android platforms allows you to keep features in sync across all platforms, ensure same quality and design, and move faster with a leaner team. These are all benefits that any organization can take advantage of, and are especially advantageous if you have had success in a web app but are not sure how much adoption you will get on mobile and want to minimize the investment to test. While there are a number of options for hybrid frameworks, React Native should be the top option for your company when selecting.
Write Code Once
Keep Your Team Lean and Flexible
Shortcomings and Why Teams Pivoted Away
You may be reading this and wondering why you would not choose React Native to build your mobile application. AirBnB had decided in 2016 to utilize React Native as their go-forward framework and in 2018 decided to change course and go back to building solely in native iOS and Android. In their series of 5 blog posts, they highlighted some of the benefits they did see from React Native – including performance, iteration speed, and that it uses React. The challenges they faced, however, are also worth noting to learn from as well. The top reason for leaving React Native was organizational. They were building some features in native and some in React Native. This was the main issue that they experienced, as from a tech perspective it changed how they approached certain features and making sure the design was consistent across the native and React Native features. From an organizational standpoint, they saw that it was a mixed bag in terms of adoptions from their developers. Teams that were used to native development in iOS or Android didn’t want to switch or learn it and reverted back, while certain teams embraced it and saw it as an opportunity to move faster. A separate concern was getting known as a React Native company and losing out on top native iOS and Android engineering talent who didn’t apply. Udacity – another company that had previously used React Native and published a blog post on why they are switching away – noted similar feedback from their existing mobile developers. It’s also worth noting that these companies both made investments to hire more native engineers and increased the team size of engineers as they moved off of React Native, allowing them to have larger focused native teams that could move at the same speed. It’s also worth noting that they both switched off of React Native in 2018 and there have been several strides and investments in the code base since then, notably the extensive efforts over the last year towards accessibility issues identified. The React Native community is large and growing and has addressed technical issues that might have scared off companies 3 years ago.
Company Success Stories
Shopify is a company that more recently declared they were shifting to become a React Native company. They published a blog post in early 2020 outlining their reasons and what it means for their mobile engineering going forward and included some early success stories they were able to see. One of these was the acquisition of Tictail, which was a mobile-first company and 100% focused on writing in React Native. From Tictail they were able to see how far React Native had come since it first came into the market in 2015 and see that it could meet their needs. They also wrote about Arrive (since rebranded as Shop), one of their most popular consumer applications, and their experience rewriting it in React Native. They were able to experience some very key benefits, including fewer crashes on iOS than the native iOS app and launching on Android. Another huge benefit was being able to partner with non-mobile developers on the same team as mobile developers to work on the mobile app. This resource allocation allows you to move your resources to the teams that make the most sense in a less restrictive way since there are not as many prerequisite skillsets.
Lastly, a common theme from both the AirBnB post and the Shopify post was speed to iterate. From AirBnB’s experience, compiling and building a native app to test work that you have done can take upwards of 20 minutes at times. Each time a developer needed to unit test or merge and promote to a testing environment, there would be this time gap where you had to wait to see if it would work. They found with React Native they could “hot reload” the app and test their changes in seconds. This is a huge win in time savings and promoting working features faster. Similarly, Shopify saw the same time savings, as well as inventing a creative new way to instantly test any work-in-progress pull requests by scanning a QR code from GitHub and instantly pulling the latest build. Improving the speed at which you can build and test your code not only leads to product shipping to production faster but increases quality by allowing you to test smaller code more frequently instead of waiting to bundle large chunks and build, as well as more quickly fixing and promoting any discovered defects.
As you consider your approach for mobile app development at your company, strongly consider React Native and how it can benefit your organization. While competitors such as Cordova or Ionic promise the same speed of hybrid framework, at their core they are just web views that will load your existing web application and do not deliver a delightful native experience or performance. Building native iOS or Android apps will deliver a great experience and most fully take advantage of the full platform features on each phone with deep integrations to voice command services but are often overkill for your mobile needs and require more specialized development teams, time, and money to deliver features. React Native is in a unique position in the market to allow you to write native apps using your existing web app development skills, writing code once to publish to both Android and iOS, and allowing you to ship features to production quickly and cost-effectively.