Original URL: 
http://www.theregister.co.uk/2011/03/15/apple_ios_throttles_web_apps_on_home_screen/

Apple handcuffs 'open' web apps on iPhone home screen

Three bugs? Or three-headed App Store conspiracy?

By Cade Metz in San Francisco

Posted in Developer, 15th March 2011 01:26 GMT

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.

It's unclear whether these are accidental bugs or issues consciously introduced 
by Apple. But the end result is that, at least in some ways, the iOS platform 
makes it harder for web apps to replace native applications distributed through 
the Apple App Store, where the company takes a 30 per cent cut of all 
applications sold. Whereas native apps can only run on Apple's operating 
system, web apps – built with standard web technologies such as HTML, CSS, and 
JavaScript – can potentially run on any device.

 
"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.

If a web app is run from the iOS 4.3 home screen – in other words, if it is 
saved to the screen alongside local apps downloaded from the Apple App Store – 
and launched into full-screen mode, it runs roughly  two to two and a half 
times slower than it does in the browser, according to various tests. It 
appears that whereas Apple has updated the iOS 4.3 Safari browser with its 
high-speed Nitro JavaScript engine [1], Nitro is not used when web apps are 
launched from the home screen.

"Essentially, there are two different JavaScript engines," says Alex Kessinger, 
a mobile application developer and blogger [2] who has focused on building 
web-standards-based apps for the iPhone [3]. "They're not using the new 
JavaScript engine with applications that launch from the home screen."

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 [4], 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 [5].

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."

Last year, as Apple boss Steve Jobs defended the company's decision to ban 
Adobe Flash from the iPad and the iPhone, he told the world that Apple believed 
in "open" web standards. "We strongly believe that all standards pertaining to 
the web should be open. Rather than use Flash, Apple has adopted HTML5, CSS and 
JavaScript," Jobs said in his famous "Thoughts on Flash [6]" open letter.

"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 [7], author the O'Reilly 
tome, Programming with the Mobile Web [8], 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.

"I'm not 100% sure, but 99.9999% sure that the timing difference is because of 
lack of Nitro," Fitman tells us. Nitro was introduced with iOS 4.3. Fitman 
offers a version of the Sunspider JavaScript benchmark [9] that lets you easily 
see the speed difference for yourself, embedding Sunspider in an iFrame so that 
it will run fullscreen on the iPhone and iPad. We confirmed his results with 
tests of our own.

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 [10]. 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.
_______________________________________________
Infowarrior mailing list
[email protected]
https://attrition.org/mailman/listinfo/infowarrior

Reply via email to