Codename One

codenameone.pngAn area that has shown promise but limited success is that of cross-platform app generators. The majority rely on HTML and Javascript and, as such, the look and feel and performance (particularly scrolling) is inferior. I previously posted some tips that identified areas to think about when assessing app generators.

My personal belief is that it’s necessary to move away from HTML and Javascript in order for these tools to be suitable for professional use. Mosync is one such tool but, looking at their latest advances, they seem to be moving towards rather than away from HTML/Javascript.

A very new tool/platform is Codename One which has origins in LWUIT used to provide a contemporary UI on standard Java ME feature phones. Some of the LWUIT team have adapted it to work cross-platform allowing code to be written once in Java and work on iPhone, Android, Blackberry, Windows Phone 7 as well as J2ME devices.

Some features (from their blog)…

  • Full access to the underlying OS including embedding native components in place.
  • A Swing like API geared for mobile devices with support for IO, GPS, Media/Camera etc.
  • Native Themes – Codename One ships with native device themes that are implicitly set to a project to ease the integration with the native OS.
  • NetBeans/Eclipse plugins.
  • Simulator environment – Codename One provides a fast, easy to use and flexible simulator environment.
  • Codename One Designer – cloud service to seamlessly build your applications for free. You can also compile locally and avoid the cloud service entirely but need a Mac for iPhone builds and Windows for RIM/Windows Phone 7 builds.
  • Cloud services – Codename One offers cloud services ranging from crash protection to on device debugging and access to web services, push notification and location.

While I haven’t used it yet because it’s still in beta, Codename One seems to have potential. I read in the FAQ that the Java API is CLDC 1.1 which is going to be limiting. I also wonder how the UI will adapt to say iOS vs Android idioms. For example, placement of tabs and rendering of lists which needs to be in native-like ways for an acceptable look and feel. Too many existing tools are encumbered by strange subscription licensing and I like Codename One’s free model. However, I question who will actually fund ongoing development as mobile platform APIs evolve and Codename One needs to keep up to date.

There’s lots more information on the Codename One blog.