iPhone/WWDC custom application thoughts
The WWDC revelation that custom applications will be standard web applications is possibly, in the long term, a masterstroke. It is not without its problems though, but could have far reaching effects on the mobile software industry.
The demo at WWDC revealed/implied:
- Your applications run within Safari, in fact it is launched as a bookmark (not from an icon in the main UI) as can be seen at 01:17:49 into the keynote
- You can access on-phone services like make a call, address book, send email, maps etc. This must be either via custom JS objects (as per Dashboard widgets) or an httpd on localhost supporting ajax requests.
- You can make the applications look the same as the native applications.
- You can build applications today and to paraphrase "be ready to launch after final testing on June 29"
However these revelations beg more questions than they answer.
First off, no J2ME or Java. This could be a major earthquake in the mobile content industry, especially for games. If iPhone sees huge take up eventually and has market share in mobile similar to iPod does for mp3 players. Web apps on a standardised mobile platform (i.e. few target device types) would have seriously lower development costs than the perpetual hell that is J2ME development and porting.
However, it is not clear how this will generate revenue for network operators or content providers. Its also not clear whether or not you can even run applications (such as games) offline. The two are linked, as if you are to run a local cached version and some form of online billing is involved, things will get complicated. You could still resort to network operator portal browsing, pay by clicking a link, and it sends you a unique code by SMS that you must enter to unlock the web application I suppose.
It gets more problematic though. What about local data storage? J2ME has a concrete (but very ugly) model for this. If there is no such API or no way to access the data on the phone directly (without invoking native app UIs) then offline apps are going to be a no-no. Integration with data sync would be crucial for many apps. The J2ME RMS API while ugly and backward-looking, was copied in part from Palm OS which we all know licked the data sync problem long before anyone else. Data sync of custom application data is fundamental, even in a wireless world.
Take OmniFocus for example. I’m lucky enough to be beta testing this GTD application and having it running on your iPhone would be perfect – sync data from main mac to it etc. However this is not likely to be possible with the iPhone, at least initially. The implication from the WWDC demo is that you would require an online OmniFocus webservice that had access to all your data. Bad news. Maybe the .Mac "back to my mac" stuff will come into play here in future such that iphone webapps could access this data using an API, and have the iphone sync, but all this still requires network access.
Everyone likes wireless networking, but many people resent paying for mobile data services. A lot of people want to be able to use apps offline or where there is no reception.
Another concern I have is the purported ability to make web apps have the same look and feel as native apps. From what I could tell, they did this just by meticulously copying the style of the iPhone ui within their webapp. There was no statement that makes me believe there is an API for accessing common styles/graphics. After all they said there is "no SDK". This is a tragic error. It means apps will look out of place on future revisions of iPhone UI, and there is a lot of work to make the UI look like it fits in – you’re basically having to make websites that look just like iPhone apps.
While we’re on the lack of SDK – how does this gel with the "develop today and launch June 29"? Maybe for purely web-based services yes, but without an iPhone to copy the look and feel of the apps, or an SDK/documentation to explain how to invoke phone features like maps, you’re going to have a very busy Jun 28 while you try to reverse engineer iPhone apps.
You get the feeling that this is a last-minute solution hacked together. After all what did they really demo? A webservice that is entirely off-device, that just looks a bit like a local app and launches as a bookmark. i.e. they demo’d nothing at all relating to custom apps, surely? Isn’t this a classic case of smoke and mirrors?
On iPhone a custom application really needs to:
- Have sandboxed access to user data on the device
- Access to phone features via published APIs
- Integrate trivially with standard phone UI
- Sync data with main computer
- Be a first-class application with an icon that you can launch – it needs visibility
I don’t think I saw any of those. Oh dear.
Addendum:
I forgot to mention the problems making any kind of smooth game using JS and HTML. This therefore puts iPhone into a mobile game cul-de-sac like some of the early J2ME handsets that performed so badly they were a write-off.
Of course the iPhone "is an iPod" we are told so they are possibly planning on having native "iPod games" run on the device, although how they achieve this will be interesting. This implies syncing games from iTunes and therefore implies Apple getting all the money, and the operators relegated to making money from bandwidth charges only. This could kill off the existing J2ME games industry.
No related posts.
Job’s stance against Java has nothing to do its popularity or size and everything to do with keeping the iPhone proprietary. If Apple were to support Java, they would have to support open standards which would mean that applications would be portable to other mobile devices. This is the same proprietary, closed system strategy that Microsoft has been using to maintain their strangle hold on various markets. Of course, the Mac groupies will buy anything Apple creates. I am hoping the developer community just says no to the iPhone.
I have to disagree. Apple are very good with standards compliance. How can you call having a strongly standards compliant browser that supports ajax etc on the phone proprietary?