12 Sep 2006

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.

Add Your Comment

Spam Protection by WP-SpamFree

Daniel Dura on Apollo

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

    Dominick
  2. 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 :)

    Ted Patrick
  3. 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.

    Ozgur
  4. [...] Veja o post completo aqui[1] no site do Daniel Dura. [...]

    wendelmaques » Primeiro código XML de definição de aplicação do Adobe Apollo
  5. look amazing, i can’t wait to try it too.

    cheers!!

    Tmeister
  6. [...] But to top it all off, Aral Balkan has what is without a doubt the best information on Apollo to date. There is a ton of great information there (mixed in with some Marketing) including some of the APIs that Apollo will have, some specifics on the Apollo’s integration with the deskop and some information about building Apollo applications in Flex. Exciting stuff.  [...]

    Ryan Stewart - Rich Internet Application Mountaineer » The Best Apollo Information Out There
  7. [...] Aral Balkan ha hecho lo que hasta el día de hoy es la mejor reseña sobre Apollo. [...]

    .:: klr20mg ::. Una dosis diaria de …. » Blog Archive » Apollo, Estamos cerca del Beta publico
  8. [...] In the sessions, Aral Balkan posted a lot of information on Apollo from Daniel Dura’s session. [...]

    » Universal Desktop Daily - Wednesday, September 13, 2006 - Flashforward | The Universal Desktop | ZDNet.com
  9. Great post Aral – i’ve got half a chubby now ;-)

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

    Neil
  11. [...] May you heard something about this, fantastic. http://aralbalkan.com/729 [...]

    GAMEDevelopment | Hannes Moser » Blog Archive » Apollo
  12. [...] Aral Balkan live blogs an Adobe Apollo demonstration Build applications using the following technologies: [...]

    Vixiom Axioms » Apollo Features
  13. when will flash 9 professional be available?

    tousandoaks
  14. LinkUpdate 05…

    Daniel Dura darf sich zu den glücklichen zählen, die bereits ein Pre-Release von Apollo testen konnten. In seinem Blog AralBalkan hat er eine gute Übersicht über die zu erwartenden Features und API’s zusammengestellt. Bald ist es soweit, Flex Bui…

    FLAshot
  15. 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.

    ;)

    Martin
  16. [...] I was just reading an article called 10 Things That Will Make Or Break Your Website and was interested to see that the author mentioned Apollo on #9 under “Watch, pay attention to, or implement right away”. His one-line description of Apollo: “deploy Rich Internet Applications easily.” [...]

    10 Things That Will Make Or Break Your Website: #9 - Apollo at Aral Balkan
  17. [...] Aral Balkan: Days 1 & 2, Apollo@Flashforward, Flex Workshop slides, Supercharging Flash 8 slides. [...]

    Flashforward Blog » Blog Archive » Flashforward Austin: Recaps and Reviews [Updated]
  18. 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

    jahepi
  19. [...] Fuentes: klr20mg,  Aral Balkan [...]

    Apollo llevara la web hasta la luna « JuniHH Blog
  20. 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.

    J Marziani
  21. 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.

    J Marziani