List of capabilities web apps need but can't currently have
I despise using web apps. The only ones I’ve found that are even at least useful are made by Google, and Google’s web apps are as aesthetically pleasing and user friendly as a Windows 98 shareware app. But even if they were made with the same care and attention to detail as Mac apps by Cultured Code or Omni Group, they’d still have a long way to go before being as useful and productive as a native desktop app, because they’d be missing some essential features the browser can’t give them. This is my list of these features, as I think of them.
- Undo/redo for non-text things (that is, JS hooks for undo)
- Pasteboard for anything but text. Important: application-specific objects like e g “calendar event” in an iCal like app, not just a generic group of common media (like pictures, audio, video, styled text, …), although that would be really nice as a stop-gap measure
- Host application menu integration, with a standardized way to handle keyboard shortcuts
- A windowing concept of “application” with several windows and OS hooks (i e dock icon or task bar group)
- Context menus
- Some document store model that is shareable between web apps. Example: if I have an image, I want to be able to open it in both a nice editor, and a nice viewer, which might be two completely separate apps by completely separate vendors.
There is one things a web app can’t *ever* have without doing tons and tons of work, and that is behaving like a native app. Google has fake context menus in their apps for example, but they don’t contain the options normally available when context-clicking text in Mac OS; for example, right clicking a word in Wave won’t let me look it up in the dictionary, speak it, nor do spelling corrections on it. Moving down a list using arrow keys is a very standard feature in list views in native apps; in Gmail this is an advanced feature you have to turn on, and you have to use letter keys to do the navigation (j, k for down, up).
I originally made this list in Wave over a year ago; moving it here since Wave is dying. The list is made a little bit antique by the introduction of the iPad; three of the items might now fall under the category of “things a native app might not need”.
The big wins you get with web apps are all in deployment. Deploy-once, instant upgrades, cross-platform. You can argue that sacrificing usability for easier deployment is worth it, but I’d rather do it the other way around.