There are a bunch of converging things I’ve noticed here, and written up on Interconnected as web apps as native Mac apps. But to summarise:
It sometimes does make sense to run web apps in their own applications. Michael McCracken created Webmail.app. He uses GMail. He also noticed that whenever he went to check his email, he ended up in that world of interesting blog posts, news stories, funny pictures, kittens, whatever. So Webmail.app is a Mac application – a web browser actually – that is configured to only load GMail, with no location bar and no bookmarks. It’s an email client! Well, it’s a web browser. It’s beginning to cross the streams.
Where this gets exciting is with tixe, a Mac framework that lets you treat form buttons, drop-downs, HTML and so on, stuff inside the web page as native Mac widgets, and vice-versa. That is, you can trigger events in your application from changes in the web page DOM, and affect the page from clicks in your application menus. Pretty neat.
This is all important because the next version of Mac OS X will ship with Ruby on Rails preinstalled. That’s a world of agile web apps, right there. Just start coding.
Now imagine somebody releases a generic version of WebMail.app. A WebKit shim that lets you deploy Rails apps straight onto your Mac desktop. I’m talking about a regular application that just happens to be a web browser that runs your Rails server and has an embedded database. As Piers Cawley said in the bar when we were talking about it: It’s Capistrano with “deploy to desktop” (Rails folks will know what he means).
Right, you’ve got your app in a window. You can now use tixe to start introducing regular Mac interface widgets, and calling Rails actions from them directly—and using Rails views to influence the Mac app menus and window furniture. Over time, your app can iterate towards throwing the browser view away entirely. It’s a native Mac app… only one based on Ruby on Rails, with all the iteration, agility and ease of development that implies.
Did I mention that Apple are letting you call OS-level functionality direct from Ruby, APIs like IM presence, todo lists, the filesystem and so on? And that they’ve rolled tixe into the standard web browser component?
All very close. We’re just a couple of relatively easy releases away from deploy to desktop. What will it mean? Who knows. But it could be the Visual Basic of the Mac. I know VB gets a lot of flack, but it opened up applications to an enormous number of programmers, and allowed the long tail of custom apps to help people in niches too small for the market to care about. Personally I think it’s fantastic.
That’s web meets desktop.