Where the desktop meets the web, we find the emerging category of rich Internet applications. Online, but with the smoother look and feel of desktop software, RIAs eliminate the slow loading of individual web pages by using tools such as JavaScript, Extensible Markup Language (XML), Adobe Inc.’s Adobe Integrated Runtime (AIM) and Microsoft Corp.’s Silverlight to create dynamic online applications that can even, in some cases, continue to work when offline.
RIA development is going on across Canada, in companies large and small. We sought out a handful of examples that show the range of ways in which these tools can be used.
Developer: Teknision Inc., Ottawa
Project: Finetune Desktop is the result of a collaboration between Teknision and NextRadio Solutions, a Newton, Mass., company set up by alumni of the original Napster to offer an internet radio service called Finetune. Teknision was first brought in to design the original Web music player interface for Finetune, then went on to other projects such as building interfaces for the PlayStation 3 and Wii game consoles. Finetune Desktop is a Web-based desktop music player that runs on Windows or Mac OS.
How it works: Teknision used AIR, Adobe’s development tool that allows RIAs to be extended to the desktop, to build Finetune Desktop. To use it, you have to download the Adobe AIR runtime to your PC or Macintosh. Finetune Desktop then lets you play music from Finetune as well as any music stored on your desktop computer, and search for music whether it is online or stored locally.
Best practices: Tony MacDonnell, Teknision’s chief technology officer, says one of the most important things to remember in building rich Internet applications is to make sure they behave properly. “When you’re inside someone’s sanctuary you have to play by the rules of that sanctuary,” he says.
MacDonnell doesn’t approve of RIAs that take over the PC’s entire screen without asking, or interfere with other applications. Finetune Desktop doesn’t act that way. “It’s job there is just to focus on doing what it does well — it’s playing music and then getting out of your way,” he says.
Developer: Nitobi Software Inc., Vancouver
Project: Nitobi Complete UI is a set of nine user interface components for rich Internet applications. They’re designed to help RIA developers save time by plugging in whichever Nitobi modules they need rather than recreating the functions themselves. They include, for example, a spreadsheet module called Grid, a Calendar module, and ComboBox, for completing data-entry fields by searching a database as the user types.
How it works: All the Nitobi Complete UI components are written in HTML and JavaScript. Nitobi has offered the components since 2004, but more recently has used Adobe AIR to give them the ability to work offline as well as online. That means users can transfer data between their desktops and the Web more seamlessly, says Andre Charland, Nitobi’s chief executive, and they can take data such as contact lists with them even when not connected to the Internet.
Best practices: If you take the time to understand what AIR can do, says Charland, “it’s amazing to me how close we can get to traditional desktop software.” The key is understanding and fully exploiting its capabilities.
For instance, he says, AIR can provide native access to Flash on the desktop, and it’s possible to call Adobe’s ActionScript directly from JavaScript.
Because AIR is still in beta, he notes, it remains a “moving target” for developers. Nitobi tries to deal with that by being very open with its customers about ways in which things could change.
Developer: TSOT Inc., Toronto
Project: FraternityLive and SororityLive are online, software-as-a-service systems to aid in the running of university fraternities and sororities. They include a financial component for budgeting and accounting, a shared calendar, communications tools, an organizational chart and Facebook-like social networking. TSOT launched FraternityLive and SororityLive, its first products, in January 2007. They currently have about 13,500 registered users, says Corina Newby, the company’s public relations officer.
How it works: The two applications are written in Ruby on Rails, a combination of the Ruby object-oriented programming language developed by Japanese programmer Yukihiro Matsumoto, in the mid-1990s and Rails, a set of structures that Danish development David Heinemeier Hansson developed to make Ruby more effective for Web development. Though they look and feel like desktop applications, says Joey deVilla, senior developer at TSOT, SororityLive and FraternityLive run in any reasonably recent Web browser on any Internet-connected computer.
Best practices: One of the best examples of RIA functionality in these applications, deVilla says, is the organization chart function. Called the Family Tree, it sows a graphical representation of a fraternity or sorority’s organizational structure. Users can modify the structure simply by dragging and dropping items.
TSOT has also built in a function for sending SMS text messages, so users can send messages directly from the system to mobile phones, or have updates to information in FraternityLive or SororityLive sent to them as text messages. DeVilla likes Ruby on Rails not so much because of its support for RIAs, but because it allows TSOT to extract common elements in its Web development projects and put them in a framework for reuse.
“It takes a lot of the drudgery out of development,” he says, and can reduce the number of hours a development project takes by a third to half.
Developer: Jonathan Snook, Ottawa
Project: Snitter is a client for Twitter, the online social networking service that allows people to share short snippets of information about what they are doing at any time. Frustrated with some limitations of the Twitter Web site, Snook decided to develop his own client.
Snitter adds to Twitter the ability to store data offline, Snook says, and some other extra such as the ability to highlight messages from certain people and a way of marking where you are when leaving the computer to make it easier to catch up when you return.
How It Works: Snook wrote Snitter using AIR. Snitter interfaces with Twitter and extends its functionality — it’s not the only Twitter client around; there are several others such as Tweeter, Spaz and Witty.
Best Practices: Snook says the local storage capability in Snitter is “something no other application has done, as far as Twitter applications. I’ve really had a chance to push the boundaries.”
Making this work was tricky because of security constraints with JavaScript applications that access the desktop using AIR. AIR creates a security sandbox to limit what external code can do, which makes sense because such code could pose a danger, but this limits wh