Monday, 27 July 2009

Balsamiq trial experience

Taking a break from coding Android sandbox experiments, this afternoon I tried out the UI prototyping tool Balsamiq to develop some initial ideas for the CloudBank client user interface. Usually I use pen and paper for this kind of task: low-tech tools that are difficult to beat in terms of flexibility and speed. If only there was copy/paste and undo/redo in the analog world...

Balsamiq runs online in a browser window or on the desktop, with free trials for both versions. I tried the online version, which is fully functional but displays a nag screen every few minutes. (Just hit dismiss to continue).

Having watched their video tutorial, I knew roughly how the software works and had no problems finding my way around. This is a very focussed UI design tool. No feature creep. It's amazing how quick you get acceptable results, I put together three mobile screens for CloudBank in less than two hours. This includes time to experiment, annotate and export the screens.

The trial version allows you to export and import designs. Export either as XML to the clipboard, or as a PNG image to download, import as XML. One thing to keep in mind is that imports are cumulative, i.e. to restore a previously saved design it is advisable to clear the current mockup before import.

Some difficulties I had:
  • Could not change the background color of controls or the provided iPhone screen
  • Could not create a simple multi-line button. There is a multi-line button provided, but that is pre-configured with fixed fonts for the first (large) and second line (small).
  • In some cases I found the grid-based positioning of controls too coarse; an option to turn it off would be useful.
  • Cannot import custom graphics. I know this is difficult to implement for web-based tools as they have no direct access to the client computer's hard disk, however, unfortunately the desktop version has the same limitation.
Despite some problems I think this is a wonderful tool for UI prototyping: focused, very speedy, and with a useful arsenal of controls and icons. While in my experience pen and paper are still quicker when sketching initial designs, Balsamiq definitely is a strong competitor. And in addition to speedy sketching, it supports copy/paste, undo/redo and sharing of designs! Definitely worth a try.

Friday, 3 July 2009

Project video on CloudBank Channel

Today we shot and edited our introductory project video in record time. With script and cut-outs prepared yesterday, we managed to film and edit the whole thing in less than 2 hours!

Despite our best efforts to keep to a 30 seconds limit, the video turned out 1:01 mins. It's now hosted on our new CloudBank Channel on YouTube.

Wednesday, 1 July 2009

Google Code project page

OK, we now have a Google Code project page at

Thinking about a suitable license for CloudBank

We plan to release the mobile client part of the application as open source software (the server part is boilerplate code not deemed interesting to other developers). We don't want anyone to use the code for closed-source commercial purposes, or at least not without asking us. Which license to choose?

The initial plan was to use the Free Software Foundation's General Public License (GPLv2) which is a 'copyleft' license requiring any code using our code to be released under the same licence terms, effectively preventing closed-source commercial use of our code. However, what about compatibility between other open source licenses? E.g. we want to use the HTTP Commons client, which is released under the Apache 2.0 (ASLv2) license. Are there any problems?

Ed Burnette gives a fairly useful overview of open source licenses, but this is not enough to make a decision. With respect to our specific circumstances, this ars technica article explaining why Google chose the ASLv2 over GPLv2 for Android is much more helpful:

a) Although the underlying Linux kernel is licensed under GPLv2, much of the user-space software infrastructure that will make up the Open Handset Alliance's platform will be distributed under the ASLv2. Code that is distributed under the ASL can be integrated into closed-source proprietary products and redistributed under a broad variety of other terms.

b) By contrast, 'copyleft' licenses (such as the GPL) generally impose restrictions on redistribution of code in order to ensure that modifications and derivatives are kept open and distributed under similar terms.

c) It is important to note that the ASL is only being applied to the assortment of user-space platform components that make up Android. The kernel itself is still licensed under the GPLv2, and third-party software that runs on top of the platform can be distributed under pretty much any license, including commercial and copyleft licenses. It is also important to note that, although the ASL was not compatible with previous versions of the GPL, it is entirely compatible with the GPLv3. This means that code distributed under the ASL can be incorporated into GPLv3 software.

It looks like choosing the GPLv3 for CloudBank means we can use other GPLv3 and ASLv2 code while our own code would remain strictly open source, i.e. without commercial exploitation in closed-source software products.