iPhone webapps are not as bad as people think
Friday, 27 November 2009
Earlier this week Peter-Paul Koch wrote an article on how iPhone developers were stupid for not recognizing the potential of developing webapps. I agree with many of his points why webapps are a good alternative for native applications. I also agree that some of the apps that Apple currently ships with the iPhone could be replaced with webapps. That being said I do not believe that webapps can replace native apps altogether. Even Peter-Paul changed his mind on this point based on the comments in the original article.
This small article isn’t a direct reply on the original article, but more a reply to some of the comments made by others in his article. I’ve chosen three, but there are many more that convey the same sympathies.
I’m sorry, but no. Webapps have one huge, huge disadvantage: they are terribly slow on the iPhone. I mean, *really* slow. Even the worst native app can’t compete with the slowness of most iPhone optimised websites.
Kilian Valkhof
I have to admit that webapps are slower than native apps. No doubt about it. But slower doesn’t mean slow. Webkit and its JavaScript engine have become quite fast and the iPhone is powerful enough run even some of the more complicated webapps.
No, no, no a thousand times no.
As a mobile device, the iPhone spends a significant amount of time disconnected from the Web. You write that grocery list app to run in Safari and it’s useless to me, since I can’t get a signal inside my grocery store.
Jeff Leyser
I think some people have a big misunderstanding about what webapps really are. Sure, they are based on HTML, JavaScript and CSS, but that does not mean you need a network connection to run them. The iPhone supports the HTML5 Offline Cache specification and if your app supports this too it will install a local copy of all the resources it might need on your iPhone. After installing you do not need any network connection at all.
I’m sorry but there is NO WAY to convert a native app into a webapp:
1) You can’t have top and bottom menu in webapps !!!!!
2) You can’t get rid of the safari bottom menu
3) You have to use a trick to hide the url bar and it’s really not pretty (bar is showed during page loadings)Fabien Agranier
And finally some comments by Fabien on problems any iPhone webapp developer will encounter. And while his comments do have some truth, he is missing the point so completely that is difficult to begin and refute his claims. For his first claim he is referring to the lack of support for position: fixed
and slow performance of overflow: auto
, which are real problems. Fortunately there is a workaround for both at the same time: iScroll (I personally use an updated version of iScroll in my own projects because the physics of the scrolling was a bit off compared to native scrolling). His second and third claim are also true, but only when you run a webapp in Safari. If you install the same webapp on your home screen you can configure if you want the URL bar and the bottom menu to be displayed.
Instead of taking me on my word, I though it would be nice to create a little movie that shows my own iPhone webapp: MediatankController. You be the judge on whether the comments above are justified. I bet you wouldn’t notice it was a webapp if I hadn’t told you beforehand.
What Theora encoder library did you use? I always had good results even transcoding from other formats with ffmpeg2theora (this program rewrites the ffmpeg theora libraries, which suck).
I DID know about most of these techniques for making a web app behave like a native app, and I’m STILL impressed with your achievement with MediatankController. Nice work! I’m just looking into improving the iPhone versions of some of my websites, and this will be a good model to follow.
Also, for what it’s worth, the video looks fine to me in Firefox. Did you re-encode it, or is it only the Windows version of Firefox where it’s looking bad? (I’m on a Mac.)