THE MENTAL BLOG
THE MENTAL BLOG
2011
I've just returned from the inaugural Update Conf in Brighton, UK. Aral Balkan (@aral) is a popular presenter at other tech conferences, and his first venture in the role of conference organizer was a raging success. Everyone thoroughly enjoyed themselves at the pre- and post-conference activities, and the day itself was a diverse mix of music, tech talks, and onstage interviews, a bit like a Tech Variety Show. Very unique, and I for one thoroughly enjoyed it.
One of the talking points of the conference was a presentation by Jeremy Keith, which was followed by an onstage debate. Keith presented the case that we should forget about developing native apps for mobile platforms, and move everything to the web browser. He is a very good speaker, and his conviction seemed to leave his fellow presenters a bit overwhelmed, incapable of launching a good defense of native apps. Despite the fact that I did not meet anyone else who actually shared his views — not even any web developers — he controlled the debate, and deserves full credit for that. (To be honest, he was so unrelenting that I thought he may be under instructions to play Devil's Advocate, but let's assume for now that he was being earnest.)
Of course, just because someone speaks well does not mean he/she is right. There are actually many good arguments against what he was espousing, and I heard many of them from fellow audience members throughout the conference. I think it is an important discussion, and I want to make a belated case for native app development here.
Keith made a number of key points in his talk. The web, he said, comprised of HTML, delivered over HTTP, with one-way hyperlinking in the form of URLs. He claimed that native apps broke this model, mainly because you couldn't link to them in any universal way. Even if an app does support a URL scheme, linking to it will only work on devices that both support the app and have it installed, whereas web sites will work anywhere (in principle).
He also strongly emphasized the fleeting nature of native apps, and the permanence of web sites. I believe he described native apps as being part of a 'flow', like a stream of disposables with no lasting benefit. Web sites, on the other, will continue to work in future browsers, and in that way contribute to the betterment of humankind in a more permanent way.
Finally, he invoked the ubiquity of the web to implore developers to reach out to a broader audience, and stop limiting their apps to particular devices or operating systems. Developing in HTML, according to Keith, means anyone can utilize and benefit from your app. How could that be a bad thing?
On the face of it, the arguments seem reasonable enough, and it is easy to see why you would struggle to counter them if you were put on the spot, with no forewarning, in front of several hundred onlookers. But the arguments are unquestionably flawed, and conveniently fail to acknowledge many realities of mobile software development.
Probably the biggest hole in Keith's argument is that it artificially partitions web and native apps. By claiming that HTML is integral to the web, he is attempting to segregate native apps, isolating them from the web, when anyone who uses native mobile apps knows that many, even most, are closely coupled to the web. In fact, I would argue that most native apps are 'web apps', despite the fact that they don't use HTML.
In fact, it is wrong to view HTML and the web browser as anything more or less than the most successful cross-platform development environment that we have. A virtual machine, like Java's JVM or Adobe's Flash, it runs on every device, and — in the same vain as the JVM — offers the same lowest common-denominator user experience on all devices. HTML, together with JavaScript and CSS, has become little more than a presentation technology. It only differs from other solutions in its ubiquity, and non-proprietary nature. These factors are important, but should not be confused with any technical advantage.
The permanence of web sites is also highly questionable. Most web sites undergo regular design changes, the equivalent of a native app getting an update. In this respect, the two are equally fleeting: the HTML of a site is as likely to change as the controls in an app. Both are in constant flux, and if neglected, will become less useful and may eventually fail to work at all. How many unmaintained web sites do you visit regularly? It's a nice thought that web sites could theoretically survive in perpetuity, but in practice it doesn't happen, and even if it did, would not have any great benefit, other than perhaps for historians.
In any case, what you want to survive forever is not the visual presentation of the web site, but the content it contains, and this is completely independent of the presentation medium used on the device. A well designed web service is many times more useful than a web page. The content is well structured, and can just as easily be presented in a web page as passed to a native app. The data can also link to other resources, whether they be web pages or apps.
To finish off, I want to address the idea that as developers we should be aiming to reach as wide an audience as possible. This is not my own objective, nor the objective of many other developers. Personally, I want to develop the best user experience for my customers that I can. I forego a broader audience to build a better product for fewer users.
Keith would claim that I am doing a disservice to mankind, but that is not the case. I will develop the best app that I can for iOS users; my counterpart on Android will do the same; together we will deliver a high-quality experience tailored to our respective audiences. This scenario is far superior to each developing poorer-quality web apps in an effort to reach as broad an audience as possible. Two wrongs don't make a right. (And, yes, web apps are by their very nature unoptimized for the native platform, and thereby offer a 'poorer' experience.)
This whole discussion is to some degree moot, because the people have already spoken. It may be tempting to suggest that the App Store was a ruse forced upon us by Apple, but the truth is actually completely the opposite: Apple did not want to allow native apps on the iPhone, and was pushed into it by the overwhelming strength of the jailbreak community. People wanted the better user experience provided by native apps, and if Apple wouldn't allow it, they would do it themselves. In a pinch, a browser will do, but it will never supplant native apps, and why should it?
Want to comment? Head on over to our Tender site
WHY NATIVE APPS ARE HERE TO STAY
8/09/11
Will Web Apps ever completely supplant Native Apps on Mobile? Don’t count on it.
Photo by josef.stuefer - http://flic.kr/p/QGaM