Apple handcuffs 'open' web apps on iPhone home screen
Three bugs? Or three-headed App Store conspiracy?
Exclusive Apple's iOS mobile operating system runs web applications at significantly slower speeds when they're launched from the iPhone or iPad home screen in "full-screen mode" as opposed to in the Apple Safari browser, and at the same time, the operating system hampers the performance of these apps in other ways, according to tests from multiple developers and The Register.
"Apple is basically using subtle defects to make web apps appear to be low quality – even when they claim HTML5 is a fully supported platform," says one mobile web app developer, who asked that his name not be used.
Apple did not respond to multiple requests for comment.
What's more, such "home screen web apps" can't use various web caching systems, including the HTML5 Application Cache, which means they can't be cached to run offline. And they aren't rendered using Apple's newer "asynchronous mode". They're saddled with the old "synchronous mode", which means means they don't quite look as good.
Offline 'home screen web app' on Apple iOS 4.3
Though the company did not respond to our inquiries, Apple is apparently aware of all three issues involving home-screen web apps. According to Apple developers posting to the web, the speed issue has been discussed in the company's developer support forums, and one developer – the same unnamed developer quoted above – confirms with The Reg that multiple bugs have been filed on the issue.
He also says that bugs have been filed on the cache and asynchronous mode issues – and that he's actually discussed the problems with Apple. "I've talked to people on the Mobile Safari team who said they knew about the [caching] issue," he tells us. The caching issue is discussed on the popular developer site stackoverflow.
All three issues also affect native iOS web applications that uses Apple's UIWebView API – i.e., native applications that tap the web in a big way. "[UIWebView] is a controller that you can include in your app to offer web content," says Alex Kessinger. "Some people write their entire app in HTML and then just bundle it for inclusion in the App Store."
"Apple’s mobile devices all ship with high performance, low power implementations of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is completely open and controlled by a standards committee, of which Apple is a member."
But at the same time, the company has a vested interest in its App Store, where it takes a 30 per cent cut of all applications sold, and pure web applications are ultimately a threat to the store, particularly when they're loaded to the iOS home screen as if they were local apps. "Some people like to think of it as a conspiracy theory, but it could be a bug," Kessinger says, referring to the speed issue. "If it is conspiracy, it makes a lot of sense for Apple. If you 'disallow' home screen web apps, you prevent people, in a way, from bypassing the App Store."
Down to the test
According to tests from developer Maximiliano Firtman, author the O'Reilly tome, Programming with the Mobile Web, Apple iOS 4.3 runs web applications in the browser about two times faster than when they're launched from the home screen into full-screen mode. And like the three other developers we spoke to, he's sure this is because home screen apps can't take advantage of Nitro.
Running in Safari on an iPhone 4 loaded with iOS 4.3, Sunspider took about 4047ms:
Running from the home screen, it took about 10747ms:
Apple isn't degrading the speed of home screen web apps. It's boosting the speed of web apps in the browser. But in the long run, the effect is the same. And if this is a bug, Apple has yet to fix it.
On top of this, apps are hampered by the cache and asynchronous mode issues. According to one anonymous developer, access to certain web caches was cut off in iOS 4.2. And the issue is confirmed by a second developer. You can try it yourself with HTML5 apps such as Pie Guy. With earlier versions of the OS, if you move the game to the home screen and run it once, you can then play it offline. But if you try to do so on the latest version of the operating system, you can't.
The first developer also says that WebView native apps and home screen web apps are rendered in synchronous mode, whereas on iOS 4.3, they're rendered in asynchronous mode. "[With synchronous mode], you will sometimes see this weird grid of dark squares," he tells us. "Basically, when repainting the screen, synchronous mode can sometimes show your UI partially repainted."
This developer reiterates that if Apple didn't specifically introduce these problems in iOS, it's aware of them now. And he says that the Mobile Safari team has indicated the issues will not be fixed.
If Apple won't fix them, he says, Google should. "The Android team needs to pick this up and compete on it." ®
Updated: This story has been updated to make it clear that the speed difference occurs when home screen apps are launched into full-screen mode.