The Case Against Native Apps

Someone recently gave me a gift certificate to an online delivery service. There was nowhere to redeem it on their website. The FAQs had instructions describing links that didn’t even exist. Then it occurred to me – this is an app only feature. Then it struck me – why?

I have been doing full stack development for almost two decades now so it has been interesting to watch some industry trends. When smartphones really started gaining traction we had the App Store race – even when many of those apps just served the website in a web view. Reminiscent of the Dot Com era where everyone needed a website – even if there was no business value in having one just because. Steve Jobs even famously pushed back against the iPhone SDK and wanted developers to use HTML+CSS+JS to build their experiences on his device.

Lets discuss what some of the challenges are when working at a company with an app:

Adding a new feature on the web is as straightforward as merging your feature branch, and deploying. All clients instantly get the update the next time they visit the website. No updates required. Except we threw that out that amazing benefit of distributing software over the web and went back to release cycles with the app images. Worse, there is now an intermediary standing between you and your customers in the form of an app store approval on Apple devices.

Related to release cycles, you also have to deal with legacy version support as not all customers auto-update their apps, or even can auto update to the latest version of your app because of OS restrictions on their devices. This means a long tail of support as you have to keep around legacy code until some threshold of your users are updated and you are comfortable disenfranchising the rest.

As a full stack developer I design the feature, and then the native app teams… redesign the same feature using native screens. This duplication of features costs time and resources. Worse still it is per platform – desktop, Android, and iOS are all separate. Thanks goodness Microsoft failed with their Windows phone or there would be a THIRD native app team. In many ways I think the duopoly at play here cemented the feature workflows we have today. Lets say 10 phones succeeded – no way we wouldn’t have figured out how to build something once and have it work on all the phones (hint – its HTML+CSS+JS). But just two vendors plus desktop? We can turn a blind eye to triplication.

One idea I’ve been thinking about recently is how these native teams integrate in with the other product teams. I’ve traditionally seen the iOS and Android teams almost exclusively partitioned off as their own product teams. But they aren’t products – they are platforms! Perhaps it is better to embed native developers into the product teams from an organizational standpoint.

Now why you may ask do we have these native apps at all? Remember Steve Jobs infamously didn’t want them. Yet in the year 2021 everything is an app. The web just serves as a funnel to the app – how many times are you annoyed to download the app? Is the web not capable of these app experiences? For the most part the web is on par with native app functionality. Javascript has come a long way and can access like sensor data, geolocation, offer speech to text, provide push notifications, camera access, and single page app experiences that rival anything you can do in a native app. Many HTML transitions and animations are hardware accelerated so even on a mobile device you get a super smooth experience. How about the layout considerations on the smaller screens? Responsive layout has this solved too with many ways to adjust your website layout based on different screen sizes via media queries.

So if it isn’t technical (or in large part not a technical hindrance) why do we need these apps?! The answer I think is money. Google and Apple don’t get 30% cuts on payments made on the web because the web is an open platform. They only get that money from their walled gardens. These companies have unfathomable amounts of money and market the hell out of these app stores. I don’t see anything on the scale of that amount of money marketing the web. Despite these same companies sitting on the committees approving web standards and implementing them in their own browsers (on their own operating systems!) .

It feels like the web has been neglected thanks to an advertising campaign of FOMO that rivals the Dot Com era domain name grab. The more apps I try the more I’m convinced this app I downloaded didn’t need to be an app at all. And its worse for it with slower release cycles, duplicated development (that could have been spent elsewhere), and a general inconvenience to the user being bombarded to “Download the app”. No thank you.

I’ll leave you with a wild ass prediction – in 10 years we will look back on apps like how we look back on Rich Internet Application platforms like Silverlight and Flex. It will seem silly that we needed to rebuild what the web already provided us. If Google and Apple really wanted these features they should have just integrated them into their browsers – not made a whole new platform. We will realize that the customer does NOT benefit from an app drawer of 100 icons that we have to hunt and peck the right one to do some task. The web was here before apps, and I believe it will be here long after apps. The native app developers will be happy to know they aren’t out of a job – they can happily find work on the web teams once the platform partitioning falls away. All it takes is a realization that the web is ok, and we don’t need to spend extra money just to give 30% of it to Google or Apple – they will be just fine.

Advertisement

Leave a Comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.