Whether you’re a startup co-founder or thinking about expanding an established development company, mobile is definitely something you’ve been thinking about. This is understandable.
Mobile devices are already the most popular in the world. They overtook desktop usage years ago.
What’s more interesting is that smartphone users spend 85% of their time using apps.
This isn’t surprising; using the web on mobile is never as nice as using a native app. Web pages and web apps don’t quite have the same look, feel, or usability.
Ok, simple! Just start developing native applications…
Actually, it’s not that simple. Here’s why:
Problems With Native Mobile App Development
Building native mobile apps is… difficult. And expensive. And slow.
First of all, there are two platforms to build for – iOS and Android. Make that three if you include the Windows mobile operating system, which is growing quickly, too. These platforms have almost nothing in common when it comes to developing apps – meaning you essentially have to build the same app two or three times. This is time-consuming and a drain on resources.
Developing the same app for multiple platforms means that you will have multiple code bases. This is difficult to maintain, as every change you want to make will have to be done multiple times. This results in high, additional ongoing costs.
Native programmers are also hard to find – and so they come with a premium price tag. A quick search in Indeed.com shows that in the US, the average salary of iOS and Android developers is almost 50% higher that those of Web Developers.
Put this together and you can see how developing mobile apps can be pain – even just for testing an idea. Hiring three separate development teams for Web, iOS, and Android – while making them all coordinate perfectly – seems difficult if you don’t have venture capital.
So Why Do We Even Need Native?
Here’s another idea: why can’t we just develop our apps on the web? Then they will be available on every device. Easy!
The problem with that approach is that users expect the speed and usability of native apps. Gestures, swiping, switches, datepickers, navigation and maps all work beautifully when developed natively on iOS and Android. On the web? Not so much…
What we really want is the user experience of a native application, but the development experience of web development. Here’s the good news…that is now entirely possible.
Enter React Native
There have been many attempts to solve the above problems over the years, but none of them stuck. But all that changed in 2015 when Facebook released React Native.
There have been attempts to solve this problem, but none of them stuck. That was until 2015 when Facebook released React Native.
React Native is a framework for building native apps with ReactJS. So first of all, let’s take a quick look at what ReactJS is, and how to use ReactJS in native mobile app development.
React Native capitalizes on this leap forward to solve all of the problems we have discussed. It uses everything that’s great about React, but for native. You can write those React user interface components, and have them compile down to native components for iOS, Android, and Windows.
It’s a framework that makes building mobile apps similar to the workflows we used on the web.
Why This is a Big Deal
What does this mean for those developing mobile apps? It means you can learn once, write anywhere. React Native really does give us the best of both worlds.
You can get the 60 frames per second, and smooth UI interactions that make native apps so attractive, while developing on only one framework.
In short, you can learn once – and write anywhere!
This should be particularly exciting for startups. Building a brand new tech company means.
- Creating a Minimum Viable Product
- Getting it to users
- Receiving feedback
- Improving the product
Those last two steps will probably be repeated many times.
Without huge funding, doing this with traditional native app development won’t work. Iteratively developing and improving on multiple platforms is very slow. But, if you develop for only one platform at this stage, you aren’t testing on huge sections of your target users.
Using React Native for mobile app development means you can:
- Have a single codebase to update and improve
- Hire fewer developers
- Respond to user feedback fast
- Find your product market fit more quickly
- Ship your app on all major platforms – before your competitors
Developing With React Native
The setting up of React Native changes depending on the operating system you are developing on. Facebook have a great tutorial page on getting started.
There are a few options, but a great choice would be Atom enhanced with Nuclide.
Writing Native Code
The goal of React goal is to give you the best possible developer experience. One great thing you’ll find about developing with React Native is Hot Reloading. This feature reduces the time between saving a file you are working on and seeing the changes.
The idea is you can keep your app running, and inject newly edited files at runtime. This will make developing faster and less of a pain, as you won’t have to stop and recompile your app after every change. Nice!
Of course, there are limitations to using React Native.
The main downside is performance. Even though Facebook has put in a huge amount of effort to improve the performance of React Native, it can never equal that of good natively built apps.
React Native is also a relatively new, unstable platform. This means it has bugs, security issues, documentation gaps, and an uncertain future.
Does It Work?
Yes. It was developed by Facebook, who have some of the best engineers in the world. They have also been using it for a while now, so if you’ve used any of the Facebook apps, you’ve seen React Native in action.
Apps That Use React Native
Even though it’s a new framework, there are already some great companies that use React Native for mobile development. The most obvious are of course the Facebook Apps, but more are jumping on the bandwagon.
- Apps that use React Native for iOS
- Facebook Groups
- Facebook Ads manager (react actually came from this)
- Discovery VR
- Dischord – chat for games
- Health tracking by Gyroscope
- Project September
- SoundCloud Pulse: for creators
- Wego Concerts
- Apps that use React Native for Android
- Facebook Ads Manager
- Discovery VR
- CBS Sports franchise football
Find a Development Team
Even though React Native makes things easier on developers, it is still difficult to make a great app by yourself. Luckily, there are dedicated software teams that help you take advantage of React Native, and build your mobile applications fast and efficiently.
DevTeamSpace takes advantage of using remote dev teams to provide affordable software development. There is a dedicated React Native app development team that can help you use this to your advantage.
The world is moving to mobile, and React Native is one of the exciting developments opening up these markets for businesses and startups.