Daniel Dura on Apollo

Some notes from the session:

  • Project is in early development
  • Individual items/features subject to change
  • Accurate as of today (he's showing the latest build from last night)
  • Not mock-up, etc. Everything he's showing us is working version

What is Apollo?

Apollo is a cross-OS runtime for building RIAs. Leverage skills in Flash, Flex, HTML, Ajax to build and deploy desktop RIAs.

Benefits

Targetting the Apollo runtime as several benefits:

  • Run across multiple operating systems with any additional work by the developer
  • Apps are easier to develop. Leverage existing web technologies instead of
  • learning lower-level languages such as C, C++. (i.e., simplicity)

Build applications using the following technologies:

  • Flash/Flex/AS
  • HTML/JS/CSS/AJAX
  • Combinations of the above
  • PDF can be used in any application

Scripting support:

  • Depends on container being used
  • AS3 - Flash/Flex
  • JS - HTML/CSS/AJAX
  • Cross-environment communication and scripting will be possible
  • Complete access to Flash Player and HTML DOMs and APIs

For example, you can embed Flash into a JS container and traverse the Flash DOM from JS. You can walk the DOM in both JS and Flash, transparently.

APIs:

Rich set of frameworks and APIs:

  • Apollo-specific APIs provided by the Apollo runtime and the Apollo framework (e.g., file system API.)
  • Flash Player-specific APIs provided by the Flash Player and the Flex Framework (as well as other AS-based libraries and frameworks.)
  • HTML/Javascript-specific APIs provided by the HTML and JavaScript engines. This includes external JavaScript libraries like dojo.

Application stack

Apollo APIs

  • Offline/occassionally-connected (like Macromedia Central)
  • Network:
    • HTTP
    • XML-RPC/SOAP/REST-based web services
    • Binary and XML sockets
  • File I/O

  • Local storage/settings API
  • Custom chrome
    • Shape
    • Alpha

Desktop Integration

  • Installation: A packaging format (.AIR). Custom format. Contains all assets for application in a single file. Can be emailed, downloaded, etc. Single-click install. Download and install Apollo runtime.
  • Application shortcuts will be placed in the correct places for the OS (eg. in Start Menu on Windows.)
  • Drag and drop
  • Clipboard
  • Launch native applications: e.g., Building a photo-upload tool and launching iPhoto.
  • Cross-application communication: Make it easy to expose the APIs of your applications so that other applications can take advantage of them. Desktop mashups.
  • Notifications

Demos

Danny's got a couple of AIR files (the installer) and the Apollo runtime (Apollo.msi on Windows) on his desktop.

Pixel Perfect by Christian Cantrell. The installer looks like it was created in Flex. Creates shortcut on desktop. Installation was simple. It's a ruler application. Very cool/simple app. (I use Grab on OS X for measuring areas of the desktop but this looks cooler!)

In Task Manager it's taking up 0 CPU 14,256K memory at the moment. (It has its own process in the Task Manager.) If one Apollo application crashes, it won't affect any other Apollo applications.

Users really don't need to know that they're running Apollo apps. It's just like any other app.

Lookup by Christian Cantrell. App that loads word definitions from a web service. Cool little application. Apollo will allow people to build small desktop applications easily.

File Browser. It's a OS X-style file browser built in Apollo. Neat.

He's now showing an application that loads in your iTunes music and plays them back. Flickr photos based on song that's playing. Cool 3D spectrum analyzer.

Video Demo: Full-screen video of an IMAX Deep Sea video. It's very high quality.

Building a sample Apollo application

Danny is now building an Apollo application in Flex. Basically, it's like any other Flex 2 application with the following differences:

  • Add a namespace for apollo (http://www.adobe.com/2006/apollo)
  • Use the component.
  • Create an Application.mxml file. This is the manifest file that describes the application

Inside the ApplicationWindow, he puts some regular Flex components (Button, Label).

Application.xml manifest file:

[xml]

Hello World Sample

Daniel Dura
apollo_demo.swf


[/xml]

You can use command line compilers to compile Apollo and create Apollo installers. (You don't have to use Flex Builder 2.)

Timeline

  • Public beta by the end of 2006
  • Version 1 release: Sometime in 2007

Links:

There's a question:

Are there APIs for accessing databases?

No object-relational mapping. They're exploring data support. You can write AMF objects to the file system. AMF is the format of Flash Remoting.

Apollo looks really great. Can't wait to try it out with Flex 2. It's going to open up desktop application development to a large number of web developers.

Creative Commons LicenseThe Daniel Dura on Apollo article by Aral Balkan, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-Noncommercial 2.0 UK: England License.

22 Responses to “Daniel Dura on Apollo”


  1. 1 Dominick

    Brilliant!!! This is the best info yet. Aral thanks for passing this on… Sounds like a great conference!

  2. 2 Ted Patrick

    Binary socket support cough cough… SVN, FTP, VNC, IMAP, POP3, Telnet, XMPP, DataBase connections are all Socket based cough cough…

    Good article Aral!

    Cheers,

    Ted :)

  3. 3 Ozgur

    Thank you for information about Apollo. I am looking forward to learning more about it because there are many desktop applications out there built, using the development platforms provided by Borland, Microsoft, or Sun’s compilers. And Apollo should be great for Actionscript developers.

  4. 4 Tmeister

    look amazing, i can’t wait to try it too.

    cheers!!

  5. 5 Matt Voerman

    Great post Aral - i’ve got half a chubby now ;-)

  6. 6 Neil

    Only half a chubby Matt? ;-) Thanks Aral. Great info

  7. 7 tousandoaks

    when will flash 9 professional be available?

  8. 8 Martin

    Interesting..keep the info coming…im still waiting to see if theres anything that would make me consider it over RCP for general desktop apps..but you never know whats around the corner… :)
    p.s. perhaps you can help me with my new campaign. Every time i see the word ‘leverage’ I cringe. What have people got against the word ‘use’ ? Is it not exciting enough? Does the physicality of the word ‘lever’ make it sound like we’re working *really hard* and not just pressing buttons?

    Your support would be appreciated.
    ;)

  9. 9 jahepi

    This is going to be an awesome developing tool, building desktop applications with languages mainly focused on web developing is going to ROCK!, at last web developers are going to be able to build instances of desktop applications :D

  10. 10 J Marziani

    Anyone know what happened to all the great combinations of app technologies in the Application Stack image you’ve got in this post?

    Seems like I can use Flex/Flash or HTML/AJAX. Tried embedding Flash in an HTML/AJAX app with object/embed and swfobject methods and neither work.

    Would love the freedom they detailed so well at MAX. Maybe this wasn’t ready for public release.

  11. 11 J Marziani

    After some messing around, I found you can load Flash .swf into an HTML/AJAX AIR app. Little new to AS3, so this may seem like a no-brainer to most. Since it isn’t very well explained in the AIR live docs, hopefully this will help others out.

    var url = “still_seq.swf”;
    var urlReq= new air.URLRequest(url);
    var ldr = new air.Loader();
    ldr.load(urlReq);
    var mc = $(’content’);
    nativeWindow.stage.addChildAt(ldr, mc);

    $(’content’) is the prototype.js shortcut for getElementById in javascript, which targets what div I want to replace with the .swf content.

  1. 1 wendelmaques » Primeiro código XML de definição de aplicação do Adobe Apollo
  2. 2 Ryan Stewart - Rich Internet Application Mountaineer » The Best Apollo Information Out There
  3. 3 .:: klr20mg ::. Una dosis diaria de …. » Blog Archive » Apollo, Estamos cerca del Beta publico
  4. 4 » Universal Desktop Daily - Wednesday, September 13, 2006 - Flashforward | The Universal Desktop | ZDNet.com
  5. 5 GAMEDevelopment | Hannes Moser » Blog Archive » Apollo
  6. 6 Vixiom Axioms » Apollo Features
  7. 7 FLAshot
  8. 8 10 Things That Will Make Or Break Your Website: #9 - Apollo at Aral Balkan
  9. 9 Flashforward Blog » Blog Archive » Flashforward Austin: Recaps and Reviews [Updated]
  10. 10 Apollo llevara la web hasta la luna « JuniHH Blog

Leave a Reply






Bad Behavior has blocked 0 access attempts in the last 7 days.