Codename One v6.0 Release Notes

Release Date: 2019-02-27 // 6 months ago
  • Codename One 6.0 - Chat

    πŸš€ We are thrilled to announce the release of Codename One 6.0 - Chat. Codename One is an open source "Write Once Run Anywhere" mobile platform for Java and Kotlin developers!
    πŸš€ With this release we introduced Codename One Build which is one of the biggest overhauls to the Codename One workflow since its inception. We also refined and updated many underlying technologies e.g. the xcode 10.1 migration, WKWebView support, push replies, badges on Android and much more.

    You can check out the details below for the full review but first if you are new to Codename One here’s a short primer. 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 6.0 is nicknamed Chat because of the WhatsApp Clone application that was developed with it for the online course in the Codename One Academy.

    πŸš€ 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 6.0 - Chat

    • πŸ— Codename One Build - we can now monitor builds from Android and iOS. The app is also available for every device through web PWA. It works with push notification and is built with Codename One!

    NOTE: Currently the iOS version is still in beta due to the tedious appstore approval process

    xcode 10.1 Migration - builds on the Codename One cloud implicitly use xcode 10.1. We migrated from xcode 9.2 to satisfy Apples requirements, this has been seamless for the most part

    VM Changes - we now support java.util.Objects and some additional methods from Class

    πŸ†• New Switch API - Switch replaces the old OnOffSwitch API which is pretty old by now

    Reply Push Notifications - the final piece of RFE 2208 Rich Push Notifications is now implemented. You can now prompt a user for a reply via a push message

    πŸ‘Œ Support for Badges on Android - we can now mark an Android icon with a numeric badge

    Material Design Infinite Progress - InfiniteProgress now has a material design mode that includes the custom circle animation we see in material design

    πŸ‘ WKWebView Support - Apple includes two implementations of a "WebView". We now support both

    CSS Improvements - underline border is now supported natively. Round rectangle is also supported natively and lets you activate the angle only on specific corners as per this RFE

    Picker Improvements - Picker now lets you define start/end date

    FontImage rotateAnimation - FontImage lets you animate an icon so it rotates infinitely effectively making every component into an InfiniteProgress

    βž• Added Ownership to Component Hierarchy - ownership allows us to create a relationship between components other than Component -> Container

    βž• Added Animation Safe Revalidate - revalidte() is a powerful tool but if it's invoked when an animation is in progress it might produce unpredictable behavior. This method solves that problem

    Button Lists - List is discouraged but we still want lists that use a model to represent buttons, radio buttons and checkboxes button lists can fit in that niche

    XML Mapping in Properties - this is still an experimental feature but XML parsing/generating is now supported for PropertyBusinessObject

    PWA Install Prompt - a new API lets us install PWA's directly

    πŸ†• New Full Screen API - the Desktop and JavaScript targets allow running the app in full screen mode by leveraging this new API

    ⚑️ Facebook SDK Updated - we updated the Facebook SDK to use the latest version

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

    Onwards to 7.0 - Video

    πŸ‘€ We took a lot of time for 6.0 but I'm not sure if that's enough. We might take longer to deliver 7.0. Currently the timeline is unchanged but we'll have to see.

    πŸš€ We will have a Netflix clone tutorial in the Codename One Academy. Hence the moniker of the next release.

    We Need your Help

    πŸ‘· 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!


Previous changes from v5.0

  • Codename One 5.0 - Social

    πŸš€ We are thrilled to announce the release of Codename One 5.0 - Social. Codename One is an open source "Write Once Run Anywhere" mobile platform for Java and Kotlin developers!
    πŸš€ We postponed the release of this version since it's so packed with big changes. We made CSS a first class citizen in Codename One and made CSS updates live (no recompile necessary). We moved from screenshots in iOS launches to storyboards. Added support for newer JDK's. Migrated to Android API level 27. Moved our entire build server infrastructure. Redid push notification and so much more...

    There is SO MUCH more, check out the details below.

    However if you are new to Codename One here's a short primer. 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 5.0 is nicknamed Social because of the Facebook Clone application that was developed with it for the online course in the Codename One Academy.

    πŸ‘― Facebook Native App vs. our Clone

    πŸš€ 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 5.0 - Social

    ⚑️ Live CSS Update -- CSS is now deeply and seamlessly integrated into Codename One. When you change the content of a CSS file and save the Codename One simulator automatically updates on the fly

    Rich Push Notifications -- Push notification was overhauled, we moved the last of the functionality from GCM to FCM. We now support rich push notifications that can include images and complex functionality

    Launch Screen Storyboards -- Historically iOS used screenshots of apps to fake fast application launches. Codename One automated that process in the past, it's now discoraged by newer iOS features such as side-by-side multi-tasking. As such we now use storyboard launch files. This allows side-by-side multi-tasking and as a bonus speeds up compilation while reducing the app size further

    πŸ†• New JDK/OpenJDK Support -- We now support JDK's 8 to 11 this includes OpenJDK

    πŸ†• New Cloud Servers -- We migrated the last remaining Codename One servers off of Google App Engine. This allowed us to introduce great new features such as the ability to increase your free build quota

    βœ‚ Removed Old IDE Preferences UI -- The old right click IDE preferences UI was causing a lot of confusion due to lack of maintenance. It's now gone and replaced completely by Codename One Settings

    Android API Level 27 -- We moved to Android's API Level 27 by default. Since Google requires API level 26 or higher at this time. We'll probably update API levels faster due to this policy

    Lightweight Picker -- The Picker component was rewritten as a lightweight component instead of a native one. This allows far more customization and cross platform consistency for one of our most problematic widgets

    Low Level Camera API -- Camera Kit allows developers to access the native camera view to grab photos/videos and overlay graphics on top of the camera

    πŸ”Œ Pluggable Spatial SQLite -- Spatial support for SQLite lets developers write complex location based applications. This functionality lets developers replace the existing native SQLite implementation with an arbitrary implementation which is very useful for enterprise grade features such as deep encryption, replication etc.

    πŸ‘Œ Improved Map Layout -- The map API now includes a native high performance component layout built in

    Landscape UIID's -- Components can adapt their UIID to landscape, this enables features such as smaller title font/padding in landscape mode

    Multiple Smaller Improvements :

    DateUtil API for timezone related date functions

    Sidemenu right side option and new tab ordering API

    Ability to map a list of property business objects to a table

    Sendgrid cn1lib

    Rest API overhaul for error handling, properties etc.

    🌐 On-device webserver

    🌐 Auto-reconnect for websockets

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

    Onwards to 6.0 - Chat

    πŸš€ We took a lot of time for 5.0 and I'd like to take a similar duration for 6.0. I think this made 5.0 a better release.

    πŸš€ We will have a whatsapp clone tutorial in the Codename One Academy. Hence the moniker of the next release.

    πŸš€ 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.

    We Need your Help

    πŸ‘· 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!