Apps in a Browser

I was working on a spec in a wiki based editor yesterday and I noticed how uncomfortable I was working on this document in a browser.

This is a long, fairly important document I was working on, and I was working on it in a tool designed for easy skipping from page to page, deigned browsing content but not really designed for creating it. If I accidentally hit the wrong hotkey, or click in the wrong place, the browser will whisk me off to another page, leaving the content I’m editing behind.

Some browsers will warn you before you do this (detecting that you’ve edited something on the page and not yet done a server round-trip to commit the change) but others don’t, and some web apps will save drafts or interim copies of what you’re working on, but others won’t. It’s a dangerous way to work.

Now, I’m not knocking web apps. I like apps that run in a browser; I just don’t like running them in a browser.

One of the interesting things that iOS has done is convince web developers to create an app versions of their site to run on the phone. Many times the “app” is just the HTML version of the site, bundled up with all the style sheets and JavaScript code and whatnot, combined with a tool like PhoneGap into an iPhone App that you get through the app store. Or it could be a Flash site turned into an AIR application.

There’s some space between a native app for the platform you’re using and a web app, and tools that let you turn your web app into a platform app with its own chrome and more importantly behaviours around what happens when a user clicks on a link or quits the app (an opportunity to save, for example) are a huge improvement over running the same apps in a browser.

One point I think is interesting here is that often in these cases your app will be running on the phone and making API requests to the server, not fetching the whole site from the server. This means your “web app” is running under the radar of sites that give out mobile browser usage stats. When I’m using the Facebook app on my iPhone, does that count as a user running a mobile browser to access Facebook? Probably not. But what’s the difference?

Ideally I’d love to see a common “app runtime” that knew how to run a web app in some chrome other than a browser. Chrome is trying to provide this, I believe, but what you get still feels too much like a web app with the inherent apparent lack of concern for the content you’re editing on a page.

AIR provides a great desktop runtime for Flash apps; PhoneGap is another option. But either way, if you’re building a website today, expect to be building an app. That’s what users want on their mobile devices. Not mobile-optimized websites. Apps.