When I saw Steve Jobs demonstrating the iPhone's stylish music playlists, picture album and phone interface, one thought crept into my mind - could this be done in a browser?
But it also highlights the main weakness of the iPhone - it's a closed platform. Device synchronization, and developer innovation, will be weak. On the iPod this didn't matter, but the iPhone is a generic 'personal computer', and the history of personal computers is a lesson in the importance of developer ecosystems.
As it did for Ajax, Microsoft circa 2000 provides the clue - long ignored - to a better approach. Remember the 'Active Desktop'? In Windows 2000, Microsoft allowed you to replace your desktop with a web page stored locally.
Why wouldn't you use a browser to display everything in the iPhone? Selecting a music track, making a phone call, and viewing a video would be done via locally served HTML in a browser. Every screen would have the standard back, forward and home buttons.
In an instant, this would create an enormous developer ecosystem for the iPhone - every web developer on the planet! You could open up the contacts, calendar, music, photo and video playlists as local web services, for example via RSS / Atom feeds and the Atom Publishing Protocol.
It would also open up the iPhone to other devices - you could log on to your iPhone from your PC, just by going to your iPhone's URL. And you would see exactly the same screens and commands, because it's just HTML.
For example, my phone address book should be automatically synchronized with my Gmail contacts. This should be a simple matter of matching two RSS feeds, so whenever I update one, the other is automatically synchronized.
I doubt Apple will take this step - although in the light of the iPhone, it's intruiging that SVG is being adopted in Safari, Apple's browser - because it has a tradition of selling closed systems.
But if someone did produce such a device, I wouldn't bet against them. Smartphones must one day turn into full internet devices.