Open Source & Free ❤️

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

Exif Orientation Tag and Smart Downloads

On some devices, Capture APIs return images with the correct orientation, meaning that they do not need to be changed to display correctly; on other devices, they return images with a fixed orientation and an EXIF tag that indicates how they must be rotated or flipped to display correctly. More precisely, the Orientation Tag indicates

Dark Mode

We recently added support to detect whether a device is running in dark/light mode based on this issue. Some of the code in the implementation is also derived from that issue submitted by Javier. Detecting Dark Mode Dark mode can be detected using APIs in the CN and Display classes. Specifically isDarkMode() and setDarkMode(Boolean). Notice

Moving Away from Java FX

Codename One itself never depended on JavaFX. This kept us small and performant. However, we need JavaFX to support HTML and media in the simulator and on the desktop ports. This was a choice we made easily back in the Java 8 days. JavaFX was integrated into the official JDK and this was an easy

Samsung Lowers Resolution Randomly

A few weeks ago we got this question on stackoverflow. At first I didn’t think this issue was special…​ But as the investigation continued it became clear that we’re facing a weird issue…​ The issue started innocently enough. A device whose native resolution is high was rendering the UI in low resolution. This can happen

RAD Chat Room – Part 5

This is part 5 of the RAD Chatroom tutorial. You can find part 1 here, part 2 here, part 3 here and part 4 here. Adding A Photo Capture Feature Most messaging applications include the ability to add photos to messages. Let’s add this feature to our chat app now. First we’ll define a new

RAD Chat Room – Part 4

This is part 4 of the RAD Chatroom tutorial. You can find part 1 here, part 2 here and part 3 here. Adding More Actions So far we’ve implemented the basic requirements of a chat room. It can display messages, show particpants, and it allows users to send new messages. Now let’s go a step

RAD Chat Room – Part 3

This is part 3 of the RAD Chatroom tutorial. You can find part 1 here and part 2 here. Adding Text Messages from Other Users Our current example only includes messages that the current user posted themself. I.e. We only have chat bubbles on the right-hand side of the view. Let’s add some more sample

RAD Chat Room – Part 2

This is part 2 of the RAD Chatroom tutorial. You can find part 1 here. Adding a “Send” Button A “Send” button is a pretty important part of any chat application. We’ll add a send button to our app by defining an action in our controller, and passing it to the ChatRoomView as follows. First

RAD Chat Room – Part 1

This tutorial describes how to use the RADChatRoom library to quickly and easily add a nice-looking, fully functional chat room to your Codename One application. This is part 1 of a multi-part series of posts over the next few weeks. The finished product will look like the following: You can download the full source of

Thread Errors

I wrote before about EasyThread which makes it much easier to write multi-threaded code in Codename One. One problem in that scenario was the inability to define a generic exception handler for that scenario. With the current version of Codename One we now have a new generic error handling API for easy threads: public void

Xcode 11 is now the Default

We hope you’re all keeping safe! We announced a couple of weeks ago that we’re moving our build servers to use xcode 11.3 by default. As a recap, Apple requires a new version of xcode/iOS SDK for apps submitted to the appstore. As a result we had to update the version of xcode on our