<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Eric Wendelin&#039;s Blog &#187; Programming</title>
	<atom:link href="http://eriwen.com/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://eriwen.com</link>
	<description>Programming productively with open-source tools</description>
	<lastBuildDate>Tue, 31 Jan 2012 14:30:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>What and why: the tech behind Cheqlist</title>
		<link>http://eriwen.com/programming/the-tech-behind-cheqlist/</link>
		<comments>http://eriwen.com/programming/the-tech-behind-cheqlist/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 11:00:04 +0000</pubDate>
		<dc:creator>Eric Wendelin</dc:creator>
				<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Project]]></category>

		<guid isPermaLink="false">http://eriwen.com/?p=962</guid>
		<description><![CDATA[After <a href="http://eriwen.com/tools/cheqlist-remember-the-milk-app/" title="Cheqlist: A free, open-source desktop app for Remember The Milk">launching Cheqlist</a> 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.

<h2>Getting started</h2>
Before I could really start working on a major project, I had to choose a VCS. I went with <a href="http://mercurial.selenic.com/wiki/">mercurial</a> based on a friend's insistence that I introduce myself to a <acronym title="Distributed Version Control System">DVCS</acronym> (specifically Hg) immediately. I knew what it was but never took time to try it myself. <strong>I am very glad I tried it.</strong>

Looking back, though, I think <strong><a href="http://git-scm.com/">git</a> may have been a (very slightly) better choice</strong>. Regardless, mercurial has served me very well and I strongly encourage anyone who hasn't given a DVCS a spin to do so! <a href="http://eriwen.com/programming/the-tech-behind-cheqlist/">Continue reading <span class="meta-nav">&#8594;</span></a>


Related posts:<ol><li><a href='http://eriwen.com/tools/cheqlist-remember-the-milk-app/' rel='bookmark' title='Cheqlist: A free, open-source desktop app for Remember The Milk'>Cheqlist: A free, open-source desktop app for Remember The Milk</a></li>
<li><a href='http://eriwen.com/tools/moving-to-github/' rel='bookmark' title='Why I&#8217;m moving my projects to GitHub'>Why I&#8217;m moving my projects to GitHub</a></li>
<li><a href='http://eriwen.com/javafx/javafx-for-the-java-developer/' rel='bookmark' title='JavaFX for the Java developer presentation'>JavaFX for the Java developer presentation</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://eriwen.com/tools/cheqlist-remember-the-milk-app/" title="Cheqlist: A free, open-source desktop app for Remember The Milk">launching Cheqlist</a> 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.</p>
<h2>Getting started</h2>
<p>Before I could really start working on a major project, I had to choose a VCS. I went with <a href="http://mercurial.selenic.com/wiki/">mercurial</a> based on a friend&#8217;s insistence that I introduce myself to a <abbr title="Distributed Version Control System">DVCS</abbr> (specifically Hg) immediately. I knew what it was but never took time to try it myself. <strong>I am very glad I tried it.</strong></p>
<p>Looking back, though, I think <strong><a href="http://git-scm.com/">git</a> may have been a (very slightly) better choice</strong>. Regardless, mercurial has served me very well and I strongly encourage anyone who hasn&#8217;t given a DVCS a spin to do so!</p>
<p>After getting some code and tests written, it was time to pick a project host. I chose <a href="http://kenai.com">kenai.com</a> because it integrated well with NetBeans (which is THE <acronym title="Integrated Development Environment">IDE</acronym> for JavaFX), it supported mercurial, and I like the direction Kenai is taking.</p>
<h2>Communicating with Remember The Milk: GroovyRTM</h2>
<p>RTM has a <a href="http://www.rememberthemilk.com/services/api/">REST API</a> 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 <a href="http://www.rememberthemilk.com/">Remember The Milk</a> so I could keep my options open when looking for a UI technology. </p>
<p><img src="http://eriwen-cdn.s3.amazonaws.com/images/groovyrtm.png" style="margin: 0 auto; display: block;" /></p>
<p>I chose <a href="http://groovy.codehaus.org/" title="The Groovy programming language">Groovy</a> because:</p>
<ul style="margin-left: 2em; list-style-type: upper-roman;">
<li>I didn&#8217;t want to write and maintain a lot of code</li>
<li>I wanted to be able compile to Java classes I could use with other languages that run on the <abbr title="Java Virtual Machine">JVM</abbr></li>
<li>It has great utilities for <a href="http://groovy.codehaus.org/Reading+XML+using+Groovy%27s+XmlSlurper">parsing XML</a> and <a href="http://groovy.codehaus.org/HTTP+Builder">making HTTP requests</a></li>
</ul>
<p>In the end, <strong>Groovy totally came through for me</strong>. It did everything I needed and more, easily.</p>
<p>UPDATE: I&#8217;ve been polishing <a href="http://github.com/eriwen/groovyrtm">GroovyRTM</a> a lot since May and I&#8217;m confident in saying it is, by far, the best Java API kit available. If you have suggestions or improvements, <a href="http://eriwen.com/contact/">let me know</a>!</p>
<h2>The UI</h2>
<p><a href="http://www.rememberthemilk.com/services/api/">JavaFX</a> was a natural choice for me since I&#8217;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:</p>
<ul style="margin-left: 2em; list-style-type: upper-roman;">
<li>Easily using Java classes &#8211; just an import</li>
<li>Deployment to the desktop AND mobile phones (hoping to deploy to Android eventually). I&#8217;m <strong>holding off on mobile</strong> right now because RTM introduced their own Android app which I can&#8217;t compete with (yet)</li>
<li>Java Web Start deployment gave me a lot of goodies for the desktop (title, icon, auto-update etc.)</li>
</ul>
<p>Here is where I thank <a href="http://learnjavafx.typepad.com/" title="Helping you become a JavaFXpert">Jim Weaver</a> and <a href="http://blogs.sun.com/rakeshmenonp/" title="Java, JavaFX and beyond...">Rakesh Menon</a> in particular for their useful JavaFX examples, helping me find a couple bugs, and their suggestions. If you use JavaFX and you&#8217;re not subscribing to their blogs, it&#8217;s time to come out from under that rock. </p>
<p>Frankly, I don&#8217;t think JavaFX was ready for building real applications until version 1.2 (released in June). Even then, including the <a href="http://code.google.com/p/jfxtras/">JFXtras</a> project is a must. <strong>There is no way I could have done this without them.</strong> 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. <strong>Oh, and I can&#8217;t wait for the Sun to release the JavaFX visual designer.</strong></p>
<h2>Launch</h2>
<p>Last but not least, I needed to easily make a screencast to introduce Cheqlist. After listening to <a href="http://faceoffshow.com/2009/09/01/episode-32-screencast-showdown/">Faceoff Show&#8217;s excellent screencasting review</a>, I chose <a href="http://screenr.com">Screenr</a>. The only thing that caught me by surprise is that the video didn&#8217;t embed in my aggregation feeds. Could have been my idiot mistake, though.</p>
<p>You can catch <a href="http://screenr.com/vvH">my intro video here</a> if you haven&#8217;t for some reason.</p>
<h2>Updates!</h2>
<ul style="margin-left: 2em; list-style-type: upper-roman;">
<li>Where&#8217;d my edit button go? Oh yeah, you don&#8217;t need it anymore since all task edits occur immediately now.</li>
<li>Create and delete lists (including smart lists)</li>
<li>Toaster looks and acts much better ;)</li>
<li>Cheqlist is now on twitter! Follow <a href="https://twitter.com/cheqlist">@cheqlist</a> for news and updates.</li>
<li>Yet another update: Cheqlist has been approved for the <a href="http://store.java.com">Java Store</a>!</li>
</ul>
<p><a href="http://eriwen.com/cheqlist/Cheqlist.jnlp"><img width="88" height="34" style="border: medium none;" title="Launch Cheqlist via Java Web Start" src="http://eriwen.com/images/webstart.gif" alt="Launch Cheqlist"/></a></p>
<p>In addition, you should know that I&#8217;m currently working on <strong>notes management, minimizing to taskbar icon, and undo functionality</strong>. Anything else you want? Hit me up <a href="http://twitter.com/eriwen/">on twitter</a>, <a href="http://eriwen.com/contact/">email me</a> or <a href="http://github.com/eriwen/cheqlist-javafx/issues">submit an issue</a>.</p>
<p>What would you have done differently? Comment!</p>


<p>Related posts:<ol><li><a href='http://eriwen.com/tools/cheqlist-remember-the-milk-app/' rel='bookmark' title='Cheqlist: A free, open-source desktop app for Remember The Milk'>Cheqlist: A free, open-source desktop app for Remember The Milk</a></li>
<li><a href='http://eriwen.com/tools/moving-to-github/' rel='bookmark' title='Why I&#8217;m moving my projects to GitHub'>Why I&#8217;m moving my projects to GitHub</a></li>
<li><a href='http://eriwen.com/javafx/javafx-for-the-java-developer/' rel='bookmark' title='JavaFX for the Java developer presentation'>JavaFX for the Java developer presentation</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://eriwen.com/programming/the-tech-behind-cheqlist/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

