Second thoughts on Apollo
by Ruben
As I had promised to write down my first thoughts on Apollo I started putting together this post the other day, and talked it over with my very good friend Michael.
Initially, the set tone was very cynical, mainly because I was struck by the massive amount of fuss and mania circling around the product. Which in my opinion wasn't entirely justified, since Apollo is basically just a tool to mash up already existent technologies (such as Flex, HTML and PDF).
Another reason for the hot fuss, I think, was that now all of a sudden Flash/Flex developers would be granted file-writing permission (like the way children, and grown-ups too, are always more interested in doing things they aren't allowed to). Which of course is kinda cool, but does it make one single product that awesome? Is there really so much Apollo-goodness that you couldn’t do with Flex already?
Michael, however, pointed out to me what is in my opinion one of the neatest things about Apollo, the alternative; being Java (according to him). Please do note that I am by no means familiar with the 'real' programming languages like Java or C, so I'll just conveniently take Michael's word for it here.
To make my (or rather his) point a bit more clear I'll proceed. Since Java isn't always that tempting in all situations and for all projects, Apollo is a great way to get the job done without too much hassle.
Another good thing about Apollo, perhaps, is that Flex applications on the web that have the functionality that in reality belongs on the desktop, can now be ported to desktop applications in probably less time than it took me to write this post..
Now some may argue that an application that really belongs on one's desktop perhaps shouldn't have been on the web in the first place. But I think that that does not change the fact that there still are some really good apps on the web that have the functionality of a desktop app, just look at Netvibes for instance..
One downside to porting a web app to a desktop app, however, is that for the latter a reinstall is necessary for every update of the software, where web apps conveniently use the last version automatically.
My bad, today I found out that Apollo lets you use an updater class that makes sure the user is running the latest version of the software.
As far as features go, I think the way Flash and HTML content can be integrated within Apollo is just plain ridiculously awesome. Invoking Javascript functions from within Actionscript (and the other way around) like Apollo enables you to, is what Actionscript developers have been breaking their heads over for many years now.
Also, the drag and drop feature is way too cool as well, I personally use it alot in nearly all the desktop applications I use, and would love to be able to drag content from and to Flash content.. The only thing that kind of saddened me when I was first putting together an Apollo application, was that drag and drop functionality isn't included in the public alpha, so we'll have to wait for that one for a bit.
Pretty much the same goes for copy/paste support, it's not yet been implemented, but it will be way cool when it's finally in there.
So I guess my conclusion, more or less, is that although I still wonder if it was worth the ridiculous fuss (especially on the blogs), Apollo sure is a pretty awesome, nifty, and cool product.
Think about it..
Comments
Another feature that you don’t mention that I’ve been hearing gaining a lot of interest is the idea of online / offline detection and usage. Image all the online applcations our there that have a “my-fill-in-the-blank” (e.g., my Photos, my Addressbook, my etc.). Now imagine keeping that experience when you’re connected… you can go to any computer and access the website still, or access the data from an apollo app… but now, you’re on a plane, you can still access your photos (flikr account or something)… add more photos, edit captions, whatever, while you’re on the plane, since it’s all cached on your drive, and next time it detects a internet connection automatically updates the changes you’ve made.
I’m using a familiar consumer example here with photos, but this is actually a functionality that a lot of business apps have been asking for for a long time, and there’s where I see a lot of the interest in the enterprise app space.
You’re right, I did actually fail to mention the on-/offline detection, this was however not completely unintended.
I think the drag&drop and copy/paste features are a little more exciting mainly because they could previously not (or very difficultly) be implemented in Flash/Flex applications, where the on-/offline detection could already be created, and with less hassle, albeit still a fair lot of hassle
That of course does not mean that your point wasn’t worth mentioning at all, so thanks!
It’s funny, I was the opposite of a lot of people. it took me a long time to *get* Flex, but Apollo made sense to me immediately from the day I heard about it, and was one of the reasons I pushed myself to “graduate” to AS3.
You’re absolutely right that the potential of HTML integration is huge. At this point we can only begin to imagine the uses people will dream up for it, but they could go far beyond being mere mash-ups.
Is a Apollo going to be a guaranteed success? Not necessarily. Strong technology is one thing, but it needs to be coupled with effective execution of a strategy on the business side. But so far the signs are positive.