One of the most amazing releases to date

Top 5 features of Codename One 3.7

Gabriela Motroc
Codename One

© Shutterstock / Roobcio

Codename One 3.7, the “Write Once Run Anywhere” mobile solution for Java developers, is here. Read on to find out the top features of the new release and to discover when Kotlin support will be added.

The core vision of Codename One is to actualize the WORA (Write Once Run Anywhere) mantra of Java in the age of mobile devices. It works with NetBeans, Eclipse and IntelliJ/IDEA and it is the only platform with WORA support —no special hardware requirements— and 100% code reuse. It has full access to underlying native OS capabilities using the native OS programming language (e.g. Objective-C) without compromising portability and it compiles Java into native code for iOS, UWP (Universal Windows Platform), Android and even JavaScript.

Version 3.7 is here and it comes bearing gifts — including a new overhaul of the Codename One GUI builder which now includes support to “auto-layout” allowing developers to place components with the ease/power of Photoshop or Illustrator.

According to this video, Codename One 3.7 is one of the most amazing releases to date. Watch it to discover the top 5 most important features of this release.

Codename One 3.7 highlights

Here are the most important features:

  • GUI Builder Auto Layout – Codename One now supports an inset-based GUI builder mode that allows positioning components in a far more fluid way. Although it is highly experimental, that doesn’t mean you cannot use it already.
  • Live Style Customization – The UI design of the application can be customized directly from the simulator
  • Z-Ordering on All OS’s – Users can mix native components [e.g. maps, videos etc] with Codename One components and draw on top of them
  • Properties SQL & UI Binding – Support for database mapping (ORM), parsing & UI binding/generation seamlessly using the properties API
  • Rest API for Terse Networking – New builder style REST API that abstracts some of the verbosity of ConnectionRequest
  • VM API Enhancements – Added some core VM classes and API’s such as java.lang.Number,CharSequence, exception chaining etc.
  • Terse Syntax – New CN API allows developers to write more concise code, new helper API’s such as addAll & a jquery style component selector
  • Security-Oriented APIs – New APIs for detecting certificates on https servers as well as API’s for touch ID, jailbreak detection and more
  • Thread Helper & Threadsafe SQLite API’s – A new API for communicating with threads & a new threadsafe wrapper for sqlite
  • Better Desktop/Web API’s – We now support APIs such as mouse cursor customization, split pane, mouse hover events etc. which allow more elaborate desktop apps. We also include an experimental new “desktop skin” to debug desktop apps
  • Experimental “On Top” Sidemenu & Form Layered Pane – Side menu can now be on top of the UI and potentially on top of the entire form with a new layered pane mode
  • ParparVM Performance Improvements – Some of the code such as method invocations will now compile to the C equivalent of that code in terms of performance, many basic numeric operations are much faster thanks to VM optimizations and code is up to 40% smaller over 3.6
  • Two Factor Authentication in Certificate Wizard – The certificate wizard now supports 2-factor authentication in users’ Apple accounts
  • Faster iOS Builds – Build times in the Apple servers are up to x3 faster for some users with exceptionally long build times.
  • Test Recorder & Toolbar – The test recorder now works correctly with the toolbar

How Codename One came to be

Shai Almog, co-founder and CEO at Codename One explained in an article for JAXenter that when he ran into Java for the first time, he was working with OS/2 and was busy getting his GCC porting layers working for all platforms.

“Java was a revelation as it made working with all platforms trivial and painless. At first, I bemoaned the lack of operator overloading, templates and various other features of C++. But as the years went by, I came to appreciate the simplicity of the language that allowed me to scale my work considerably on all platforms.

When Swing came out, it was a similar revelation in terms of GUI; suddenly all UI programming became portable and easy. Yes, you needed to work hard on the final refinement of the application, but you could get control of every pixel on the screen and get command amazing amount of power.

A decade ago, Chen Fishbein (best friend and partner at Codename One) started building a GUI library for mobile devices inspired by Swing. My initial knee-jerk reaction was: don’t. It’s too hard and Sun’s bureaucracy will never let something like this out of the door. I was right about it being hard but I was wrong about it being too hard. I was also wrong about Sun’s bureaucracy, which did indeed pose an issue, but our manager at the time (Yoav Barel) had the required tenacity to actually get this thing out of the door.

Fast forward to the present day, we took this effort (six years in the making) and made it even bigger.”

Read the entire article about Codename One here.

What’s next for Codename One

On-device debugging, which was originally planned for 3.7, might be a feature of the next release, which will be out in mid-November.

The one feature that was announced for 3.8 is Kotlin support. After running a survey, they revealed that the results included a bit of a surprise to them and promised to discuss it at a later time.

Check out all the details about Codename One 3.7 here


Gabriela Motroc
Gabriela Motroc was editor of and JAX Magazine. Before working at Software & Support Media Group, she studied International Communication Management at the Hague University of Applied Sciences.

Inline Feedbacks
View all comments