After launching Cheqlist last week, I felt compelled to give you a peek under the covers to see the tools involved and why I chose certain technologies. I hope to give you insight for times where you decide what to work with.

Getting started

Before I could really start working on a major project, I had to choose a VCS. I went with mercurial based on a friend’s insistence that I introduce myself to a DVCS (specifically Hg) immediately. I knew what it was but never took time to try it myself. I am very glad I tried it.

Looking back, though, I think git may have been a (very slightly) better choice. Regardless, mercurial has served me very well and I strongly encourage anyone who hasn’t given a DVCS a spin to do so!

After getting some code and tests written, it was time to pick a project host. I chose because it integrated well with NetBeans (which is THE IDE for JavaFX), it supported mercurial, and I like the direction Kenai is taking.

Communicating with Remember The Milk: GroovyRTM

RTM has a REST API that you can use to interact with the service. I decided to start by creating my own Groovy consumer of that API that would do the heavy lifting of interacting with Remember The Milk so I could keep my options open when looking for a UI technology.

I chose Groovy because:

  • I didn’t want to write and maintain a lot of code
  • I wanted to be able compile to Java classes I could use with other languages that run on the JVM
  • It has great utilities for parsing XML and making HTTP requests

In the end, Groovy totally came through for me. It did everything I needed and more, easily.

UPDATE: I’ve been polishing GroovyRTM a lot since May and I’m confident in saying it is, by far, the best Java API kit available. If you have suggestions or improvements, let me know!

The UI

JavaFX was a natural choice for me since I’d been playing with it since before it was 1.0. I was eager to develop something more than a demo app with it. The two key features here were:

  • Easily using Java classes - just an import
  • Deployment to the desktop AND mobile phones (hoping to deploy to Android eventually). I’m holding off on mobile right now because RTM introduced their own Android app which I can’t compete with (yet)
  • Java Web Start deployment gave me a lot of goodies for the desktop (title, icon, auto-update etc.)

Frankly, I don’t think JavaFX was ready for building real applications until version 1.2 (released in June). Even then, including the JFXtras project is a must. There is no way I could have done this without them. I still had to create or adapt a few custom components. In all fairness, JavaFX is a young technology and I know that the team is working very, very hard on producing a lot more for JavaFX 1.3. Oh, and I can’t wait for the Sun to release the JavaFX visual designer.


Last but not least, I needed to easily make a screencast to introduce Cheqlist. After listening to Faceoff Show’s excellent screencasting review, I chose Screenr. The only thing that caught me by surprise is that the video didn’t embed in my aggregation feeds. Could have been my idiot mistake, though.

You can catch my intro video here if you haven’t for some reason.


  • Where’d my edit button go? Oh yeah, you don’t need it anymore since all task edits occur immediately now.
  • Create and delete lists (including smart lists)
  • Toaster looks and acts much better ;)
  • Cheqlist is now on twitter! Follow @cheqlist for news and updates.

Launch Cheqlist

In addition, you should know that I’m currently working on notes management, minimizing to taskbar icon, and undo functionality. Anything else you want? Hit me up on twitter, email me or submit an issue.

What would you have done differently? Comment!

Posted on under programming