Modular Gradle Build + Future Steps

Just when you thought that the justCheckers project has languished into oblivion… it is back!  As part of a larger project to “finish what I started”, I plan on getting more work done on justCheckers.  The idea is to revitalize the project and make it fun to contribute to it on-and-off basis.

One of the first things I wanted to do is make the project more modular.  While I have worked as an Android developer in the past, now a days I found myself working on Java web projects.  So while getting a single Android app out would probably be easier than having support for multiple platforms, I do miss experimenting with different technologies via this project.  That is why I decided to separate out the project into a core (or kernel) module that can be used on in various Java technologies: Android, web, desktop and console/terminal.  Also I thought it was time to revitalize the project with the experience I’ve gained over the years.  Hence I am proud to announce my rather ambitious project to target multiple platforms.

As a way to make it easier to pull this off, I’ve setup a nice uniform build automation system using Gradle.  I’ve just set it up a rough skeleton for now, but Gradle [] makes it fairly easy to set everything up.  I just merged it into trunk so feel free to play with it!  At the moment only the Android client builds completely.  However soon enough I plan on getting initial versions of the desktop, and web clients up.

Finally, I also miss the collaborative team that formed around the original justCheckers.  Now while everyone (except for me) has moved on, I would like to once again throw up the door to new contributors.  If you are interesting in any of the below, contact me by email [see].  Also I accept github pull requests if you prefer that.

  • Refactoring the core code to be modular enough to be callable from a standard Java and Android.
  • Making a functional Android client.
  • Making a functional web app using SpringMVC and a JS-Web 2.0 ish frontend (HTML5/jQuery/Angular?)
  • Making a functional console/terminal client.
  • Adding in documentation on the project wiki:
  • Re-skinning the project website.
  • Adding unit tests (TestNG).