Codename One v3.8 Release Notes

Release Date: 2017-11-14 // over 2 years ago
  • Codename One 3.8 Heading

    🚀 We are thrilled to announce the release of Codename One 3.8. Codename One is an open source "Write Once Run Anywhere" mobile solution for Java developers!
    🚀 This new release significantly refines the native look and feel of Codename One, it brings the GUI builder to a new level with styling support. It finally adds Mac OS appstore distribution support which means all the major appstores are now supported targets for Codename One applications.

    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)

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

    🚀 As part of the release we significantly refined our developer guide which is now also available in print form on Amazon. Notice that this guide is available for free here & in pdf format. This developer guide is a community effort which you can contribute to as explained here.

    🚀 Highlights of this Release

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

    5 Amazing Features in Codename One 3.8

    • 👌 Improved Native Look & Feel - We changed the core look of buttons, labels, text components, ripple effect and more. The goal is to make Codename One applications indistinguishable from native OS apps out of the box

    Before: Codename One 3.7 on Android

    Codename One 3.7 Text Input On Android

    After: Codename One 3.8 on Android

    Codename One 3.8 Text Input On Android

    👍 Kotlin Support - Kotlin is now officially supported by Codename One and works out of the box

    On Top Side Menu - The on top side menu adapts the side menu UI to render on-top of the application instead of below but it's really a complete rewrite of the old SideMenuBar which was implemented in a problematic way. The new on-top mode works better with native peers such as maps and can be extended more easily

    🏗 GUI Builder Styling Support - There are a lot of enhancements and refinements in the new GUI builder one of the big ticket features is the new style UI which allows you to style an element without leaving the GUI builder

    👍 Mac OS Appstore Support - We now support building signed Mac OS apps which means we now support all the major vendor appstores. We already support iOS/Android stores and Windows/Microsoft's store (via the UWP port). The Mac appstore was the last major vendor whose store we didn't support out of the box

    🚦 Signal Handling & Fast UTF in ParparVM - ParparVM is our open source iOS VM. It now handles low level OS signals to catch illegal access and convert it to Java exceptions. This means performance is slightly better but more importantly: you can catch errors even when they originate from native code. We also made significant improvements to the UTF-8 decoding logic which should make apps that rely on localized data faster and more memory efficient

    Theme Enhancements - We added many new capabilities into the Codename One themes specifically: Fractional padding/margin, Rounded border, Underline borders & more

    Table Sorting - You can now sort a table by clicking on the column header

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


    🚀 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 - this was planned before for 3.7 but didn't make it. We have a running proof of concept but that also highlights the amount of work needed to bring this to production grade. We didn't think it will make it for 3.8 and I'm not optimistic about 4.0 with our current workload. We think this will be a great enhancement but right now we think theming is more important

    👌 Improved default themes & material design - we made huge strides in this area but we are still way behind and our demos still don't reflect the progress we made. Hopefully by the time 4.0 rolls around we'll be in a different place entirely

    🏗 Theme & Localization - Steve added some better theming to the new GUI builder. We think we can improve on this further and generally improve theming. Localization is something that regressed a bit from the old GUI builder which allowed for great automatic localization. We need something more "seamless" in this department

    Onwards to 4.0

    🚀 We have way more time for the 4.0 release so we can probably fit in more things than we did in 3.8. One of the difficulties in 3.8 is that a lot of the time between 3.7 and 3.8 was spent in summer months that are less productive. We fully expect 4.0 to be far richer in terms of features.

    By the time 4.0 rolls around we should have two new major demos/tutorials in the Codename One Academy.

    • 💅 The Uber style application
    • 💅 A social network style application

    💅 We've already laid some ground work for the Uber style app and we plan to push it out before the end of the year. This continues the 3 major trends we are trying to drive:

    • 👍 Better design
    • 👍 Better docs
    • More "ready made templates"

    👀 Another big focus which we'll see in 4.0 is quality and continuous integration. Our QA process is now open as part of our continuous integration support. We are now running automated tests of all our commits on device farms which should make future versions of Codename One far more stable.

    We Need your Help

    We got a record number of community pull requests during the 3.8 timeline, that is fantastic!

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

    Spreading the word

    📄 Edit our docs

    🛠 Edit our sources and submit bug fixes

    ⬆️ Or just sign up for enterprise accounts which literally keep the lights on here... 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!

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

    🚀 Notice that this is a copy of the release announcement here: