Adobe Apollo: beyond the hype

Adobe Apollo logo Adobe released early bits of its next big product bet on Monday morning, a web and desktop hybrid code-named Apollo. Apollo is the first child born out of the Adobe-Macromedia merger of April 2005, bringing together the desktop strength of Adobe PDF combined Macromedia’s web-savvy Flash and Apple’s web browser engine. Apollo will continue to receive heavy marketing from Adobe building towards a 1.0 launch in the fall. In this post I’ll break down the components of Adobe’s Apollo framework, identify opportunities for application development, and compare the promised features against other software offerings.

What is Apollo?

Apollo combines Adobe Reader, Flash Player, and Apple’s Safari browser engine into a single desktop application for the Windows and Mac platforms. Apollo applications have access to the local file system and are placed on your taskbar or dock just like you’d expect from an application.

Apollo will be available as an autoupdate for Flash 9 users and will have similar distribution to existing free products from Adobe such as Reader and Flash.

Adobe Internet TV: Philo

Adobe Philo displaying Rocketboom

Adobe’s first big Apollo app is an Internet video application codenamed Philo. The pervasiveness of Flash Player created multi-billion dollar Internet video startups powered by the Flash video format. The Philo team hopes to expand the display size and quality of distributed videos and get publishers encoding using the latest Flash video encoders. Publishers can skin the entire video player, delivering MTV content in what looks like a MTV video player, or a Rocketboom-themed player shown above..

I have not seen or used Philo, but it should directly compete with Democracy player and possibly Joost. The popularity of online video and cobranded players should help accelerate Apollo’s adoption.

Apollo components

Expect Apollo to use the latest version of all available components at ship time. Apollo requires ActionScript 3, meaning content must be written for Flash 9 and above in order to interact with the Apollo program. HTML, JavaScript, and CSS are handled by WebKit, the open source browser engine behind Apple Safari, Apple Dashboard widgets and the Nokia S60 browser. PDFs will support features such as digital signing and approval, and it’s probably best to develop on the recently released PDF 1.7 format.

Step out of the browser

Modern web applications are pushing the web browser to its limits and already taking advantage of desktop functionality such as JavaScript execution and browser plugins such as Flash or Quicktime. Publishers can take that same web application running inside a browser tab, wrap it in Apollo descriptors, and create a cross-platform desktop application.

Most Apollo applications will likely be repurposed web pages running inside a specialized environment. Mac users already have some of this functionality today as fans of a particular service have created WebKit-based applications combining desktop familiarity with a constantly connected web application.

Imagine your heavy, always-open web apps leaving your browser tab and creating an application-like presence in your taskbar. With a few extra hooks into the Apollo runtime the web application could access files on your hard drive such as your address book, music library, or calendar.

Plugins such as Flash are second-class citizens within the web browser, receiving limited resources even when displayed in the active window. Safari and WebKit lead Dave Hyatt recently explained some of the plugin issues in detail, including complicated state of balancing system resources and user expectations. A stand-alone application removes the limits of these resource constraints, letting an Apollo application write more data to disk, consume more CPU cycles, and interact with other application data on your computer (for better or worse).

Existing WebKit apps

Pyro Campfire application Pyro is a desktop application for the Mac that takes 37signals’ Campfire chat application out of the browser and into the desktop environment. Pyro accesses local UI elements such as new message displays, and supports system notifications using Growl. Campfire might stay open during your entire workday, and it’s useful to have a separate application window and desktop features associated with that workflow.

Pandoraman logo PandoraMan takes Pandora‘s Flash-based streaming music player out of a web browser window and into an application in your dock. You might listen to music throughout the day or enjoy quitting your web browser often, and a desktop application such as PandoraMan helps the music keep playing.

Mac OS X (Objective C/Cocoa) applications taking advantage of the WebCore framework compete with Apollo on the Mac platform. Mac applications built on WebCore can bind to other libraries on the Mac system, taking advantage of notifications, system libraries, and native UI elements.

Windows Presentation Foundation

Nostalgia

Windows Presentation Foundation (WPF) is part of Microsoft’s .Net Framework version 3.0. The presentation layer runs on a user’s graphics card, taking advantage of the specialized hardware to create a the glassy look of Windows Vista or offload other system tasks. WPF UI effects will likely become expected behavior from future applications.

Windows developers can take advantage of Internet Explorer libraries on the machine to render HTML while maintaining the same zones and access controls defined by other parts of the system. A C# developer should be able to write a small application to wrap a website, including plugins such as Flash.

Microsoft’s planned release of WPF/E will extend the reach of Microsoft runtimes across operating systems and web browsers. WPF/E is the most direct competitor to Apollo outside the native application space with support for animation, graphics, and common audio and video codecs.

Summary

Apollo extends the reach of the Flash development community onto the desktop, creating new opportunities for application development using ActionScript 3. The ActionScript development community can now deploy applications onto cell phones using Flash Lite, inside a web browser using Flash Player, and onto the desktop using Apollo.

Apollo’s PDF electronic document support will play a role within the enterprise, opening up smarter form handling and reliability. An enterprise already dependent on PDF workflow and accountability may tap into Apollo for a consistent work flow across the company.

I’ve heard the write-once run-anywhere many times over the past 10 years, but few applications have actually delivered. Java and Java Web Start are the closest historical comparisons, but the demand for multimedia content creates a new breed of competitors in the form of Flash, Apollo, and WPF/E.

I’m still a fan of native application development to create the most feature-rich and well-integrated application possible in the smallest resource footprint. Java and ActionScript programmers can extend the reach of their code base without learning too many new things, and I definitely understand that attraction, but serious applications should be well integrated.

Adobe has allocated $100 million towards investing in companies that enhance its engagement platform and is especially interested in funding Apollo companies. As of last month Adobe had invested in 6 companies, including word processing company Virtual Ubiquity. Companies might develop for Apollo to take advantage a strategic investment from Adobe at reasonable terms.

Apollo in its current form seems overhyped, but the cross platform development space will definitely look different in a year as we see new toolkits from big companies executed inside and outside of the browser. It’s not too difficult for a web application to pop out of the web browser and into a standalone web technology, and the marketing and investment dollars being spent by large companies such as Adobe and Microsoft should help boost the visibility of cutting edge web apps.

7 comments

Commentary on "Adobe Apollo: beyond the hype":

  1. Peter on wrote:

    Apollo combines Adobe Reader, Flash Player, and Apple’s Safari browser engine into a single desktop application for the Windows and Mac platforms.

    Apollo is actually a platform dependent runtime that takes care of installing and running platform independent code packaged in a .air file (essentially a glorified zip file) using standard web technologies (AJAX, PDF, Flash/Flex)

    In the current alpha the PDF engine is not included in the runtime, not sure what the plan is for the final release. At the moment it seems it only leverages PDF functionality and you need the reader installed separately.

    Apollo will be available as an autoupdate for Flash 9 users and will have similar distribution to existing free products from Adobe such as Reader and Flash.

    Just to be clear Apollo is not an update to the Flash Player 9 browser plug-in. I’ve not heard about an auto-download mechanism from the Flash Player though the runtime will reportedly seamlessly take care of updates.

    Great summary Niall — what makes Apollo exciting to me is that it enables existing web technology to cross over into the desktop. You’re making the web portable for occasionally connected devices without the need for additional custom development.

    • Niall Kennedy on wrote:

      Hi Peter,

      I attended Apollo Camp at Adobe’s San Francisco office last Friday, which included a presentation by Kevin Lynch, Adobe’s Senior Vice President and Chief Software Architect in the Platform Business Unit. Kevin said Flash 9 already shipped with Apollo update code, and is just waiting for the product to ship so it can update and include Apollo as an optional service for Flash Player users.

      PDF functionality will definitely be in the final release, it just did not make it into milestone 3, the currently distributed Adobe Apollo “alpha.” Kevin demonstrated an Apollo application with PDF form-filling and digital signing.

  2. Scott Barnes on wrote:

    Great read :)

    WPF doesn’t have to use the GPU either but its available :)

    Adobe’s investment comes with strings attached, in that you need to have a first around of investment already (i.e. they won’t be seed starters). You also need to find another investor as Adobe won’t do single 2nd round of investing by themselves.

    Mike Downey indicated this at WebDU this week. He also mentioned that Adobe will only invest up to maximum 20% or there abouts (unless an exceptional circumstance is there maybe?)

    Scott Barnes
    Developer Evangelist
    Microsoft

  3. Alderete on wrote:

    Aside from the obvious difference in the emphasis on media (video, audio, PDF), how would you compare Apollo to the also recently announced Joyent Slingshot?

    (Joyent Slingshot is an environment / virtual machine that can run Rails-based web applications in a separate application, while on or offline.)

    I’m particularly interested in Apollo’s ability to function offline, and whether it can re-sync data when it re-connects. This seems to be the focus for Slingshot, which I would imagine would make it more suitable for applications which make use of more structured data…

    • Niall Kennedy on wrote:

      Alderete,

      Joyent’s Slingshot product is announced but not shipping and there is no documentation currently available to examine. The contracted application developer has posted some details to his blog, mentioning Slingshot extends a web-browser interface, and Rails objects can be flagged for local file system storage where applicable. It may be possible to apply this same markup to WHATWG DOM storage with online/offline activity awareness supported by Firefox 3 and other future browsers.

  4. Vijay on wrote:

    Niall,

    I see the dis-advantage of making the browser heavy by installing too many plug-ins. But is there any disadvantage of using the browser for application UI?

    When you say “well integrated” do you mean integration with OS features like system tray, add/remove program, desktop icons, system service…or do you mean using OS services and resources (available to windows or java programs)?

    Vijay
    Dekoh

    • Niall Kennedy on wrote:

      Vijay,

      There are various levels of complexity to consider when moving functionality of a web application to the desktop. The most simple case I mentioned is to simply load your site URL inside an application containing only a WebKit container. Just as you can write UI components to a specific browser — XUL in Firefox, XAML or XBAP in IE7 — you can also take advantage of interface bindings on the local OS. It’s faster processing and render, looks better, but takes custom code to get there and I don’t think it will be too prevalent.

      By well-integrated I mean the new application feels like a part of its surrounding environment, and not a bolted-on component. Just as I would much rather integrate a webcam directly into the bezel than mount it on top of a user’s machine, I want to blend in and feel like a natural part of their experience. Wearing the local skin, integrating with expected keyboard shortcuts (minimize, preferences, quit, etc), drag and drop onto the taskbar or dock, or possible integration with local platforms such as address book or web feeds. It depends on the application, but I think it’s best to look like you belong and not reinvent functionality already present on the machine.