Is React Native the Right Choice for Startups
If you have ever worked at a startup or know someone who does, you know that in general, employees have their hands full, every day of the workweek, which is sometimes seven days in a hyper-growth startup.
Startups move fast. Real fast.
And you can’t afford mistakes. According to this Investopedia report, 20% of the startups fail within the first year, and only a measly 25% of the businesses make it to the 15 year mark.
Here are some of the reasons that make a startup tick:
- Need to iterate fast: A startup needs to test its products and bring them to the market fast. In today’s fast-paced world, there are no prizes for coming in second.
- Scale quickly: Blitzscaling should be the mantra that startups need to live by. For instance, the Indian app Chingari grew from a customer base of 500 thousand to over 10 million in a matter of weeks, when the Government of India banned Tik Tok in the country.
- Work within tight deadlines: Startups these days move at the speed of light, and they need to if they wish to stay in the game. It only takes six days to start a business in the United States, so by the time you have convinced your college-going cousin to drop out and come slum it out with you, there are already ten other people working on a similar product.
In spite of all these factors, there has never been a better time in history to venture out and start something on your own. Unsurprisingly, the US is the biggest tech market in the world, clocking in at an impressive $1.9 trillion in 2019.
So you have decided to start up on your own, and are now looking at the various technologies out there in the market to choose the best for your app.
While there are a host of technologies out there, both native and cross-platform, we chose React Native as a good starting point if you are planning to build an app.
What is React Native?
React Native is a mobile application framework based on Javascript that is used to create hybrid mobile apps that run both on Android and iOS.
React Native is based on ReactJS, which was developed at Facebook as early as 2015. React Native has a set of components for Android as well as iOS to build mobile apps with a native look and feel.
If React Native sounds like a choice to build an app for your startup, then this is the article for you. We cover a whole range of topics in this blog post, answering questions like:
- Is React Native is a good contender when you are choosing to build your app for your startup?.
- Is it all rainbows and sunshine, or are there drawbacks of using React Native to build your app?
- If not React Native, what are my alternatives?
- Why did the drunk rabbit cross the road at three in the morning?
Okay, the last one is a long story and slightly off-topic, but we got you covered on the rest of the questions.
Which Startups are using React Native?
Before we dive into the Pros of using React Native, here are three success stories of startups who have used React Natives to skyrocket their business.
Pinterest can loosely be called a social network for ideas. People can share their ideas on various topics by “pinning it” on their user boards. These ideas can be in the form of photos, images, or other infographics.
Pinterest has clocked a monthly user base of close to 175 million active users, and the number of users keeps increasing by the day.
It took Pinterest all of 10 days to implement their iOS app using React Native, and an additional two days to port it to Android. Pinterest engineers say they saved close to a week of implementation time with React Native, and there were no instances of performance regression.
Wix
If you have ever built or considered building a website, the chances are high that you would have heard of Wix. Wix allows you to build a website using drag and drop tools, meaning you don’t need to write a single line of code.
When the approximate 110 million users of Wix wanted to build websites using an app, Wix turned to React Native to scale quickly.
Wix developers chose React Native for its speed and efficiency and loved the fact that React Native is open source and free. With more than 80% of the app code written in Javascript, Wix did not have to hire or train new developers to achieve porting to React Native. Win-win for everybody.
Myntra
Ecommerce is growing at lightning speed in India, and the online clothing and accessories company Myntra was one of the early entries into this space.
With a staggering total of 24.48 million visitors to the site, the Myntra app needed a solution that was quick, efficient, and easy to scale. React Native came as a natural choice.
Myntra adopted React Native for its app soon after it was released, and today, more than 50% of the iOS app and critical screens of the Android app run on React Native. Developers of Myntra’s engineering team are especially happy with the Hot Reloading and instant refresh feature, which helps them ship features fast.
What are the advantages of using React Native for your startup app?
1. Lesser time to market:
The time taken for an app to go from the conception stage into the hands of the consumer is critical for any startup. You cannot afford to build a masterpiece of an app for years and hope the consumers will come.
More than 90% of the codebase is shared between iOS and Android if your startup chooses React Native to develop its app. With an average of 1024 apps hitting the Apple store in a single day, an early, mover advantage cannot be overlooked for your app’s success.
2. More developers available:
React Native has been around for more than half a decade now, which means there is a big developer marketplace from which your startup can pick the best programmers, provided you pay a premium, of course.
Developers of React Native charge anywhere between $100 — $125 per hour in the US, and you can always find developers online on platforms such as Upwork or Fiverr. If it is an entire development team that you are looking for, then we, at Solutelabs, will be more than happy to talk to you.
3. Supports third-party plugins:
To the uninitiated, third party plugins allow a level of customization that is not available with other platforms. One of the USPs of React Native is that it supports third-party plugins.
Since React Native does not have all of the components in its main framework, it uses third-party plugins, which include native and Javascript modules.
For instance, if you want to enhance your app with a map functionality in your app, you can always connect a third-party plugin to your React Native app.
4. Declarative coding:
Declarative programming is a method where you just describe the program/ UI, and React implements it. Declarative programming makes the code more readable and easier to reason about.
To put it in simple terms, instead of saying, “ Can you fetch me a glass of that drink,” you can simply say, “Beer, please.”
Using React, you can simply change the program’s state, and the UI will change its look accordingly.
5. Reduced costs:
Building a cross-platform mobile app is far more economical than building an app separately for iOS and Android.
Payroll is one of the most expensive costs for a startup, with an average company of five employees spending around $305,000 on salary, according to data from this survey.
Instead of hiring two separate developers, if you choose React Native, you only have to pay for a single developer who will help you launch the app on Android as well as iOS. The money saved can then be used in other critical functions, such as marketing.
6. Reusable components:
At its core, a React Native application is a bunch of components in a component tree. Each one of these components has its own logic and control.
The reusable components work the same across Android and iOS, meaning you don’t need to break your head while supporting both the platforms simultaneously.
Reusing some of the components also makes development easier, along with making the code easier to maintain. In case there are changes in the implementation details of any one component, all you need to do is adjust it in one place, and it takes effect everywhere else.
7. Readymade solutions and libraries:
To help speed up the development process, React Native comes inbuilt with a lot of readymade tools and libraries.
These libraries help speed up the development process. For instance, if you want to achieve a native look and feel for your app, you can give Nativebase a try. This is a collection of the most important cross-platform React Native components.
Type checking tools and testing libraries are some of the other libraries that help develop your app faster.
8. Hot Reloading:
Ask any developer out there what is the one key advantage of using React Native, and Hot Reloading will be an answer that will pop out in most of the cases. To put it in very simple terms, Hot Reloading allows you to inject new versions of files that you edited during runtime while keeping the app running.
Hot Reloading means you don’t lose any of your state, a key advantage when you are tweaking the UI of your app.
Any time your code changes, you can have your app reload automatically, which helps in accelerating development time.
9. Open-source community:
React Native is open source, and since it has been around since 2015, there is a large community of developers available online.
This means you can have all your queries regarding RN answered in a jiffy, and if not, there are always Github or Reddit threads like this one to answer your questions.
React Native is backed by Facebook and has a large group of enthusiastic developers to support the framework, including people from Callstack, Infinite Red, Microsoft, and Expo.
What are the disadvantages of using React Native?
While we have mentioned all the good stuff that React Native brings to the table, not everything is all rainbows and sunshine. There are a few cons to consider before you finalize on React Native to build an app for your startup, including:
1. Messy and hard to maintain code:
React Native makes it easy to develop your mobile app, but if you have an existing codebase, it is not so easy to get your app up and running.
Integrating your existing mobile codebase to React Native takes up a substantial amount of time. Once your app starts to scale, your APIs may not behave the way you want in React Native.
This means you will have to dive into Native Libraries to make adjustments and your Javascript developer may need to write native code, in order to fill any gaps that may occur in functionality.
2. Frequent updates:
Facebook releases new updates to the React Native framework frequently. The platform is ever-changing, and bugs are discovered on a daily basis.
Every new React Native update has a lot of changes, and developers need to keep updating their app regularly. This was one of the reasons Airbnb famously stopped using React Native a couple of years ago.
Continuous investments are required to support React Native’s volatile ecosystem, and your startup might as well use that money in more creative ways.
3. Tricky UI design:
From the very beginning, React Native has been considered a bad choice while developing apps that require many user interactions, animations, and screen transitions.
The iOs and Android subsystems are at the opposite ends of a spectrum, and thus a unified API cannot be used by the developers.
In most cases, UI has to be created with Swift / Java, and the native modules communicate with the JS part of your app using bridges that are asynchronous. Every pass along one of these bridges results in a performance hit for your app.
4. Abstraction layer issues:
With React Native, you are deploying large pieces of code which is present between the developer and the native platform. With these kinds of abstractions, bugs are a common issue.
If you spot a bug in any of the abstractions, you will have to get to the implementation to fix it. These issues may be out of your knowledge area, and you may end up depending on outside help.
You may also be dependent on third parties if you have to maintain the framework, which is an added hassle. You will also be on the constant pressure to keep this abstraction layer updated.
These are some of the limitations of React Native. If you are still unsure of using React Native to build an app for your startup, you can also consider the following alternatives.
What are the alternatives to React Native?
1. Flutter:
Flutter is an open-source UI toolkit that uses the Dart programming language to build apps for mobile, web, or desktop. It is also cross-platform like React Native and uses a single codebase shared between Android and iOS.
Flutter is developed by Google, and there is a tonne of resources available online to learn Flutter. We suggest you start with this step by step tutorial.
Popular apps built using Flutter include Reflectly, Hookle, and the fitness app WaterManiac.
2. Xamarin:
Xamarin is Microsoft’s answer to building cross-platform apps that uses the .NET framework. Xamarin apps can be written on a PC or Mac and later compiled into native application packages.
With a robust community of over 1.4 million developers, there is a lot of material online for anyone who wishes to learn Xamarin. You can start with this basic tutorial by Microsoft.
Xamarin has been used to develop a variety of apps, including Olo (online food ordering), Storyo (video story creator), and Insightly (CRM and Project Management app).
3. Ionic:
Ionic is an open-source software development kit created to build hybrid mobile apps. Ionic uses HTML, CSS, and Javascript to build its apps. Ionic apps are built with web technologies, rendered using Web views.
The original Ionic version was launched way back in 2013, and since then, it has grown a sizable developers community online. To get started with Ionic web development, you can head over to this website.
Popular apps built using Ionic include the fitness app Sworkit, the grocery delivery app Shipt, and Untappd, a social network for beer enthusiasts.
While these are some of the few alternatives to using React Native, as a startup, you may also wonder if it is beneficial going the native way to develop your mobile app.
When should I choose native app development over React Native for my startup?
Native app development is far from being obsolete, and we even wrote a blog post explaining this, which you can read here.
Although React Native is good if you want to go to market fast and have a scalable mobile app, at a lesser cost, going native is a good choice if:
- Performance is crucial to your app.
- Your app is heavy on animations and complex screen transitions.
- Your app needs to interact a lot with the phone’s hardware, such as GPS, camera, etc.
- Your app needs to work offline.
- Security is a vital concern for your app, such as a banking app.
If the above conditions are essential to your app, it is better to natively develop the app, even though it may entail higher development costs and longer time-to-market.
Frequently asked questions:
1. How much does it cost to build a React Native app?
Prices of developers vary from country to country, with developers in the United States charging the most at $100- $125 per hour. In India, it costs anywhere between $15 to $25 per hour, depending upon the developer’s credentials and past experience.
2. Where can I find React Native developers for my startup?
Although there is a host of freelancing websites such as Upwork and Fiverr offering React Native developers, we strongly recommend you to dig deeper to find individual developers online who are vetted. There are websites such as Toptal and Flexiple. If you are looking for an entire team, you can give us, Solutelabs, a ring.
3. What kind of app should I choose for my startup? Hybrid or React Native?
Hybrid apps can be developed more quickly, are relatively cheaper, and web developers feel right at home developing a hybrid app. But it does come with a few drawbacks: slower performance, difficulty adding new features, and bug fixing. To cut a long story short, given a choice, as a startup, you should always prefer a React Native app over a hybrid app.
We hope you leave this article with all your questions answered when it comes to deciding if React Native is the best choice to develop your mobile app.
Let’s have a discovery meeting for your startup idea and help you identify which framework would be the best fit for your startup app development.