In 1994, the first smartphones became must-have devices and changed the way we do everything. It’s reasonably safe to say the mobile platform is here to stay.
A dizzying array of mobile apps for both iPhone and Android are available—a seemingly infinite variety of ways to communicate with others, waste time, or work.
The web isn’t dead—far from it. When you’re at a party and need to settle a bet over some factual question, you pull out your smartphone (As if you ever put it away to begin with…) and look it up—where? On the web, of course.
When drawing a roadmap for a new app, developers may need to make a fundamental choice: go for native mobile app, or a responsive web app? Or both?
In case you’ve been off the grid for the last five years or so, here’s a refresher on “native mobile app” and “responsive web app.”
A mobile app is one written for a specific mobile platform using that platform’s native operating system (OS). Native mobile apps are to mobile devices what Windows or MacOS apps are to laptop and desktop computers. Anything downloaded from Apple’s App Store or the Google Play app store and installed on your smartphone is a native mobile app.
The executable code for a native mobile app can run on only one OS. However, there are ways to write the source code once and have it separate Android and iOS executables. This is called cross-platform development.
By contrast, responsive web apps represent an attempt, usually successful, to enable web app—that is, apps written for delivery in a web browser—to sense the screen size of the user’s device and present a user interface optimized for that size. In this way, a single website or app looks good and retains more or less equal usability, regardless of whether the user is on a smartphone, tablet, laptop, or traditional desktop computer.
Through clever design and programming, a responsive web app on a smartphone can be visually indistinguishable from a native mobile app.
So which one is better? It depends.
Each approach has advantages, so the “best” choice often boils down to short-term goals, long-term strategic objectives, project timelines, and budget.
Here are the pros and cons of each approach as they stand in 2019:
Development effort: Native mobile apps are generally more expensive to develop than their web-app counterparts because:
Web app development is less expensive because you’re developing only one codebase. And whether it’s built with PHP, ASP.NET, or simply JavaScript, your development team needs expertise only in the chosen technology.
Designers are also free to be creative with the user interface—there is no external approval process to get through, and no standards or guidelines to observe, other than usability best practices and what you can reasonably get away with on each form factor.
At one time, responsive web design meant maintaining separate presentation (user interface) layers for each device type, and they all had to be kept in-sync with changes in app functionality. Recently, techniques have been developed that enable maintenance of only one presentation layer that automatically senses and adjusts according to window or screen size.
Release cycle: Native web apps must go through a new approval cycle by each app store for each new version. Web apps need only have new code pushed out to the web server when there’s a new version, so release cycles can be tighter and more agile.
There are advantages and disadvantages to each approach in other areas:
There’s no clear advantage in all cases for one approach over the other. Each approach has advantages that make it more appropriate for particular projects. It all depends on what you want to achieve and how much you want to spend to get there.