Latest posts from Codename One.
Blog

Important: New Sign-In Behavior
Today, we are finally integrating the new Single-Sign-On to most of our tools. This means that you will need to create a new account using the login button in this site in order to use Codename One from now on. To make the migration easier, we tried to keep the existing login working as much as possible with the one notable exception of password reset which is no longer wired. So if you lose your password, you would need to migrate. ...

New Website, SSO & Payment Processing
Welcome to our new website. There are a lot of things that are still being worked on so please bare with us and let us know ASAP when something is broken. Comments are still disabled in the current site but we’ll import them and turn them on in the next few weeks. With the new website we’re migrating to a Single Sign-On solution based onKeycloak. This means login for this website will go through that system. Right now it’s disconnected from our existing Codename One Build login but we intend to unify everything under Keycloak and your account would merge seamlessly (assuming you used the same email address). ...

HELPBUTTON COMPONENT
This is the second is a series of blog posts hightlighting some of the components available in the CodeRAD cn1lib. The first post (or series of posts) introduced the RAD Chatroom component, a rich 2nd order UI component that encapsulates the user interface for a fully functional chat room. __ A second-order UI component is a complex UI component, usually composed of multiple basic components, which is designed for a specific type of application. Some examples of second-order UI components are login forms, contacts lists, chat room components, news lists, etc.. In this post I share a much simpler, first-order component: The HelpButton. The HelpButton is just a button that displays a “Help” or “Error” icon. When the user clicks on this button, it pops up with some “help” text. ...

NEW TESTRUNNER COMPONENT
A while back we added a new TestRunnerComponent that provides a visual UI for running unit tests inside an app. Sometimes, while I’m developing unit tests, I find it easier to write them inside a regular app project instead of in the “tests” directory. This allows me to debug the unit tests in the IDE more easily, just like I debug regular apps. The TestRunner component makes it simple to do this. ...

SMARTER, FASTER RENDERING
We’ve recently added some new display settings, and a new method, revalidateLater(), which can significantly increase your app’s rendering throughput in some cases. Before I get to the specifics of these changes, let’s review how UI rendering works in Codename One. The Codename One UI rendering can be broken down into two phases: Layout – Calculating the bounds for each component on the screen, and “laying” them out. Painting – Actually drawing each component. Generally you only want to run the “layout” step when the layout has changed. This would include when components are added or removed from a Container, or when a component’s bounds or position has changed. ...

New Website Launch
Important update below. After a very long journey we will launch the new Codename One website on October 2nd. Since this will only deal with the website itself most things should still work as they did before. Thanks to the cloud dashboard the migration shouldn’t disrupt any users and should be 99% superficial. __ The launch will be delayed tentatively to October 9th but possibly even later One thing that might be impacted are website comments which we will need to migrate to a new system. Initially the new website will launch without comments which we will need to re-integrate. ...

Removing Old Dashboard
We announced a while back that we’re working on a new website. This work was 90% complete but we decided to scrap it in favor of a complete rewrite of the site. That means some links might break and some functionality might be impacted but this is a crucial change for the continued growth of the company. One thing that we plan to remove entirely is the old dashboard. It will be removed on September 18th in favor of the build cloud. Please let us know of any missing features or problems so we can address them in time for the migration. ...

Security Issues of Cross Platform Tools
A couple of weeks ago I answered a question on Quora about the security of cross platform tools. I try to rise about my confirmation bias when discussing these things. I won’t discuss Codename One in this context or any other specific tool. Only general ideas. Security depends a lot on the tools involved and their level of support for security features such as certificate pinning, storage/db encryption etc. Some tools also store the code of the app as plain text or obfuscated scripting code which is still fully readable, this can have a serious impact on security. ...

Moving to API Level 29 and CEF Update
Steve just updated our CEF support which should now work on all platforms. We updated the original post with additional information. We’ve also updated the build servers to use API level 29 on Android. The API level change should be seamless to most of you but might impact some edge case functionality and cause some native/cn1libs to fail in odd ways. So be sure to do extra checks on Android when building a new release. ...

New Settings UI
With today’s update we’re releasing a design overhaul for the settings (preferences) application. This overhaul will improve the look and reliability/consistency of this app which is core to Codename One. During this transition period we also have the ability to go back to the legacy UI for 100% compatibility but it will be removed. Common important features such as “Update Client Libs” are now available in the menu on the top right of the UI. The currently logged in user isn’t listed in the UI only in the about dialog. For most of the UI it doesn’t matter as much since we don’t change as much as we used to. E.g. we now let everyone create a push certificate. This is a pre-cursor to enabling push for everyone with a very low quota for free/basic users. ...

Big Changes and CEF
Today we released one of the biggest changes to Codename Ones simulator in ages. We added the ability to use CEF (Chrome Embedding Framework). This is currently off by default but even if you don’t use it you might feel the impact so it’s crucial that you read this post. __ Updated July 31st with additional platform instructions below __ Updated August 2nd with correction to the Linux install script __ Updated August 4th with another correction to the Linux install script The TL;DR The big change for those of you who don’t care about the details is this: FX will no longer install automatically if it’s missing. That might be a good thing for some applications. But if you rely on media/web things might break in the simulator/debugger. ...

Diagonal Badging
Recently I got a question on stackoverflow about doing a diagonal badge that’s actually quite similar to the one on our website. This isn’t hard to do in Codename One but it requires a bit of tinkering so here’s how you would implement that. As a matter of fact the original code I provided in the answer had a bit of a misbehavior which I’m fixing for this blog post so everything will look correct: ...