As part of my day job running a web/application development company, I regularly think about the web versus native app debate, especially when it comes to mobile. A recent article on one of the (few) websites I follow these days titled ‘Better Than Native’ on CSS-Tricks got me thinking again about the web vs native debate. It made me consider the current state of affairs and whether the web can and will win, and what it might take for that to happen.
Web vs Native – A short history lesson
I’ve followed the evolution of the mobile web for over a dozen years, and to say it has come a long way is an understatement. Some of the first mobile websites we built at our company were mostly texted-based, stand-alone websites that existed in the ‘m.’ space of the web. They were meant to work on BlackBerry and Nokia phones well before the popularity of the iPhone. Calling them websites was a stretch. Connectivity and phone technology allowed for only one or two images at most in addition to text. Otherwise, the websites were unusable.
If we continue our short history lesson on the topic of web vs native, it was none other than Apple and Steve Jobs who promoted the development of web apps over native apps when the first iPhone was released in 2007. I’m going to link to the press release on the Apple website, which is available here. Just in case this link becomes stale, here’s the attention grabbing first paragraph lifted from the press release. Keep in mind, this appeared under the press release subheading, which declared, ” Innovative New Way to Create Applications for iPhone “
WWDC 2007, SAN FRANCISCO—June 11, 2007—Apple® today announced that its revolutionary iPhone™ will run applications created with Web 2.0 Internet standards when it begins shipping on June 29. Developers can create Web 2.0 applications which look and behave just like the applications built into iPhone, and which can seamlessly access iPhone’s services, including making a phone call, sending an email and displaying a location in Google Maps. Third-party applications created using Web 2.0 standards can extend iPhone’s capabilities without compromising its reliability or security.
Even more interesting, is the follow-on paragraph which quote Steve Jobs himself.
“Developers and users alike are going to be very surprised and pleased at how great these applications look and work on iPhone,” said Steve Jobs, Apple’s CEO. “Our innovative approach, using Web 2.0-based standards, lets developers create amazing new applications while keeping the iPhone secure and reliable.”
Unfortunately, Apple sandboxed the browser and isolated it from being able to use some of the iPhones most valuable interfaces. A year later, Steve Jobs would relent and allow third party applications on the iPhone. The App Store opened July 10, 2008, and created the web versus native debate that has raged on since that time.
With the launch of the App Store, native pulled quickly ahead of mobile websites. Native apps offered better performance, richer user experiences, and had deeper access into the inner working of the phone. Many technologists declared native apps the winner and proclaimed the death of the mobile web.
From Responsive to Progressive
Fortunately, there are a lot of smart people who oversee the development of web technology. They took it upon themselves to figure out how to breathe life back into the mobile web. They didn’t do it out of generosity, they did it out of necessity. The gatekeepers of native apps, Apple and Google, made it challenging to get applications into their stores. Anyone who has attempted the process can attest to this fact. Furthermore, the development costs were prohibitive for most businesses, which resulted in the largest companies and the most well funded startups putting quality applications into the stores. Clearly, something had to be done to level the playing field.
The initial attempt was a technique called responsive design, which is still prevalent today. While responsive design works, it’s often not implemented properly. Too many sites use responsive design to merely shrink their websites to a mobile screen size. They don’t spend the time and effort to development a quality mobile user experience.
The latest answer has been a shift to ‘mobile-first’ and Progress Web Applications (PWAs). Mobile first is a technique whereby an online presence is designed for the most challenging user experience first – the limited space, connectivity, and demands of the mobile user. The design is then implemented responsively, incorporating specific pieces of technology such as HTTPS, a JSON manifest, and a service worker, to make it progressive. Making it progressive lends itself to performing better on mobile and gives it same of the same capabilities as a native app, such as installation on the phone’s home screen.
One important misconception with a PWA is that it has to be an application. A PWA is just a catchy name, as stated in this post by Frances Berriman (key excerpt below):
The name is for your boss, for your investor, for your marketeer. It’s a way for you to keep making things on the open web, even those things that look really “app-y” and your company wants to actually make as a native app, 3 times over…. It’s marketing, just like HTML5 had very little to do with actual HTML. PWAs are just a bunch of technologies with a zingy-new brandname that keeps the open web going a bit longer, that helps it compete with the proprietary, the closed, until the next thing (and hopefully the next thing) comes along to keep it sharp and relevant.
In other words, you don’t need to build a web application to create a PWA. Any website can be turned into a PWA, which will make it perform better on mobile devices.
As mobile-first design techniques catch on and PWAs become more prevalent, mobile web experiences are becoming just as rich, and in some cases better, than their native app equivalents.
Can the Web Really Win?
One of the key points made by Jeremy Keith, whose article is linked to in the CSS-Tricks post, is that we should stop thinking about web competing with native. In his words:
If the goal of the web is just to compete with native, then we’ve set the bar way too low.
A more important quote from his essay is further down, where he states:
I don’t want the web to equal native; I want the web to surpass it. I, for one, would prefer a reality where my home screen isn’t filled with the icons of startups and companies that have fulfilled the criteria of the gatekeepers. But a home screen filled with the faces of people who didn’t have to ask anyone’s permission to publish? That’s what I want!
While I completely agree with is sentiment, my question is this: is his version of reality possible? Can the web really surpass native?
I would like to think that it can, and it will, but there are a couple of things that need to happen. First, the browser needs to have access to all of the device capabilities that native apps have. There are still a couple of interfaces that the mobile OS gatekeepers, specifically Apple and Google, restrict access to. I would content that these restrictions are artificial in nature. They are deliberately put in place to restrict the capability of the browser and to create lock in to their ecosystems. They are also there to benefit their large development partners who have the resources to build native applications that are exclusive to those platforms.
The second thing, which dovetails with the first, is that security measures need to be put in place to allow the browser to access these interfaces without compromising user data. There is a lot of private information contained on our phones, and security needs to be first and foremost as interfaces to deeper workings within the phone are implemented.
Why It’s Important the Web Surpasses Native (and Wins)
In my opinion, it’s extremely important that the mobile web wins. The most important reason is to promote fairness and equality, both for publishing and access. I’m going to lift another quote from Frances Berriman’s post in which she put it best
It’s for the next billion users who come online and open a browser and go looking for what’s out there, for those users who have to pay per mb for their downloads, who have old shitty phones, who don’t want to, or can’t, be on a native-app-based operating system.
Here’s the bottom line. Our ability to access information and use our phones should not be controlled by one or two gatekeepers. An open web, where people can publish freely to everyone is critical. Sure, it requires some security, but we’ve made this work pretty well for the desktop. Why can’t it work for mobile? I would contend that it’s the gatekeepers spreading fear and doubt and trying to maintain the status quo. They make a lot of money of their application stores, and it’s in their best interest to maintain the closed ecosystem because it also locks users into their devices.
While it may not happen overnight, I’m putting my bet behind the web surpassing native. There’s too many smart people working on the problem that know that it’s the right thing to do. And at the end of the day, if the web wins, we will all win.
Further Reading
If you’re interested in reading more, here are the links to all of the articles I referenced above. First is the article ‘Better Than Native’ on CSS-Tricks by Robin Rendle which got me interested in the topic again. Robin’s article referenced Andy Bell’s article ‘Competing by mimicking’ which was an excellent short read. In turn, that article led to Jeremy’s Keith post ‘Progressing the web’ that is another great read. Jeremy’s article referenced Frances Berriman’s article ‘Naming Progressive Web Apps’ which I found to be one of the more poignant of the bunch. Keep in mind that there are more articles linked in each of the above, so you might find yourself pretty far down a rabbit hole once you start your journey. Happy (and safe) travels!