11 Oct 2011

Grails Development Environment and Tools

I first started developing with Grails in late 2009 based on a recommendation from a friend at large technology company that was developing a big project with it.  Also based on his recommendation, I Intellij Idea as the IDE for my Grails development. I developed a few tools for my own use and then moved on to some website projects with Drupal, Joomla and WordPress.


Earlier this year I decided to revisit Grails for some projects I wanted to do and I've been using it consistently since then.  In this post, I thought I'd document some of the tools I'm using.

Grails

I've been using Grails 1.3.7 since about April of 2011.  I plan on switching to Grails 2.0 in the next couple of months and am happy to see that the Grails project has switched from Prototype to jQuery as the JavasScript framework.

OS

I like both Windows and Linux as operating systems and think Windows 7 is the best Windows release ever. I use a Toshiba Portege R700 laptop as my main computer and an  HP desktop with dual Dell widescreen monitors when I want some serious screen real estate.

In the end, I switched my laptop from Windows 7 to Ubuntu 11.04 as my development system. I'm glad to be using Linux again on a regular basis but I would choose Ubuntu 10.10 instead of 11.04 for two main reasons:  (1) Ubuntu 11.04 continues to have problems on notebooks the most annoying being that I can't reliably run on battery power without the laptop eventually freezing;  (2) I don't like the new 11.04 Unity UI which appears to be an attempt to provide a MacOS UI on Linux. Fortunately, 11.04 makes it easy to switch back to Gnome.

My dual-monitor desktop is still running Windows 7 and I have no plans to change that.  I still have enough Windows-only apps as well as some hardware that won't work on Linux so I want to have physical windows box around.  I've spent some time setting up Ubuntu under VirtualBox and VMware Workstation and will use VMware when I want to run Ubuntu on this system.

IDE

I already mentioned that I use Intellij Idea. I did try both Eclipse and NetBeans for Grails development and I've written a post on installing Grails and NetBeans but in the end, I've found Idea to have much better support for Grails and I went back to it after using it in 2009.

Version Control

I'm not a very sophisticated user of version control systems and have used CVS in years past. When restarting development earlier this year I kept running into projects posted on GitHub and I made a very minor GitHub contribution to the jQuery Mobile project posted by Rob Fletcher and Aaron Eischeid that I've posted about earlier.

As a result of this I now use Git, the Grails plugin for Git and the SmartGit client. After reviewing the options for cloud-based Git hosting of private projects (beanstalk, GitHub and springloops) I'm going to try out springloops.

UI

The project I've been working on most consistently is primarily for mobile devices and for that project I've chosen jQuery Mobile. I have the impression that jQuery Mobile has, or is about to, cross the chasm to use Geoffery Moore's term or reached the tipping point if you prefer Malcolm Gladwell. More and more apps (and large corporations) are using this as a quick way to create a cross-platform mobile UI.

Databases

I'm using MySQL only because it's the most popular and I currently have no reason to switch to anything else. I have used sqlite with Grails but only to support an external database used by the Apple iPad.

Grails in the Cloud - PaaS

I've spent some time looking at options for hosting Grails applications in the cloud. In other words a Grails friendly Platform as a Service provider. From an ease of deployment perspective, you can't beat the Cloud Foundry service from VMware. It's only available in beta and is not a production ready service but the price is right (free) and it's easy to use as described in my Grails on Cloud Foundry post.

There's a slideset from the San Francisco Grails user group in Feb 2011 that reviews grails hosting options. There's also an older posting on stackoverflow.com on this subject as well as a more up to date posting.

Plugins

Grails has a huge library of Plugins that is updated almost daily.  I'm using the following:

Spring Security Core - for user and group access control.

jQuery and my slightly customized version of the jQuery Mobile plugin.

CloudFoundry - see above

Class Diagram - This is a really cool plugin by Trygve Amundsen that produces a diagram of your Grails domain classes

Export - I use this plugin by Andreas Schmitt to export data to XML, Excel and other formats

Git - for version control

mail - to send email from the Spring Security new user registration and forgot password processes

regen - I've used this plugin to generate parallel desktop and mobile UI views. Using the standard grails view generation process for the desktop interface and the regen plugin for the mobile views. I'm no longer doing this because I'm switching that project to an all jQuery Mobile interface.

Grails Blogs

Here are the RSS links to my favorite Grails related blogs:

Grails.org News - main grails news feed

An Army of Solipsists - Burt Beckwith provides a weekly update on Grails with links to interesting articles.

Marc Palmer's Blog

Glen Smith's Grails Blog

Grails Podcast - a not too frequent podcast on Grails

Tomás Lin’s Programming Brain Dump

sbglasius Blog

Grails User Discussions

The primary site I use to post Grails questions and monitor discussions is stackoverflow.com. I also use the Grails mailing list archive at Nabble.

My Grails Posts

My other Grails related posts can be found here.


Tags:
0 comments