Codename One 3.6

@codenameone codenameone released this Jan 7, 2017

Codename One 3.6 Heading

Codename One, the "industry defining" Write Once Run Anywhere native mobile app platform for Java developers has just published version 3.6.
We're thrilled with this release whose key features are offline build support and official support for UWP (Universal Windows Platform). Starting with this release we are changing the scope for Codename One: Instead of trying to be "as good as native" we'd like to aim to be "better than native".

You can check out our press release here.

We already offer many advantages over native platform development:

  • Faster builds and build cycles
  • Portability
  • Easier customization of the UI with ability to control every pixel

With 3.6 we hammered down all of these to a fine tuned machine and moving forward we'd like to build the Codename One that is better than native.

You can see the full release announcement on the Codename One website where you can download the IDE plugins and related material.

Highlights of this Release

  • Offline Build Support - Building thru the cloud is one of the "defining features" of Codename One, but some government level customers need the ability to build offline due to regulatory concerns.
  • Production grade UWP (Universal Windows Platform) Port - UWP allows seamless native support for Windows 10 on Intel/ARM devices & PC's such as the very popular Surface line
  • New GUI Builder Release - We released the new GUI builder. It still has rough edges but is improving at a rapid pace
  • Round Borders - Round style borders are available now both in the designer and code
  • Floating Action Button - New FloatingActionButton component that allows badging as well
  • In App Purchase Subscriptions & Receipts - We completely rewrote the IAP documentation and added support for subscriptions
  • Security Enhancements - We introduced seamless storage encryption & certificate pinning (SSL Pinning)
  • New & Remastered Demos - Demos were overhauled and new demos were added based on PSD design showing the level of creativity that you can integrate into your applications
  • URL & File API's - Easier porting for existing Java code thru File & URL API's
  • Properties - Properties allow us to build terse/type safe efficient mapping to storage/database/XML/JSON etc.
  • Newer Defaults - Java 8 & Android API 23 are now on by default as well as xcode 7.3 with xcode 8 coming soon. Android's peer component is also on by default
  • Easy Caching - Caching HTTP has never been easier...


Overall we are very happy with this release aaawe think we dotted the i's and crossed the t's. This is to a large part due to the delay of the release from December. We still had to push back some issues to 3.7 but that's always unavoidable.

The one thing we really didn't get out in this release is a new Codename One course which we've been working on for a while. We hope we'll get it done during the 3.7 era but video production is always a big effort and we just don't have enough hours in the day...

Onwards to 3.7

Version 3.7 work is already underway. We hope to get the z-ordering in native peers to work on all major platforms in this version. We think it will open up Codename One to a whole new type of application (e.g. Augmented Reality).

Our biggest wish for 3.7 is on-device-debugging but it's a big feature so it's unclear if it's something that we'll be able to deliver soon.

We Need your Help

Spread the word, please let people know about us.

Sign up for enterprise accounts, besides the huge benefits of an enterprise account these are the guys that keep the lights on here and allow us to build Codename One. If your company can afford it please take the time and upgrade to enterprise, this will allow us to work on the things that are important for your company!


Codename One 3.5

@codenameone codenameone released this Jul 25, 2016

Codename One 3.5 Heading

We are thrilled to announce the immediate availability of Codename One 3.5!

Version 3.5 is a huge release that includes the long awaited Windows Universal Platform (UWP) support and brings the new GUI builder out of beta.

Highlights of this Release


  • Xcode 7 migration - this is something we tried to do and had to walk back. It's more challenging to get this right but we hope to do this in the 3.6 cycle.
  • Demos - we didn't finish all the demos and didn't finish the most important one (Kitchen Sink). There isn't much left there though...
  • Peer Component Support - we didn't switch this on by default. We weren't able to do this for other OS's either in time for the release.
  • While we produced videos we didn't produce more of them. The production of higher quality videos is more intense and hard to fit into our schedules

Onwards to 3.6

With 3.6 we are aiming to introduce an offline build option for enterprise developers. We also have some other plans but they might stretch to 3.7.

The lowlight issues above are important to us for the 3.6 release and we'd like to improve on them.


Version 3.6 is scheduled for December of 2016. 3.7 is scheduled for April 4th 2017.


Codename One 3.4

@codenameone codenameone released this Apr 27, 2016

Codename One 3.4 Heading

We are thrilled to announce the immediate availability of Codename One 3.4!

Version 3.4 brings with it refinement and stability as its core features, this is a trend that we are very pleased with and intend to carry on to version 3.5.

Notice that you should always install the latest release of Codename One thru

Highlights of this Release

You can see the full list of changes to Codename One in the github repository.


The following are things we are still working on or failed to bring to the front for this release. We are aware of them and are working on improving them:

  • Demos - We were supposed to modernize our demos. Almost all of them still use Java 5 and old themes. None use the new material design icon fonts. This makes them feel antiquated, we hope to fix this early in the 3.5 cycle
  • Windows port - We actually made great progress on this & also posted the full source code.
    Just yesterday we posted additional good news on the subject!
    However, it's still incomplete for release and needs quite a bit of work as it is a huge task. We are making a lot of progress though and we are optimistic that 3.5 could have UWP support.
  • GUI Builder - This is the biggest failure of this release. One of our core goals was to get the GUI builder to production grade in 3.5 and we failed with that. It's much stabler but we can't call it 1.0 at this time...
    This is our highest priority right now. We will try to get the GUI builder to 1.0 well before 3.5 is ready and will hopefully release/announce it separately.

Onwards to 3.5

Besides the lowlights above which must be addressed, there are several other things we are looking at for 3.5:

  • Java 8 all the way - we will make Java 8 into the default build mode. Once that is in order we will experiment
    with "only" Java 8 mode for newer builds.
    Assuming this will work we will switch to Java 8 thru our entire stack and Codename One builtin code will be able to use Java 8 language features.
  • Videos & Even Better Docs - We will increase our video output now that our documentation has improved. We are still working on even better documentation than what we have right now. We're not ready for announcements yet but we have some interesting ideas
  • We will continue the trend of using Codename One to build everything. This trend started with the
    certificate wizard which is one of our most popular features. It continued with the new GUI builder and preferences dialog for our IntelliJ IDEA support.


Codename One 3.5 is scheduled for Tuesday August 2nd 2016. Version 3.6 is currently scheduled for December of


Codename One 3.3

@codenameone codenameone released this Jan 25, 2016

Codename One 3.3 Heading

You can read the full release announcement and details here.

Notice that you should always install the latest release of Codename One thru

Highlights Of The Release

Faster rendering of backgrounds & Labels

Up until now the logic for rendering the background of the component resided entirely within &

This allowed for a simple rendering logic that is implemented in a single place, however it didn't allow us to deeply optimize some operations in a platform specific way. We moved the rendering into which allowed us to override the logic both on Android & iOS to deliver native grade performance on any device.

Animation Manager, Title Animations & Style Animations

We rewrote the animation logic in Codename One for 3.3.

This broke some backwards compatibility but this was for a good cause as we now have a central class that manages all animation events going forward. This means that you should no longer get odd exceptions when using many animations in sequence.

As part of this enhancement we also added new animation types such as title scroll animation and the ability to animate a style object UIID.

"Remastered" Documentation (ongoing)

We are redoing a lot of the Codename One documentation from scratch with Codename One 3.3. This is ongoing and we barely just started but the new documentation is far more readable, detailed and clear. Moving forward we are confident that our developer guide, JavaDocs & videos will be in aleague of their own!

Material Design Icons

FontImage has been around for a while but up until now we didn't use it to its full extent. It required getting an icon font, configuring it and we just skipped it for some cases.

With 3.3 we integrated the material design icon font which makes adding flat icons to your application remarkably simple!

Media Playback & Geo Fencing in the Background

We continued the background process trend with 3.3 as we enabled both geofencing (to track device location in the background) and media playback in the background.

PhoneGap/Cordova Compatibility

Codename One always supported embedding HTML & JavaScript but it didn't support embedding things such as the Cordova/PhoneGap API's.

With the new open source project we announced we can now convert many Cordova/PhoneGap apps to
Codename One apps and deliver quite a few compelling advantages.

New hello world project & icon

A major focus of this release was making Codename One useful and attractive right out of the box. As part of that work we replaced the default icon, redid the hello world app to a more impressive (yet simple) demo and updated the default fonts.

New Simplified Native Fonts

Fonts were a difficult subject prior to 3.3. You could either use the portable but ugly system fonts, or go with the gorgeous but flaky TTF fonts. Both don't make sense when Android ships with the great Roboto font and iOS ships with the gorgeous Helvetica Neue font.

We now have support for a new font notation with the native: prefix. This notation (supported by the Designer), allows us to leverage the existing native fonts of the device which look both native and gorgeous.

Terse syntax enhancements

In 3.2 we started moving towards terse syntax for container hierarchy construction and with 3.3 we brought that to fruition. We added methods such as an add method that accepts an image. We added factory encloseIn methods to almost all of the layout managers, we added form constructors that accept layout managers and much more!

ParparVM Performance & Open Source

Our iOS VM has been open source from the start but we didn't encourage its usage outside of Codename One. This changed with 3.3 and we are actively promoting the ParparVM OpenSource project.

Unrelated to that we made a lot of performance improvements to the core VM translation logic, it should be very competitive in terms of generated code to pretty much everything else on the market. Especially with API calls as our entire API is hand-coded and highly optimized.

Properties file format support

We didn't have support for Java venerable Properties file format before 3.3. Surprisingly developers didn't really complain about that ommission as we support XML, CSV & JSON.

Now we can add Properties to that list!

Ending Support for the codescan API

3.3 will be the last release that includes an implementation of the codescan API for QR code/barcode reading. We will remove this API completely and we ask users to migrate their code to use the new codescan cn1lib. When we initially introduced this API we didn't have support for cn1libs and integrated this into the core directly.


Codename One 3.2

@codenameone codenameone released this Oct 23, 2015

You can read the full release announcement and details here.

Notice that you should always install the latest release of Codename One thru

Highlights Of The Release

New GUI Builder (technology preview)

The new GUI builder is a big departure from our existing designer tool. This tool is now in "technology preview" status meaning that its not quite ready for prime time but we want feedback on its direction and issues.

Local Notifications on iOS and Android

Local notifications are similar to push notifications, except that they are initiated locally by the app, rather than remotely. They are useful for communicating information to the user while the app is running in the background, since they manifest themselves as pop-up notifications on supported devices.

Introduced New Push Server Architecture

We completely overhauled the way Codename One handles push services and added several long time RFE's to the mix.

Added Ability for cn1libs To Include Build Hints

cn1libs now include the ability to include build hints thus integrate more seamlessly without complex integration instructions.

Improved iOS/Android Rendering Speed

Thanks to a community contribution we took a deep look at the rendering code and are using faster code for tiling/string rendering.

Added A Permanent Side Menu Option

The Toolbar API has really picked up, in order to make it more useful for Tablets we added the ability to keep the SideMenuBar that's builtin to it always on.

Get All Styles - Simplified Handcoding Theme Elements

getAllStyles() allows writing code that is more concise to perform an operation on multiple style objects at once.

Added Support For Facebooks "Invite A Friend"

New integration for Facebooks "invite a friend" feature that simplifies viral marketing for your app.

Terse Syntax For Building UI's

A shorter syntax for adding components and labels into the UI resulting in less code for the same functionality.

Java 8 Language Features are now on by default

We fixed many things in this implementation over the past three months and feel confident enough to switch this into the default.


Codename One 3.1

@codenameone codenameone released this Jul 22, 2015

You can read the full release announcement and details here.

Notice that you should always install the latest release of Codename One thru

Highlights of this release include

Java 8 Language Features

Support for Java 8 features such as Lambdas, try with resources etc. This is a beta grade feature but is showing great promise so far.

iOS Certificate Wizard

Simple generation of certificates and provisioning for itunes without a Mac using a wizard interface.

Authentication Framework

Provides the ability to signin to various services in a generic way including builtin support for Google, Facebook and generic oAuth 2.0 services.

Font Icons

Support for using icon fonts to represent images in the UI thus reducing the reliance on multi-images.

Better Crash Reporting

As part of migrating away from Google App Engine we shifted crash reports to use new servers which make them far more usable by embedding the logs directly into the email body.


Codename One 3.0

@codenameone codenameone released this Apr 27, 2015

You can read the far more detailed release announcement here.

Notice that you should always install the latest release of Codename One thru

Highlights of this release include:

New iOS VM

When Codename One debuted we used XMLVM as the underlying iOS virtual machine abstraction. XMLVM is an excellent product but its unmaintained and its goals are too different from the goals of Codename One. The new VM includes some features that would be remarkably hard to achieve with XMLVM such as: proper stack traces, faster builds (2x overall!), smaller code size, concurrent GC, deep OS binding (String - NSString relationship) etc.

JavaScript build target (technology preview)

Allows compiling Codename One applications to JavaScript client side webapps without server side code. Notice that this support includes threading support.
Notice that this feature will be restricted to enterprise developers once it enters beta.
The Java VM work is based on TeaVM an OSS Java-JavaScript VM.

Charts API

The charts API supports drawing a wide range of charts such as bar, pie, line etc. It supports animating charts and is based on the aChartEngine Android API.

New Demos

  • Property Cross - Browse properties for sale in the UK using a JSON webservice. Shows off JSON webservices, InfiniteScroll, URLImage etc.
  • Dr Sbaitso - Demonstrates an AI bubble chat interface, includes text to speech using native interface and more.
  • Photoshare - A simple social networking app that allows sharing photos
  • Charts - Demonstrates all chart types
  • Geoviz - Performs statistic analysis over US population based on locale specific data
  • Flickr - Demo for the Toolbar class showing special title area effects

New Themes

New beautiful and functional themes are now available through the plugins and the designer tool.
Toolbar API
More advanced and highly customizable API for handling the title area. It allows adding search to the title, animating its appearance/folding, placing commands arbitrarily and using the side menu.


Simplified image download to an icon or preview, that allows to implicitly apply special effects to said image (e.g. round corners, scaling etc.).

Built demos into the Eclipse/NetBeans Plugins

The main Codename One demos are now built-into the plugin so you can try them immediately without fixing classpaths and without downloading additional software.

New Android graphics pipeline

We rewrote the graphics pipeline on Android to work better in Android 4.x+ and use hardware acceleration where applicable. This new pipeline also includes support for the Shape & transform API's.

Regular expression and validation support

We added a new regular expression package and a new validation framework that simplifies error highlighting for input. As part of that work we also presented a rudimentary masked input UI.

High DPI Image Support

There are 3 new DPI levels in Codename One all of which are now supported by the designer: DENSITY_560, DENSITY_2HD & DENSITY_4K.

Support for opening HTML files with hierarchies & Tar support

The builtin HTML support was improved by providing a way to open a hierarchy of files and not just a self contained HTML file. As part of this improvement we also added support to the tar file format.

New Morph & Flip Transitions

The morph transition was inspired by the Material design UI, converting a component on one form to a component on another form. The flip transition provides an impressive 3d effect thats trivial to apply to any form or transition.


A new "modless" dialog that can "float" on top of the UI using the layered pane capability of the parent form

Significantly enhanced developer guide

We redid the developer guide from the ground up converting it to asciidoc and integrating it into the website in a more fluent way. We increased its breadth by over 50%.

iOS Beta Test Support (testflight)

Apple introduced a new way to test mobile applications for up to 1000 beta testers based on the testflight framework (but not to be confused with the old product). We now support distributing apps via this process for pro users.

MiG layout support

MiG layout is one of the popular cross platform Java layout managers that works across FX, Swing, AWT and now on Codename One as well...

Facebook improvements such as publish support & version 2.0 API

Facebook made a lot of changes to its API such as requiring a special publish permission and migrating graph calls to version 2.0. Both are now integrated into Codename One.

Added webservice wizard to simplify client-server calls

The webservice wizard allows us to generate RPC calls to the server including servlet and client stubs.

Support for badging the native OS icon on iOS

We now support updating and setting a badge on an app icons in iOS devices.

TCP socket support

We finally added support for TCP sockets into Codename One.

Advanced keyboard input in iOS that doesn't fold implicitly

This is an implementation of a feature that was requested quite a while back. Historically, when moving from one text field to the next the VKB would fold and reopen. We now allow you to seamlessly move between input fields.