Let’s start from a bit of history.
When Apple released the very first iPhone they also announced that the only way to build applications was with web technologies. I was one of the few excited about it, Apple’s decision was visionary but everyone wanted a deeper access to the phone APIs.
At that time Safari Mobile was still unripe. Hardware acceleration was not existent and neither
position:fixed were supported. There was no way to get a decent product out of it.
The truth is that iPhone SDK was not ready and Apple didn’t want to release a half-finished product to the public. Soon after the SDK came out, everyone wowed at it but developers started to look back at web apps.
The webkit was quietly becoming the most powerful and features rich mobile browser in the market and the line between native apps and web apps was blurring.
Browser finally got hardware acceleration and iScroll and other JS scrollers were a viable substitute to native scroll view.
But my discontent and frustration is growing high at each iOS release lacking native support for
position:fixed and hardware accelerated canvas (needed for JS games).
Nitro came out. Everyone wowed again, but that phantasmagoric engine was not enabled for web apps. We have enough evidences to say that Apple is boycotting web applications in favor of native apps. Wrong! Keep reading.
Native apps are sold exclusively on the iTunes Store where Apple is earning 30% a pop. Web apps are instead out of Apple’s control, you can sell them wherever you want out of Apple’s iOS strict guidelines.
It may seem that Apple is not willing to unleash the true web apps potential. But let me say something: Apple doesn’t give a damn about what technology you are using to build your app (as long as you are building apps for their products)! Not to mention that even with the lack of native
overflow:scroll or hardware accelerated canvas, iOS browser is still the best mobile browser in da house.
We have to face the fact that we are (were?) not technologically ready for 100% web apps. Palm tried and failed, maybe webOS will be more lucky under the HP wing. Apple –as it already happened in the past– is not willing to release a technology until it is not completely satisfied with it.
Now iPad2 is out and it has enough juice to host any web app even without HW acceleration. But the real revolution might be iOS5. In the first beta they revealed overflow:scroll and position:fixed, while the second beta seems to unleash the devastatingly cool
-webkit-overflow-scrolling:touch CSS property.
-webkit-overflow-scrolling:touch you can finally have native scrollview inside your web app and together with webGL there’s no reason on Earth to go Object-C (I’m over-exaggerating, don’t flame).
As it is already happening for Mac Apps you may decide to publish your future iOS apps on the Apple Store, or release them on your website, or take advantage of the two worlds and follow both paths.
I envision a future where 90% of the native apps are just webview wrappers (as it is already happening thanks to Phonegap).
Now there’s one more thing. Web apps are much more than position:fixed or webGL. You can update them on the fly, build your own business model on them, ask for a subscription fee, have your users pay for additional features, or make them completely free.
This is a level of freedom that Apple will hardly give you. You’ll be always bound to the Apple’s guidelines. I’m not saying this is wrong. I praise Apple for the efforts they are lavishing into web technologies, but “the web” is not just a set of technologies. In that I feel that Google has a better, more liberal approach, but unfortunately, on mobile browser they are one year behind of Apple.
Please note that this article is based on rumors about iOS5 beta features. Apple is not new at stripping out functionalities from golden master.