Do you really need a mobile app?
Quite often when I listen to an idea about a new business, it starts with “we’re going to make a mobile app to [cool new thing].” However, the mobile app is not the goal. The cool new thing is. So does it have to be a mobile app, or would a web application work just as well? What are the trade-offs?
Mobile apps that are installed on the phone via an app store have a few advantages over web apps, which are accessed via a browser. Primarily among them are speed and smoothness of the user interface; access to certain restricted phone features and data (like contacts or text messaging); installation on the home screen; discoverability in the app store; and not having to sign in every time you use them.
These advantages are mostly concerned with user experience (UX). However, UX is not the only aspect to take into account when making a technology choice you will live with for quite some time, nor is it necessarily the most important one.
The downsides of mobile apps
There are distinct disadvantages to writing and deploying native apps. Most of these revolve around your ability to keep control, both of your users’ experience and development and operations cost.
Here’s a short list of disadvantages of native apps over mobile-first web applications.
Updates are slow and may not reach all users.
Each update to a native app requires submission to the app stores. In Apple’s case, that process includes a mandatory, human review which takes 24-48 hours in the best case (meaning no change requests). Quite randomly they may take several business days just because Apple has changed their guidelines yet again and you’re missing that correctly sized preview screen for their App Store.
Once your updated app has made it to the app stores, it still must make it downstream to your users’ devices. Some of them will have auto-updated enabled, but certainly not all of them. Over time, you will have an uneven distribution of new and old versions across your user base. You may even get negative reviews for bugs that have long been fixed, from users running old versions of your app.
A mobile-first web app, on the other hand, is just a website - the code runs on your servers. So when you push an update, it is instantaneously effective for 100% of your users.
Apple may kill your app at any time.
Apple has very stringent requirements for applications submitted to its app store and is known for both changing and enforcing them somewhat arbitrarily. Especially for business-to-business (B2B) applications where all functionality is only accessible to registered users, they may well end up forcing you into their cumbersome, user-unfriendly and basically horrible business connect program.
Even if your app has been approved to the regular app store, the risks of changing terms and conditions persist and may catch you any time you submit the smallest update to the app store.
(Google’s Play store is much less stringent about these things, so if you can live without the iOS market, the risk of store rejection is much less severe, but not completely negligible.)
You may end up sharing your revenue.
Both Google and Apple charge up to 30% commission and fees on any purchase made and delivered through an app distributed through their app stores. If your application is primarily an eCommerce interface for digital content, that alone is probably a prohibitive barrier for your business.
Note that this does not apply to physical goods and services delivered outside of the app (like Amazon, Uber, or AirBnB), or subscription services as long as the subscription itself is paid outside of the app (Economist).
Development will likely cost more.
Writing genuinely native apps for distribution to both iOS and Android devices requires maintaining two completely separate code bases, written in different programming languages (Java for Android, Objective-C for iOS). This will double your investment in development and maintenance, while still incurring the risk of inconsistent user experiences across both platforms.
You can partially overcome this problem by writing a hybrid app. This approach allows you to write the application only once, using a web-based technology stack, and convert it to natively running apps for both platforms automatically. However, this approach negates one of the primary benefits of native apps, which is the fast and smooth user experience only native apps can offer.
You may not benefit from native advantages.
If your application depends heavily on real-time access to a backend, such as a database or some third party service provider, the speed of the Internet connection is the dominant factor of your user experience - just like any website! So there is little point in choosing native technology primarily for the faster user interface - all you’ll end up with is slightly smoother progress bars and spinning wheels while waiting for network responses.
What web apps do better
Native apps have their place and are the only way to go for some applications that require the best and smoothest user interface (think games like Angry Birds) or need access to restricted phone features (your contact list, for example).
However, absent of such strict requirements, building your application as a mobile-first or even progressive web application (PWA) gives you operational advantages that may well outweigh UI/UX concerns.
Some of the advantages of web apps over native mobile apps:
- Development cycles are shorter and require fewer resources, saving you time and money in the short and long term
- Updates are immediate and reach all your users (and so do rollbacks)
- You have insights into user statistics and behaviour which the app stores may not provide
- You have full control over your distribution channel and are not dependent on third parties
Especially if “mobile” is just another channel for you to offer into an application that already exists on the web, consider building (or rebuilding your existing website as) a mobile-first web application instead. With a little bit of extra effort, you can build it as a so-called “progressive” web application, which extends websites with features such as home screen installation and offline support that until recently was the sole province of native mobile apps.
There are of course other considerations for your choice of platform, such as marketing needs, your target audience, and other business concerns; but from a technical and operational perspective, web apps have some strong advantages over mobile apps.
Particularly for startups or businesses that want to get an initial product into the hands of real customers as fast as possible, and then improve it through customer feedback in short and fast iterations, these advantages of web application may well outweigh the disadvantages.
Finally, web technology is ever evolving, and many features that a few years ago where the sole province of native apps are now available to web applications. For a full list of web-supported features and the few remaining exceptions, see https://whatwebcando.today/.