Nowadays a lot of businesses have to find themselves in a new reality caused by the coronavirus pandemic. The crisis will affect the vast majority of industries, so we decided to prepare three scenarios in which cross-platform app development may prove to be a game changer. What are these scenarios and how to weather the coronavirus storm? Read the article and find out.
Many businesses are forced to go online as their offline channels are suffering government-imposed restrictions. Others are experiencing more traffic than ever, putting their applications and infrastructure under heavy load that they were never designed for.
In such a world, what matters is who gets to the users faster and at the lowest cost. And that’s where cross-platform and React Native come into play.
In the article, first I will explain what cross-platform development is, how you can accomplish it with React Native and what business benefits this solution brings. Then, I will describe to you three most common cases, where cross-platform development with React Native brings you measurable benefits:
- You are an offline business and want to quickly build your presence on all online platforms!
- You have a web application and want to quickly launch a mobile app to reach a wider audience
- You have an existing mobile application for iOS and Android and want to ship new features faster while reducing the overall cost
What is a cross-platform app development?
Cross-platform development is the process of building and delivering apps that can run across multiple device platforms, maximizing the code sharing and reducing the overall maintenance cost. Rather than creating individual applications for every single platform, you create a single - universal - codebase, that is shared among all of them at the same time.
Such an approach is particularly popular amongst mobile apps, where the interface and business logic are usually similar and doesn’t change much between Android and iOS. With the right set of tools, it is also possible to share the code across different environments, including Web, desktop (both Mac and Windows) as well as TVs (tvOS) or even your car (via CarPlay).
React Native is the most popular framework on the market for delivering universal applications that can work across all the aforementioned platforms. It is a JavaScript framework that has been created and open-sourced by Facebook.
In simple words, React Native works like this: you create the business logic of your app once and reuse this code on the other versions of it (mobile, web, desktop, etc.), keeping the individual look and feel and platform-specific vibe of the app. The reusability of the code may vary due to the complexity of the app.
You compose your application from arbitrary components. React Native then takes these components and renders them for you, using the APIs ( depending on what platform you’re currently working on). Such an approach is called declarative because you declare what you want your application to look like.
As a result, your code is not tied to any platform, which is the first step towards building a universal application. In other words, the same code can be used to create individual versions of your app (mobile, web, desktop, etc.) while still maintaining the individual look and feel of a given platform.
Why is it worth to get into cross-platform app development and React Native at all?
Firstly, when you have an app that runs on the three most popular platforms - iOS, Android (which together own more than 98% of the mobile operating system market), and Web, you significantly increase the reach of your business. It gives you an opportunity to approach new potential customers and adds news streams of revenue.
Speed of development and rich JavaScript ecosystem
Secondly, the most popular and most efficient framework used in creating cross-platform apps, React Native, is based on JavaScript. Thanks to that, the app development process is much faster because you see code-change results much quicker than when you rebuild the whole Native app, install it on a device and then launch it.
The process is also easier for developers because they can benefit from a rich JavaScript ecosystem that is still growing. Newer and newer libraries are appearing to make the process easier as well as current and well-matured ones with hundreds of developers contributing.
High availability of JavaScript developers
According to 2019 Stack Overflow Developer Survey JS is still the most popular technology (seventh year in a row) which means a greater number of available developers, consecutively - it’s just more talent to choose from. It makes the community of JavaScript specialists more competitive what positively influences the community by making it more quality-oriented.
Code sharing
As I mentioned above, Android and iOS own a lion share of the mobile operating system market. Thanks to cross-platform app development the majority of produced code is cross-platform and can be used on both operating systems.
React Native is not just a good solution from the potential cost and time savings. It is just the right thing to do. Reimplementing same logic and similar user interface across every single platform is just a waste of time and precious resources of your organization that could be utilized elsewhere, e.g., to deliver a new feature or innovate faster than your competition.
Sometimes you’ll need to do some platform-specific tweaks to adapt to the platform standards, but the overall cost is greatly reduced if you need to maintain only one project, hire one team and maintain one app.
COVID-19 common business cases and how React Native can help
Here are the 3 most common situations the current coronavirus pandemic has probably thrown your business into and how the use of React Native can let you adapt quickly.
1. You are an offline business and want to quickly build your presence on all online platforms
It’s 2020, coronavirus spreads all over the world and your offline business is not performing well. Chances are that your revenue will steadily decline. . In order to stay afloat, you need to quickly go online. When you think about going online with your business, mobile and web apps are probably the first things that come to your mind. So, you need three apps - for iOS, Android and Web.
But wait, if you’re facing the risk of not generating any revenue, there is no time for large investments like three teams of developers working on your mobile apps!
It’s true but actually you don’t have to do it that way. With React Native, you can create one app that will run on iOS, Android and Web. This cross-platform app development allows you to create the final product faster and cost-effective thanks to just one team of developers working on the app for multiple platforms at the same time.
This approach shortens the time to market of your app so you can start profiting from a new source faster.
Why is React Native development efficient in this case?
Having separate applications for multiple platforms is inefficient. What happens most of the time is that there are multiple teams, scattered across different locations, developing the same product, just on a different platform.
While such setup still remains popular among companies all around the world, it comes with an enormous maintenance cost. It also reduces the velocity of innovations and impacts how quickly business can adapt to the new reality - two key characteristics needed in today’s world.
On a high-level, each platform receives a dedicated application, made from scratch. And because platforms are fundamentally different from one another, this approach is doomed to fail from the start.
With separate teams and separate tools, it is challenging to ensure the same set of features and unified user experience on each platform. The majority of businesses end up having a different feature set amongst the platforms, framing the business to have a preferred platform over the rest. Such an impression is unhealthy and automatically encourages the users to look out for better alternatives with a better feature parity for their devices.
It reduces development and maintenance costs
Another key factor is the development costs. The aforementioned feature imparity is a known problem and businesses were investing a lot of time and money to address it. Developing an infrastructure that keeps all the applications in sync and provides seamless user experience is a privilege that only enterprises can afford. As a result - if you are not another Google - your application is likely to end up going that route sooner or later.
Rather than losing the cash twice - first for developing separate applications and then, for paying the double to align them with each other - wouldn’t it be better to save all that time and effort and create one application that works everywhere? Sounds impossible? Fortunately, it’s not.
How can I go online with my business and do it faster and less costly?
React Native has been developed by Facebook to solve this exact challenge. Being at an enormous size that only a few businesses will ever reach, they are able to foresee a lot of challenges that you might eventually run into.
With React Native, you can create a universal application that runs and works on all the platforms. You write it once and it is accessible everywhere. From mobile (iOS and Android), to desktop and console games - you can ship your app to all the channels at the same time!
So, how React Native actually can help here?
One app for iOS, Android, Web, and desktop
Firstly, React Native allows developers to create a single application that runs on mobile (iOS, Android), Web and Desktop! Having in mind that Android and iOS together won more than 98% of the mobile operating system market, it significantly increases your chances of reaching new clients.
Shorter time to market, faster revenue
Secondly, thanks to React native unique architecture, developers can work with much more efficiency. To make a long story short, seeing their code-change results is happening much quicker than rebuilding the whole Native app, installing it on a device and then launching it.
Thanks to the latest tool, “fast refresh” changes in code are almost instantly reflected in the UI. It means that React Native allows you to deliver your app faster, stay ahead of your competitors and start making revenue quicker than others.
2. You have a web application and want to quickly launch a mobile app to reach a wider audience
You might be thinking whether it’s different from the previous one. All in all, in both cases, you don’t have a mobile app and you need to start from scratch. What’s even worse, chances are that you don’t have any mobile engineers on board.
A lot of companies still limit themselves only to web apps, which reduces their potential reach. The mobile app market is growing faster than you think. The downloads of top-five food delivery apps doubled between 2016 and 2018. On top of that, people are spending more and more time in the apps. An average American use apps for 2 hours and 57 minutes per day, out of 3 hours and 43 they spend on their mobiles.
Android and iOS have more than 98% of the market share and the total number of mobile apps users is still growing. This translates directly into more potential customers.
As you see, it’s good to be present on both platforms, but I know that hiring two separate teams to create two versions of one app can be very expensive and take a long time to deliver.
But there is no need to hire two teams. There is a possibility to hire just one that will create a code that runs on iOS and Android. What’s also exciting is that you can reuse part of the code from your existing web app. This is where React Native comes into play.
Why is React Native the best way to quickly launch a mobile app?
First and foremost - It runs on most popular platforms - iOS, Android, Web, Desktop (Windows and Mac). What’s even more important - it’s flexible and based on JavaScript. Why is it so important for you?
Javascript is the most popular programming technology in the world. It means that most of the websites, probably including yours, are created using this language. Now, you may be wondering - if my web application is JavaScript and React Native is JavaScript, does it mean that my web app can be a native mobile app? The answer is yes.
Business power of reusable code
Thanks to the reusable code of your web app, you can easily transform it into the mobile version, running on every platform.
Depending on the framework you used, you can take part of this code to create a mobile application.
For example, if your web application is done in React, it is very likely that you will be able to share most of it with the mobile React Native app. The exact number depends on various technical choices your team has done in the past, such as using an API that is available in React and React Native.
Code reusability makes the process of developing a mobile app faster, time-efficient and cost-effective. And because Javascript is the most popular technology in the world and there is a large number of available JavaScript developers, it also translates into lower costs of development and maintenance.
So, does it mean that if you don’t have a React application, this doesn’t help you in any way? Wrong!
When it comes to shipping a mobile app, a unified user interface is not that important. Sure, it’s great to have common building blocks to ensure the harmonized user experience and you can always create them at a later stage. What is more important is sharing the business logic, the way we handle authentication, state and sessions. And you can share that regardless of the underlying framework. Again, the final answer depends on the technical choices that your team has done in the past.
Long story short - if you have an existing web application, there’s an opportunity for you to reuse some pieces of it in new mobile solutions. This means that in a short time you will not only create a new source of revenue, but you will also stay ahead of your competition.
3. You have an existing mobile application for iOS and Android and want to ship new features faster while reducing the overall cost
If you are having a mobile application that runs on iOS and Android, chances are that you have run into the challenges that we have described in the Case 1 section.
Wouldn’t it be great if you could also move faster with your existing infrastructure and adapt to the changing reality, just like your competition that might be starting from scratch?
Of course, it would and React Native also has an answer for that! This is what makes it different from all the other cross-platform frameworks out there, such as Flutter. It perfectly integrates with your existing mobile application.
How can I ship new features to an existing app with brownfield?
This approach is called "brownfield" and means that a React Native code is integrated as a part of an existing native application. For example, it could be a grocery store application where checkout functionality was done in React Native, incorporated into the original app, and shared across Android and iOS (or any other platform you require).
Using the traditional React Native Development approach, you would have to rewrite the whole app from the beginning to the end. By applying brownfield development, you can achieve feature parity step by step. It means that you can identify the bottlenecks and most crucial elements of the functionality of your app and enhance them immediately. Then if you choose so, you can extend the transition to the cross-platform to the whole project. As a result, you can write the code once and ship it everywhere.
With single architecture comes a single team of perfectly aligned developers. This way, you will need less time to implement innovations, create a better-looking interface and most importantly - reduced costs multiple times.
On average, it takes around a month of the entire team’s work to develop a reliable infrastructure, integrate React Native into an existing application and have it tested and taught internally.
Basing on our experience, we have created a library that allows us to fit React Native into an existing mobile application in a matter of seconds. It provides a stable and fast infrastructure for making React Native and native “talk” to each other. We refer to internally under “React Native Brownfield.”
On a high-level, React Native Brownfield allows you to package your React Native application into a native-looking interface and send it to your mobile developers to integrate. The integration is so smooth that native developers will never realize it’s React Native unless you tell them. The resulting components and views look as if they were developed fully natively from scratch, having a typed API and all the methods that we would normally use and create when working on a native application.
In other words, we turn React Native into native-looking components, which is a perfect building block to place on top of any platform.
Our library is stable and usable on any platform and application. While working on the features you need, we will estimate them as if your application was already React Native. All in all, we want you to move faster at a lower cost.
To sum up, brownfield allows to add new features that speed up the app and are shareable on both systems while maintaining business continuity - it means that you can add them while the app is working. Later, when the difficult situation passes, you can completely transfer your app to React Native with no harm for business stability. It also helps you to save time and money because the work is done by one team.
Callstack is an official Facebook partner on React Native and have been one of the innovators of the brownfield approach. Throughout the past few years, we have shipped multiple brownfield integrations to clients of all sizes - from small startups to through big companies such as Kiwi.com to large enterprises.
Summary
Let’s gather all the benefits of cross-platform app development with React Native in one place.
- First, you can write once and run on multiple platforms with little to no effort. It allows you to reduce app development costs by hiring one team to work on the app for all the popular platforms such as iOS, Android and Web. Also, React Native is based on JavaScript and Javascript developers are easier and inexpensive to hire.
- Second, you can significantly increase the time efficiency of your development and maintenance process. When you have one team responsible for delivering a single app for three platforms, you reduce time to market your app. Thanks to that, you can quickly start making the revenue and reaching a huge number of potential clients!
But the development process is not the only part of cross-platform development that brings measurable benefits. Don’t forget about the extremely important process - maintenance. It’s also easier, faster and affordable with React Native.
- Third, thanks to the brownfield approach you can fix the bottlenecks and improve the user experience of your apps while maintaining the business continuum. Also, it compensates the differences between iOS and Android version of the app and improves their feature parity.
As you see, cross-platform development with the use of React Native not only allows you to move your business to the online world with an innovative approach. It also gives you the opportunity to reach more potential customers and save money by hiring one team to do the work previously foreseen for three different teams.