Jedi Time Tracker, an Open Source AIR Time Tracking App

Time for my biannual blog post! I actually have something worthy to discuss, so I figured I would share.

NorCalFlash has, for some time, been using Ray Camden's TimeTracker app to learn about cool stuff in the Flash Platform. So far, we've learned about skinning and Swiz, and some general refactoring and project structuring techniques. Ray kindly provided us the permission to fork his project for the learning experience. I've taken the time to implement all of these practices into the project, providing it with a completely new architecture, leveraging Presentation Model and Command patterns, as well as ORM via airORM. The result is a major change that will allow us to rapidly build in new features, adds enhanced skinning, and overall extensibility. Eventually, we will tackle mobile versions of the app as well!

The app is a small time tracking app that can be used by contractors, freelancers and small businesses for tracking time. Records are stored locally in the SQLite database, and currently there is no export mechanism.

Refactoring Ray's application gave me a great opportunity to really get a feeling for the command and presentation model design patterns. I recently started working with these in a much larger project, so it was nice to see how this sped up the development of the Jedi TimeTracker application, and see how much it really made a difference in the maintanability of my code. The biggest value I can currently see is how easy it is to swap out core logic without touching views, and without having to deal with large, messy controller files. Also, one could technically implement client/server storage with JTT very easily, by adding delegates for remote services instead of or in addition to the SQLite database.

I definitely encourage you to check out the code. If you're new to Swiz, command and presentation model patterns, SQLite in AIR or airORM, it's a neat little app to learn from.

The project details can be found at http://tjdownes.github.com/Jedi-TimeTracker/. The code is now in the repository, and an installer is available. You can contribute to the project by forking on GitHub and submitting pull requests! Anyone is welcome to contribute, as I initially started this project with the goal of helping people learn about Flex and AIR with an application that can be used in the real world. That being said, I'm also open to code reviews and critique!

Documentation is in the works, and members of the NorCalFlash User Group can expect more presentations using Jedi Time Tracker as the model.

Thanks again to Ray Camden for allowing us to fork his project. It's been a great learning experience!

Tags: Flex, Flash & AS3 · Process & Tooling

1 response so far ↓

  • 1 TJ Downes // Oct 6, 2011 at 8:15 PM

    I don't know what i was thinking when I published this, but the grammar and spelling was atrocious. I've updated the article, and my apologies to anyone who had to suffer through that!

Leave a Comment

Leave this field empty: