by Ryan Stewart
(Richard's Note: I'm introducing guest bloggers to Read/WriteWeb, to write about topics that I think will be of interest to R/WW readers - but which I'm not an expert in myself. Ryan Stewart is the first of my guest bloggers, writing on the topic of Flash and 'rich internet apps'. I'll be editing the guest posts to fit in with the R/WW style, but the content and 'voice' behind each post will of course be that of its author.)
In 1996, FutureSplash Animator became Macromedia Flash 1.0 and people all over the world were amazed by its animation capabilities. Everyone started downloading the Flash Player and nearly every site experimented with Flash animation. Unfortunately, the ubiquity of Flash, which is one of the major reasons it is so powerful as a platform, led to a lot of "Skip Intro" buttons and later a way for advertisers to take up the entire screen with annoying Flash ads. For a long time, Flash has had to cope with a bad reputation for degrading the web. However with creativity running wild and a renewed interest in Rich Internet Applications, Flash has grown up and some powerful applications are now being built leveraging the full potential of Flash.
One of the applications that is really taking advantage of this power is Goowy, which started out as an e-mail client but has since expanded into a full fledged virtual desktop suite. Goowy combines the rich interactivity of Flash along with some of the best parts of AJAX to create a great user experience.
Mail and Calendar
The most important part of Goowy is the mail application. For the most part, it's a pretty standard mail client with a couple of cool twists. One is the ability to drag and drop e-mail messages into folders. It makes organization very intuitive and "desktopesque" for the average user. The graphical elements of the mail application (and the entire app for that matter) will make any MacOS user very happy and provide a nice level of interactivity valuable for anyone new to web apps. The other great thing about using Goowy for your e-mail is that you can send e-mail from the address you already have. Unlike Gmail which allows you to set the Reply-To and then shows up as "firstname.lastname@example.org on Behalf of email@example.com", Goowy will simply send the message with firstname.lastname@example.org. Importing contacts is a one click operation and you can import contacts from a .csv file or Gmail, Hotmail, MSN and Yahoo.
Viewing HTML email is one place where the Flash/AJAX interaction provides a big boost. The spell checker, the draft view and the rich text editing are done quickly and nicely with AJAX. The mail tree, auto complete features and all the navigation is pure Flash. The interaction is slick and the result is awesome.
One of the coolest things about Goowy is the calendar application, which not a lot of people have talked about and is 100% Flash. When I was looking at web based e-mail clients, what I wanted was an Outlook replacement, and Goowy was the best one I found - due in large part to the calendar. The current calendar is in beta and hasn't been updated since it was released a few months ago. Currently, it allows you to schedule events in 5 minute intervals (hopefully they'll remove this restriction in the future). It provides an Outlook-like view, with the monthly calendars over on the left and your daily view in the main right pane. The day view is a custom flash control which allows you to view events in a single day, those spanning multiple days and events that overlap times.
What's also cool is that each individual event is a custom MovieClip that provides right-click menu options, such as canceling the event or editing it in the window. It's a very simple, easy to use interface that people can jump right in and feel comfortable with. The other reason I love Goowy's calendar is that it fully supports the iCalendar protocol. Goowy users can send and receive events from other people who are using email clients that support iCal events. This means that Goowy can receive and send calendar events to Microsoft Outlook and Exchange users. They're also planning to release recurring events, weekly and monthly views - as well as the possibility of calendar sharing in the near future.
The thing that really distinguishes Goowy from the slew of other AJAX desktop clients are their minis. [Editor's note: minis are little apps that run on your desktop - also known as widgets by Yahoo, modules by Google and gadgets by Microsoft.] At first, I thought the minis were a useless throw in, but after fully embracing Goowy for my e-mail and calendar needs, I've come to use the minis for sorting a lot of my information. You can track your favorite RSS feeds using the newsreader or keep track of YouTube videos and listen to podcasts right from Goowy. Flash allows it to stream multimedia seamlessly within the application.
Goowy's minis also provide a range of functionality by tapping into external APIs. You can search for Flickr photos, tag things on del.icio.us, follow sports scores, see the weather, watch your stock portfolio, or see the top songs on iTunes. The minis also include functional applications like a personalized To-Do list, a summary of your e-mails and any calendar events you have today.
Goowy has a built in game library that allows you to play a variety of Flash games from Tetris to Presidential Knockout. If you're getting tired of answering e-mail, you can switch over and game a little bit. Combine this with the fact that Goowy lets you customize your look and feel (right down to the background image) and you've got something that can hook common users and give them some ownership over their web client.
As a Flash proponent, I love showing people Goowy because it uses Flash to perfect the user experience, which is what Flash is really all about. The Flash/AJAX interaction is the perfect example of the two technologies working together to create a better application. Using the Flash Platform allows a smaller company like Goowy to compete with applications like Gmail and 30boxes because a well-written Flash application can deliver a better user experience and it makes the application available to anyone regardless of OS or browser.
IM - a case study of Flash/Ajax integration
The IM feature showcases another example of Flash/AJAX, through the use of AJAX to perform the Jabber communication via an AJAX XMPP API. This feature required using cross-domain Flash/AJAX communication, because the backend is hosted on different servers than those serving the virtual desktop. Flash is responsible for all of the window management - and all of the sending and receiving is done through the XMPP AJAX API.
Goowy is a great application precisely because it makes the best of Flash and the best of AJAX. Flash allows the Goowy team to build an application that performs the same way across platforms. It also gives them the ability to create rich drag-and-drop functionality as well as animation and visual cues that perfect the user experience. AJAX provides the text editing functionality as well as some of the backend server communication. The new features will only make Goowy more prominent in the virtual desktop space, and Flash is what separates them from the crowd.
Despite all of these great features, Goowy isn't sitting back just waiting for users to sign up. They're aggressively moving into competitors territory in order to create a one stop shop for anything you need. They're in the process of opening up a premium account for users who need more space and some additional features. They've also partnered with Box.net to provide online storage in the near future as well as jumping into the instant messenger space.
Ryan Stewart's blog is Digital Backcountry.