Thursday, April 21, 2022

Do you really need that Mobile App?

Installed PWA
Plates Across America® does not currently have a Mobile App. Shameful, isn't it? In today's world, this is a serious liability, since a mobile app has become expected, especially for a game.  We would certainly like to have a mobile app, but the cost to develop one was not in our small, bootstrapped, startup budget.  

Our plan was to use the browser-based version to gauge interest, improve the game play and then assess whether we saw enough traction to warrant investing in a mobile app.  Currently, we are not so sure we will ever make that investment. This article is about why we are having second thoughts.

Why a Mobile App?

As we built the game, we invested a lot of time to make the game's interface "responsive": i.e., ensuring it displays well on devices of all sizes.  Presently, it plays just fine on any mobile phone, tablet or really on just about any device which has a modern web browser.  Last we checked, that means most all devices, probably even your refrigerator. 

The more we played on other devices, the more we began to ask ourselves exactly why do we need to spend tens of thousands of dollars developing a mobile app? The only thing we will get for all that money is the ability to be in an app store.  After this hefty expenditure, the game would have no new features and the player's experience would not be any better. The fact that there are two (main) mobile app ecosystems, iOS and Android, makes it even worse: a company often needs to implement the same features three times. 

There are cross-platform development frameworks aimed at helping to tame this mobile Tower of Babel. However, there is a dizzying array of (still-maturing) frameworks (e.g., Flutter, React Native, Ionic) each of which result in being locked into the particulars of their custom framework and the added expertise that requires. The dirty secret of these cross-platform frameworks, which like to boast statistics like "95% cross-platform code", is that the remaining 5% requires writing native device code on each platform. So instead of needing expertise in 2 platforms, now you need it in 3 and not the 1 as they promise. These are not (yet?) a panacea for the multi-platform problem.

PWAs

It turns out, we were not the first to question the need for a mobile app.  Along the way we learned about "Progressive Web Apps" (PWAs).   A mobile app is just a container that runs your software, but so is a web browser.  While native apps use the Swift or Kotlin programming languages and their respective UI frameworks, web browsers use the more ubiquitous HTML, CSS and Javascript technologies.

The PWA standard was developed to leverage the common browser's tech stack, while adding some features that put the browser container on par with the native mobile app container.  The noticeable visual differences go away with PWAs (e.g., search/url bar, buttons): it will look and feel like a native app. It even presents the user an "install" option to add an icon to the device's home screen. Unfortunately, the PWA standard is implemented by some, but not all web browsers, for reasons explained below.


Browser Support

Apple makes billions of dollars on the fees they charge for their App Store.  They have little incentive to support PWAs which is why their Safari browser does not (and may never) fully support PWAs.  PWA is an open standard which means that you would be able to install it on Apple devices without being forced through their App Store and their monopolistic commission fee structure. 

Google, on the other hand, was the principal driver of the PWA standard and fully supports this in their Chrome browser. Google has even teamed up with Microsoft in their PWA efforts to try and loosen Apple's grip on the mobile app market, so even Microsoft's Edge browser is PWA friendly.

The Future versus Today

Will PWAs emerge to eliminate this multi-platform hell or to help level the app store playing field?  We hope so since the current state is terribly illogical, highly inefficient and disturbingly authoritarian. However, our game exists in the present and a generation of people have been trained to go to app stores to find games, so what should we do? It turns out there is a solution ... but only sort of.

Google and Microsoft have developed tools that make it possible to put a PWA into an app store. Bubblewrap is Google's suite of tools and Microsoft created the web site PWA Builder that makes these tools simpler to use.  These work by creating a shell of a native app for each platform (iOS, Android and Microsoft), where this shell has just enough capabilities to render web pages (what iOS would call "web views").  It then sets up all the boilerplate config stuff to point at the web site that hosts the PWA.  Effectively, it is the devices's native container wrapped around a browser container with your code inside that. You can then take those automatically built packages/bundles and submit them to the various app stores.

We tried out this tool and were successful in getting listed on the Microsoft Store (see our listing).  As of this writing, we have submitted it to the Google Play store and are waiting for them to review it.

In theory, we can submit this to the Apple App Store too, but we are not sure if we will.  Being a PWA alone presents a risk they will reject it: they are hostile toward PWAs and dictatorial in their decisions. Apple also forces you to use Apple Pay if you want to be in their store (because, why not, who's going to stop them?). What is also true is that submitting to the Apple App store is about 100X more complicated than the other stores, so we could invest a lot of time for zero gain. (The following article drives that point home with some more technical detail: "I Built a PWA and Here is What I Learned".)

Summary

If the PWA standard continues to grow in adoption and people become less constrained in viewing app stores as the only means of acquiring software, there will be no need for Plates Across America® to have a mobile app.  However, that future is still uncertain. For now, we will continue to refine our browser-based version and see how it unfolds.

Happy Travels! (and please do Try Our Game for Free!)