

React Native is a relatively new and exciting technology. Designed by Facebook, but used outside their ranks, it is gaining traction from both web developers and traditional native app developers for its simplification of native development. Facebook describes it thus:
React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components
This is a lofty goal which React Native certainly achieves, but like most things itβs not as simple as it sounds. As a result it ends up as a good solution to the wrong question.
So what is the right question?
How do you make a high quality and consistent mobile experience cross platform?
With more and more users using mobile devices, this is certainly an important question to ask. Gone are the days of desktop dominance; mobile users are now the primary internet consumer.
React Native answers our questionβββfor the most part. It enables you to create a high quality and consistent mobile experience, but, crucially, it falls down on the cross-platform part
Itβs a good answerβ¦ to the wrong question. So, what question is it answering?
How do you make a high quality and consistent cross platform nativeΒ app?
Why is this the wrong question? Because, in my view, building two native apps for different platforms (iOS/Android) is dead.
This is why React Native isnβt a good solution to mobile first development. It doesnβt think big enough!
React Native achieves abstraction of native apps; Progressive Web Apps try to abstract mobile development.
Progressive Web Apps as described by Google:
Progressive Web Apps are user experiences that have the reach of the web, and are:
This new level of quality allows Progressive Web Apps to earn a place on the userβs home screen.
Basically PWAs are websites that look and feel like a native app and can even be saved to your phone for offline use.
React Native isnβt superseded yet, it can still do a lot of things the web cannot do, but the web is getting better and better.
Both Progressive Web Apps and React Native are still in their infancy, and they both have their problems. However I think PWAs will become dominant, as they initially have fewer problems than React Native.
React Native Problems
React Native suffers from the fact that you still need to build a website. ReactXP and React Native for Web try to solve this problem by adapting your React Native solution for use on the web, but this seems like doubling down on React Native (and all of its problems). Not only will you have to deal with React Nativeβs issues; you have web problems to fix as well. Why reinvent the wheel, React already exists and has a large community and support around it.
Progressive Web App Problems
https://pwa.rocks/ has a lot of great examples of PWAs, including some large companies that have already adopted PWAs as the way forward. These include AliExpress, Twitter and Forbes. You can read more about each of these companies on the PWA showcase page. My favorite is Pokedex.org.
The problems that React Native poses are harder than those of Progressive Web Apps. PWAs also have a significant amount of development behind them already as they arenβt a new technology, they are just a really good mobile app written in React or Angular. This means that all the great libraries that already exist can be leveraged to build your app; you wonβt have to make a new dialog, just use the Material-UI one. Google provides plenty of resources to help you build your new web app to be a PWA, such as the Lighthouse tool and this checklist.
Right now, if you can make an iOS and Android app, React Native is a great solutionβββit halves the amount of work required. However if android/web is your main user base, PWAs are the way to goββ and the tools to make them exist right nowβ¦ Hopefully iOS wonβt take too long to add proper support for PWAs, so that you can roll it out to them as well.
So what was that question again? The right one, not the wrong one:
How do you make a high quality and consistent mobile experience cross platform?
If you want to answer this question, with the best user/developer experience and the smallest cost, then my money is on Progressive Web Apps.
Create your free account to unlock your custom reading experience.