The last time I've done any intense development work for mobile devices was 4~5 years ago. At that time, I've looked at Palm, Pocket PC, J2ME, and WAP and concluded that mobile platforms were not yet ready. Last week, I've looked at the mobile devices and OSes again. My opinion is that it's still not ready despite the amazing change in capabilities and capacities.
The main problem that prevents emergence of killer apps on mobile platforms is that applications are treated as second-class citizens, placed in a straight-jacket and pigeon-holed.
To receive or make a call, one just flip-opens the phone or press a button. To use an application. one has to navigate around a typically hierarchical tree of functionalities. Some devices have separate buttons for built-in applications but they either cannot be remapped to another application or controls for remapping is buried and lost in that confusing tree of functionalities.
In addition, functionalities are not tightly integrated and offers wide array of modal experiences depending on where you are on the tree. On top of the default phone mode, browser mode, SMS mode, e-mail mode, address book mode, and various preference modes, each application has its own mode.
Before killer apps can emerge, mobile platforms must be changed drastically, removing modes and allowing applications to add their functionalities without being boxed in.