How to build an app 2x faster and cheaper
My journey into product development started from building websites back in 2004. The web was pretty much a collection of HTML pages with some CGI scripts sprinkled here and there. PHP just started its ascension to success back then, and PERL dominated web scripting.
First iPhone was released in 2007, and it changed everything. In mere years it wasn’t about the websites anymore. It was all about apps. Even sites were now apps. Ruby on Rails took over and changed the landscape — I was either building a backend for a mobile app or building a web app.
By 2015 mobile dominated the web. Every time I look at analytics, I see mobile users taking 60% of the audience or more. Everyone and their dog is on the phone. Did you know that iPhone XS is faster than an iMac Pro in JavaScript benchmark? JavaScript is what the web is running on these days, both frontend and backend.
But do we really need to build so many mobile apps? Disclaimer: We sometimes do, but these cases are very specific. If you have an app idea, I will try to convince you that you need a web app. Why? Here are some reasons:
Web apps are easier to build
If you’d decide to build a mobile app and a web app with the same functionality, it would take you two times less time to make the latter. In fact, we ran an experiment with a client who asked to create a mobile app for internal use. We had some cycles available and built a responsive web app as a bonus. The client ended up using the web app for the whole team.
Web apps are easier to maintain and update
The biggest pain of mobile apps is their update cycle. Every time you release a new version of the app with major changes, you need to create yet another version of the API. And you have to maintain all previous versions to keep old versions of the mobile app runnings. It adds way too overhead compared to a web app where you just push the code and boom! Everyone is using the new version.
Web apps don’t need approval
You can make any changes to the web app whenever you want. No app store is needed to distribute it — it’s readily available for anyone who’s not living under a rock and using a web browser. Old days of complying to IE6 quirks are long gone, pretty much everyone is using modern browsers that support features like WebGL.
Web apps are fast enough
I’ll repeat this again — did you know that iPhone XS is faster than an iMac Pro in JavaScript benchmark? Our phones are capable of much more than running WhatsApp and Gmail at the same time. They can do a lot, including running a web app in a browser. The UX of most responsive apps is pretty good on the latest phones. Of course, if you let yourself loose with fancy animations and try to compute too many things, you will notice some lags. But it doesn’t happen for most of the apps with well-thought architecture.
Web apps are cross-platform
Major pain of mobile apps is their main benefit. To get most of the native platform, you need to use its own language and frameworks. Projects like ReactNative allow you to share some code. About 60% of it, really. I call it the backend of the frontend since all UI must be re-implemented for each platform. But what I’ve noticed recently is that responsive web apps get almost as fast as ReactNative. And you get 100% of the code shared between all platforms that support web standards.
Web apps can work offline
A common misconception about web apps is that you need to stay online to use a web app. Not true! By utilizing smart caching, you can make your web app work offline. The amount of storage is somewhat limited, but it’s most than enough in most cases. Offline mode can really make a difference and make you feel like you’re using a good old desktop or mobile app, especially if you add it as a desktop shortcut.
Web apps are easier to market.
If you’re into marketing, you should know that every action you ask a user to do is a barrier that he has to overcome. Installing an app is no different. With a web app, you can sign the user app right on the landing page, so that he starts using the service straight away — no need to redirect to the app store that you have no control of.
Chances are you are already using web apps in disguise
Go to https://electronjs.org/ and check out the list of apps there. All of 800+ apps there are built for web and converted to desktop apps using Electron wrapper. They basically run in a chrome browser without toolbar. Slack uses Electron. Figma uses Electron too. Even WhatsApp does. The chances are that your favorite desktop app is a web app in disguise.
When mobile apps are the right choice
As I said, in the beginning, there are cases when a mobile app is a right choice. For example, if you need access to the camera, or if you need to do a lot of computations, e.g., you are building a video editing app. Fancy micro animations will also make your responsive web app feel clunky.
I will say it again. If you are just starting out please consider building a web app first. You will save yourself a lot of headaches and also save a lot of time and money. You’ll be able to iterate faster and release features and fix bugs in a matter of minutes, not hours (or days, if you have to wait for approval).
If you are non-technical and your technical co-founder or developer is insisting on building mobile you should ask why. If you are technical and you are good at building mobile apps you may be the man with a hammer looking for nails.