What and why: the tech behind Cheqlist
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 kenai.com 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.)
Here is where I thank Jim Weaver and Rakesh Menon in particular for their useful JavaFX examples, helping me find a couple bugs, and their suggestions. If you use JavaFX and you’re not subscribing to their blogs, it’s time to come out from under that rock.
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.
Launch
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.
Updates!
- 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.
- Yet another update: Cheqlist has been approved for the Java Store!
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!
Excellent write up! The things you have done with Cheqlist have made me want to try JavaFX.
Too many things to learn.
I really like your blog… However you should write more :)
Thank you :) I’d really like to write more, but two things hold me back:
* I want to feel like I’m bringing something new to the ‘net every time I blog.
* A lot of the stuff I want to blog about could be construed as work-related. I keep my blog and my work VERY separate.
Do you think I should write things that you could conceivably find elsewhere? Perhaps put things in a different light?
Hi Eric
Great app, and great blog entry.
Wishlist:
1. Using a calendar component for the data entry field. I thought I had seen one somewhere
2. Ability to sort by level of priority, rather than just by due date
3. Better background color use for the entries. The use of a gradient seems awkward to me, I would prefer a solid color
4. Some basic documentation: a good % of the features are somewhat intuitive, but others are pretty obscure. Are we supposed to go to the RTM website to figure this out?
5. Better graphical design/interactive design. I know this is a side project done outside of your day job, but RIA (and JavaFX) is not only about the ability to create GUIs more easily with animations and effects, it is about enabling great designs. Don’t take me wrong. Your app looks good, but it would look smashing great if you could collaborate with a professional designer.
BTW, congratulations on having your app accepted in the Java Warehouse
Best of luck with this project,
@javafx4you
Thank you :)
1. I wanted to have a calendar picker on date inputs, and I saw that Rakesh Menon had published one. It needed too much work for me to include. I’m going to see if I can at least start adapting it for Cheqlist but I can’t say it’ll be in the next version (planning for end of November).
2. I already have the code in place to sort by priority or date or both, but I’m not sure how to cleanly integrate it into the UI.
3 and 5. Yes I’m certainly not a designer ;). I don’t have any funds to get a designer but I should try to see who will help me in exchange for recognition and my thanks :) (psst… that was you readers hint to email me if you want to help with design)
4. Absolutely fair request. Though by version 0.3 (December hopefully) I want to add autocomplete so that searching and adding is much easier. Stay tuned.
Thanks again for your feedback. I am adding all of your requests to the issue tracker.
[...] and why: the tech behind Cheqlist – submitted by ossreleasefeed to programming [link] [...]
[...] Wendelin blogged about the technology behind Cheqlist, which I referred to last week. Cheqlist is a JavaFX application that connects to the online [...]