React Native or web-based apps: Which is better?
App development demands choices. Are we building a downloadable app for iOS or Android – or a web-based app that can run on any device?
This question isn’t solely about compatibility or user base (although they’re definitely factors to consider) – there are rumblings of disquiet from online commentators about the attraction and demand for apps from the end user. “The app boom is over”, reports Recode. “Most smartphone users download zero apps per month”, says Quartz.
In a recent myth-busting piece for the Interaction Design Foundation, Big Medium designer and developer Josh Clark was equally strident: “Are users really going to download, install and manage an app for every company that they interact with?” he asks. “The app market may be growing but there’s a growing feeling that users can’t wade through 700 new releases a day and that it might be better for developers to refocus on mobile websites.”
It’s a reasonable question, and it’s little wonder that in the cultural heritage sector, there’s discussion about the visitor demand for conventional download-and-install apps.
The reality, as usual, is not black and white. The ‘app boom’ may be over, but that doesn’t mean native apps don’t have a place. Similarly, there are times when web-based apps are great – but there’s no golden rule. No ‘best’.
The decision about whether a visitor experience is developed as a native app, mobile app or mobile website should be based entirely on context, and the intention for the visitor experience. For some types of mobile experiences, a mobile website would be appropriate and for others, a native solution would be the way to go.
So what are the benefits of each, and what should you consider when making the choice of which platform to use?
Going React Native
React Native is an application framework that allows developers to write a single app that works on both iPhones and Android using code from open source libraries.
In practical terms, it means no more designing separate apps for iPhones and Android devices – or worse, being forced to choose the one platform your budget or dev team can manage.
It still means you’re asking visitors to download and install an app, though: so when might React Native be the right solution for your app trail?
1. Where WiFi is not guaranteed
While web apps require a stable high-bandwidth WiFi connection to run, native apps can be developed to run without them. Not every museum, stately home or castle has guaranteed internet connectivity, and temperamental connections can destroy an immersive experience. Users may have their own data plans but these can also be inconsistent (particularly outside major cities) and won’t guarantee enough bandwidth or stability to support a media-rich web app experience with audio and images downloading and uploading all the time.
The app solution is based on one download, with content saved to users’ devices and thus enabling a more coherent, seamless experience. Users can download and install before they visit, and be ready to use the app when they arrive – which is important for users who can’t or won’t pay costly roaming data tariffs.
2. Where there’s a need for speed
A native app will be faster than a web-based alternative, responding more quickly to touches, because it doesn’t need to connect to the web every time the user interacts with it. You can also do specialised processing on the native side, running code which wouldn’t operate in a web-based environment.
By way of example, the nutrition tracking app we built for Enquos is an offline database processor. It searches and filters a database with millions of entries, and it needs to do this on demand, in seconds, wherever the user happens to be. If it slowed down every time it needed to check the database, it’d be frustrating to use – and tracking apps, which rely on being easy and habit-forming, can’t afford to bog their users down.
3. When you have a lot to offer
Native apps allow for functions to be included seamlessly in-app, where web technology is not as up-to-speed. This is especially important for functions like taking and saving photos, which often involves a lot of hopping between camera, browser and media apps and screens.
There’s an accessibility factor as well. Finding an app on your phone is easier if it’s downloaded, installed and creates its own shortcut on your phone menu rather than demanding the user ‘bookmark’ it in their internet browser of choice.
In fairness, web apps are catching up here. HTML5 offers a lot of new features, mostly in the draft stage. However, if you want direct access to sensors, camera, files, GPS, push notifications and background running, it’s still best to go native, and use React Native to create a version of your app for as many devices as possible.
Sticking to the Web
Web apps definitely have their advantages, though – including competitive factors in terms of compatibility, accessibility and cost. If your site can provide the constant connectivity they need, they are worth considering. Think about web-based apps if:
1. Distribution is an issue
Web apps offer immediate, easy access to the content and experience your users are looking for. No app stores, no permissions, no installations: just go to a site and wait. As long as you have a connection, it will work.
There is a slight downside here, though: the ease of distribution comes with weaker quality control and the lack of a regulatory authority. You can’t rely on your app being vetted, approved and verified by Apple or Google, which means your users may not have confidence in the app. You’ll need to put more time into building trust.
2. You want it to work on every platform
While React Native allows for a lot of flexibility, it’s still at its best for iOS and Android. Smaller smartphone platforms like Windows Phone don’t have as much code available through React Native, and, although 99.6% of new smartphones run Android or iOS there’s a (admittedly slim) chance that a new platform will emerge and you want your app ready without an expensive, complex redesign.
A web app should work on all popular browsers on all popular devices, which means you can reach out to more users – including iOS or Android users who are fussy about installing new apps or simply don’t have the memory space to download it.
3. You’re on a tighter budget
Mobile web apps are relatively cheap to maintain and solidly future-proof – provided you stick within an unambitious subset of the web’s features.
They become expensive if you try to use all the latest mod cons at once, but if you stick to using functions that have been deployed and debugged across almost all browsers for years, chances are your app won’t break on you after it’s released.
Web browsers are conservative about removing features – although they’re also very inconsistent in terms of adding new ones. The presence and quality of new functionality will vary for the first few years, until an industry standard emerges, so a cutting edge design might not be universally stable or even viable.
The bottom line
At the bottom line, both native and web apps have their merits – and their caveats. A web app is easier to access, cheaper to develop, and works across most devices – but it’s also constrained by browser developers’ conservatism, and will rely on your site’s connectivity infrastructure. A react native app will be limited to limited to iOS and Android – but it can do more, run faster, and deliver an experience offline.
Neither is ‘right’ or ‘better’, the choice comes down to context, cost and customer. The right solution at the right price for the right person is the best choice, and in that regard, web apps and native apps both have a place.
David Boozer: https://www.pexels.com/photo/spider-web-spiderweb-42246/