Except for a few things:
– Lack of access to the hardware.
– Inability to run applications offline.
– Limited integration with the rest of the user interface.
There’s not much Apple can do to give developers access to the hardware short of providing a “real” environment to develop in, i.e. Cocoa. It would be great to be able to write applications for hardware like GPS receivers, or to write network utilities that require sockets, such as SSH clients.
The ability to run applications offline isn’t as important if we always have access to the EDGE network. It would be nice for on airplanes, etc though.
But to satisfy us until Apple gives us an Objective-C API (you ARE working on that…right Apple?), there’s a few things they could to do fix the third issue.
– Shortcut icons on the home screen. Give us one click access to our apps.
– Native looking UI widgets. At least give developers graphics for the standard buttons, menus, text boxes, lists, etc.
– Full screen. No reason to have a URL bar and browser controls for our own applications.
Given these things, iPhone web apps would be acceptable, at least for now.