Archives for March 2007

Apollo Photo Mosaic Updated

Based on some feedback from Mac users I have updated the Photo Mosaic to fix some bugs (I should have incorporated the Apollo auto updater, maybe next time). I have also added a few new features including a zoom tool to allow you to zoom in on the mosaic to see the tiles better, or zoom out to see the whole mosaic more clearly. The color matching algorithm has also been tweaked to provide better results. You can download the new version here. You will also need the Apollo runtime. Enjoy.

Apollo Photo Mosaic

Once Apollo was released I decided to redo my Flash based photo mosaic. Having Apollo available finally gave me the impetuous to add in some of the features I had never gotten around to adding: using your own photos, user set search criteria, and saving the final mosaic. You can download the new Apollo version here. You will also need the Apollo runtime. Enjoy.

Apollo photo mosaic.

Apollo, now what do I do?

So now what, Apollo has been released (in alpha), and you're a web developer sitting there thinking this is cool, I can build desktop applications that leverage all my web development experience. You're chomping at the bit (or your manager/director/VP is) to build some earth shattering desktop application that blends the best of web and desktop into one killer application. Where to start, what to build, what functions to include, the list goes on and on. Before you take off down some rabbit holes (we all do) a few words of insight, advice, or what have you, from someone who was been there, done that and learned .... the hard way.

  • Remember that this will ultimately run on a person's local computer, so automatically updating features, content, bugs etc is not as easy. Adobe has build a very useful auto update feature into Apollo that certainly helps in getting updates out, but it doesn't help with offline content, or files not included in the .air file. Plan ahead. Know what may need to get pushed or updated to the installed applications and then build a robust mechanism to do the task.
  • Be memory friendly. Now that you have access to the local file system and all that it entails, it becomes very easy to eat up huge chunks of memory. Java developers are used to having to close/cleanup pretty much everything they do in their code, not so with Flash developers. FileStream.close(), a simple little command that will save enormous pain.
  • Just because Apollo runs on the desktop and can easily access the Internet does not mean the user will always have an internet connection. Plan for the connection being down. What will your application show, what can a disconnected user do, what happens if the connection drops during use? All questions to consider if your application will be using an internet connection for any functionality.
  • Test, test, test, then deploy. Only release applications that have been thoroughly tested. People don't want to install half baked apps that crash the instant something happens. This isn't like the web were you can quickly catch and fix a bug (major or minor) and it's "no harm, no foul". People are way less tolerant of installed applications that go berserk than they are of websites that crash.
  • Provide some basic help. Hey, you're a web developer, you should be able to build a basic HTML based help file/system with ease. Do your users a favour and give them a hand. Even some basic instructions and guidelines go a long way in helping users and making them feel more confident about an application (and the people who developed it).

That's it, nothing earth shattering, no great insights, nothing to help you achieve programmatic nirvana. Apollo is certainly going to change how applications get developed, it is about to unleash a whole new breed of developers on the desktop, just remember, you're in someone else's backyard now, they have trusted you enough to install your application on their computer, tread lightly, but build some killer apps.