Fork us on GitHub

Codename One 4.0 "Taxi" is now Live

We are thrilled to announce the immediate availability of Codename One 4.0 - Taxi!
Codename One 4.0 "Taxi" is now Live

Codename One 4.0 "Taxi" is now Live

We are thrilled to announce the release of Codename One 4.0 - Taxi. Codename One is an open source "Write Once Run Anywhere" mobile solution for Java & Kotlin developers!
This new release overhauled the way Codename One is updated, added support for Progressive Web Apps (PWA’s), overhauled device skins & updated the backend iOS build tools. A major focus of this release is better support for peer (native) components, stability, unit testing and continuous integration.

Codename One is the only platform that…​

  • Has Write Once Run Anywhere with no special hardware requirements and 100% code reuse

  • Compiles Java or Kotlin into native code for iOS, UWP (Universal Windows Platform), Android & even JavaScript

  • Is Open Source & Free for commercial use with an enterprise grade commercial support

  • Is Easy to use with 100% portable Drag & Drop GUI builder

  • Has Full access to underlying native OS capabilities using the native OS programming language (e.g. Objective-C) without compromising portability

  • Has full control over every pixel on the screen! Just override paint and draw or use a glass pane to draw anywhere…​

  • Lets you use native widgets (views) and mix them with Codename One components within the same hierarchy (heavyweight/lightweight mixing)

  • Supports seamless Continuous Integration out of the box

To learn more about Codename One check out the about page you can download it for free right now.

Version 4.0 is nicknamed Taxi because of the Uber Clone application that was developed with it for the online course in the Codename One Academy.

Uber sidemenu next to the clone
Figure 1. Uber sidemenu next to the clone
The Uber login form next to the clone
Figure 2. The Uber login form next to the clone

Highlights of this Release

The top 5 features of this release are covered in this short video, check out further details below…​

  • Progressive Web App Support (PWA) - Progressive Web Apps allow us to try an application on the web and seamlessly transition to a native app. This makes user acquisition easier and installation frictionless. Codename One is the only tool in the world that supports PWA’s seamlessly

  • New Device Skins - We updated the look of Codename One by releasing 33 new device skins including iPhone X & Pixel 2 XL. We included support for non-rectangular device skins and better device fidelity. We also added the ability to grab a screenshot that includes the skin frame around it

  • Xcode 9.2 - Codename One apps are built using xcode 9.2. This change is seamless for most developers as the update happened on the build servers. Xcode 9.2 requires additional permission messages which are added automatically by the simulator

  • Update Framework - Updates to Codename One libraries are now delivered using a unified framework instead of separate adhoc tools

  • Continuous Integration Support - We now support Travis CI out of the box seamlessly. Adding support for additional CI tools should be just as easy

  • New Async JavaScript Interop API - The Java → JavaScript bridge with the embeddable browser component was completely replaced. The new implementation should be faster than the old system

  • Builtin Unit Tests - Unit tests to Codename One are integrated into the core repository and are executed with every commit

  • Improved Peer Components - Multiple bugs and minor issues were fixed in the peer component layer this effectively enabled the Uber clone to work properly with the native map

  • Better Hello World - The new Codename One projects generate better code that handles things such as network errors more effectively

  • GUI Builder Refinements - There were many refinements to the new GUI builder most notably:

    • Improved support for layout nesting in auto-layout mode - you can use all the existing layout managers within an autolayout parent

    • New Window Manager allows you to customize the positioning of the windows & palettes

    • Tabs component is supported again

  • Test Push In the Simulator - The simulator now supports testing push notification

There are many other features both big and small. Check out our blog and the github project history.

Lowlights

As we always do with a release we’d like to shine a spotlight on the things this version could do better and the things the next version can improve. Overall we are thrilled with this release but here are a few things we can do better:

  • On device debugging - I wasn’t optimistic about getting this out for 4.0 and I’m still not optimistic about 5.0. We already have a lot on our plate for 5.0 and this is a huge feature

  • Improved default themes & material design - we did a lot of work on the skins but didn’t move the native theme or make a separate material design theme. We need to do a lot of work on the default hello world applications to make them look great out of the door.

Overall while we implemented a lot of features in 4.0 we didn’t really address most of the problems we highlighted in this section when 3.8 was released. I’m not sure if we have enough time in the 5.0 cycle to improve that but hopefully we can at least move theming more aggressively again.

Onwards to 5.0 - Social

The 5.0 release cycle is relatively short & we already have a lot of things planned for it.

We should have the new social app tutorial in the Codename One Academy which will cover cloning Facebook.

Check out our survey results to see the future apps we’ll release into the academy. Even if you never plan to signup to the academy this should be interesting as it gives you a good notion of what can be built with Codename One.

Other than that we’ll try to launch better docs and designs. We’ve put a lot of effort into improving our design capabilities and one of the big things we’d like to pick up again is app templates. In the past we released a few free themes as Codename One stubs. We’d like to do that again so developers can start from "something".

We Need your Help

If you think we are doing a good job and appreciate our help please help us by:

Thanks for reading this far and if you have any thoughts/suggestions of any kind please let us know!

Share this Post:

Posted by Shai Almog

Shai is the co-founder of Codename One. He's been a professional programmer for over 25 years. During that time he has worked with dozens of companies including Sun Microsystems.
For more follow Shai on Twitter & github.