Appification
TechCrunch recently posted an article discussing RIM CEO Jim Balsille's comments at the Web 2.0 Summit. If you google around you can find some details from Balsille's remarks, specifically where he refers to "Appficiation" and where he says that "you don't need an app for the web."
Balsille is referring to the need to take a website and transform it into an app, like for example the Wall Street Journal or the FOX News apps, or even for that matter the ESPN, Sportacular and SportTap apps. You can go even further, and include the Weather Channel, Weather Bug, any of the Twitter apps, Facebook, Google Reader apps, Amazon.com, and the list goes on and on.
Balsille seems to be saying that the concept of transforming service-driven web sites into apps will die over time and people will return to the web. I'm skeptical of his certainty but I think he makes a valid point that needs to be discussed in web development circles.
First though, let's clarify something. The Appification of the web is not Apple's invention. When the iPhone first came out Apple's appeal was to develop mobile web based apps for users. They pushed HTML5 technology and worked hard to sup-up Safari to make it a truly powerful web browser. Appification has come primarily from third parties who have translated their own services into apps completely independent of Apple's beckoning.
Now what's wrong with Appification? First, Apple. Every Appified website has to go through Apple's ringer. For some sites this has not proved to be a big problem. For other though, it's completely halted development and release. More importantly, cross platform development. If every site builds an app they're going to find themselves developing individual apps for every platform available. What's worse is the end user will ultimately suffer. I'm still waiting for some apps to roll out an iPad version!
Now I'm not totally opposed to Appifying. In many ways I think it's a great idea. But we need to remember that the capabilities of HTML5 combined with Apple's windowless mode for Safari could be a better option.
Consider the fact that Safari supports HTML5's local storage and caching mechanisms, as well location based services and you've got access to some powerful tools. Combine this with OpenGL rendering of gradients, shadows and other UI elements and Safari web development is really a piece of cake. Plus, Safari's javascript engine is really fast. In principal the difference between fetching a news article from an App or from a web browser is really non-existent. Both are ultimately making requests to a news service website to grab that data and then display it.
So where do things get held up? The answer is in the initial load of a website. Most mobile websites re-render the bulk of the UI and navigation on each page requests. They also load way more then is necessary hiding a bunch of things with CSS. This is easier then developing a stand alone mobile website, but the disadvantage is to the end user who has to wait for all that stuff to load. Furthermore, very few websites take advantage of caching the interface they develop in the web browser. If more websites did this load times would be dramatically reduced and web apps could focus on fetching data to display in an already cached interface.
I think part of the reason this has not been pursued with greater intensity is lack of knowledge. There just aren't a lot of great working examples of web apps that really draw on the power of Mobile Safari. This is as much Apple's fault as it is the HTML5 community which hasn't stepped up to the plate in this area. Better examples to aid in development would go a long way for people embarking down this road. Another reason is because its taboo to develop browser-specific sites. The mantra is that a mobile site should be generic enough to run on every mobile platform and gracefully degrading is an important feature. The reality is, gracefully degrading can produce more expensive coding and Mobile Safari is a heck of a lot more powerful then the Kindle's onboard web browser and we just shouldn't compromise a greater user experience on Mobile Safari for an eReader or Sprint's latest and greatest antiquated phone.
Yes, I'm suggesting we replace Appification with browser-specific development. This may seem like the same problem, but reality check: Android and iOS both use Webkit to make their web magic. For that matter, PalmOS is webkit based and the latest from RIM on the Blackberry platform is also Webkit based. That means that a well-written standardized web app focussed on Webkit and it's mobile technologies should have a pretty seamless existence across modern mobile phones.
Last summer for Higher Things I developed a couple of web apps for the iPad and iPhone. One of our staffers is an Android-lover and decided to give one of our iPhone apps a spin on his HTC phone. To his surprise (not mine) the app ran just fine. In fact, the user experience between his phone and mine was almost identical (my fonts were better). Had I tried testing the app on Android before we used it? No. The underlying technologies were close enough that the web app just worked.
As long as all of the major phone providers continue to use Webkit to power their browsers we can develop web apps that take advantage of modern technologies without worry about a debacle of cross-system development. I don't see the landscape changing in terms of Webkits usage. The reality is that Chrome is Webkit based, the Chrome OS is web based and with as much of an investment as Google has made into using Webkit they would have to scrap a huge chunk of their infrastructure to move away from it. Apple as the godfather of Webkit has also made huge investments in the technology and would need to make a dramatic side step in order to get away from it. It would make for some seriously flawed business decisions, and those just aren't going to happen.
So back to Appification. Have we gone too far? Probably. The truth is that Facebook stinks on the iPad, the approach of the Wall Street Journal app leaves much to be desired and the update time for the Fox News app is way too slow. Balsille is correct, we need to focus on the web and not apps for the web. This means developers, like myself need to step up the plate and focus on true web development for mobile versions of Webkit. We can supplement this with apps when needed, but we can't neglect the bread and butter of the internet on the mobile platform.
