Devs: WebWorks Includes Ant Build Scripts!

RIM is continuing to make progress with and for the Blackberry 10, you can see from the approach that when this platform is finalized it will be ready to take on many challenges as well as critics and other platforms. RIM has made it easy to build BlackBerry WebWorks applications, using the Ripple Emulator, the BlackBerry Graphical Aid, and or the command line. But they have taken it one step further to include Ant Build Script that will work with BlackBerry 10 builds as well!!.

Ant has been around a long time so it really needs no introduction. Inspiration for this build script came initially from Addy Osmani’s blog on creating a build script for web applications, and later from reviewing the HTML5 Boilerplate’s Ant-Build-Script project. This script is much more specific to BlackBerry WebWorks development and should serve as a great starting point for any developer wanting to introduce a build script to their WebWorks development cycle.

Ant scripts are great for a lot of reasons. Designed for build systems, with simple XML syntax, it’s been around long enough to get a lot of support from IDE’s and to have extensions and tutorials written for it. While there are newer build script tools available, Ant is a good, reliable tool. The IDE integration will be popular with many developers as well, since Eclipse and it’s variants work well with Ant. My current favorite is Sublime Text 2 which has superb build script integration: when set to Ant, pressing ctrl-b will run the default build in the current file’s directory. Besides working with your IDE, build scripts can do all sorts of repeatable operations for you, which can automate routine steps, saving time and maintaining consistency between builds. An obvious requirement for teams, but still a real time saver when working solo.

When I set out to create this script, I wanted something with a wide range of flexibility but also something simple that I could just drop into a project and have it build. I also wanted to be able to update some settings in one place when something changed but support project specific build targets. Lastly, I thought it would be pretty cool to do some Lint checking and code compression at the same time. The result is up here on Github and takes a two part approach. There is a main set of targets and associated tools that goes in one spot and a build.xml file that can be dropped into a WebWorks project. The main file you will setup once and only change when new SDKs are installed. The project file you will put a copy in each project and define a few simple properties to customize the build. Full instructions are included in the Github Readme.

Give it a try today and see what you think. Once you’ve done so, I’d really like to see some forks and pull requests that add additional targets. What are the tools that you would like to see included?