Post Image

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 and 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.

Read More
Post Image

Survey Results (2018) Upcoming Apps

I already teased about the surprises I got from our annual survey results and there are still quite a few surprises but as more people filled out the survey some of the big surprises tamed and a lot of interesting results emerged. I also found the comments very interesting so I'll go over the numbers/comments and provide my thoughts. If you think I misinterpreted the results please let me know...

Read More
Post Image

Codefreeze for Codename One 4.0 - Taxi

Codename One 4.0 (Taxi) will launch next week, to keep the code stable we are entering a week long code freeze. Please update your plugin installs frequently and report bugs immediately so we will have a stable release!

Read More
Post Image

Map Layout Update

A while back I introduced a MapLayout class as a tip and discussed the usage of this class. Since that introduction we ran into some scale issues as the layout misbehaved when a lot of elements were added to it. The crux of the issue is in the native map API which runs on the OS native thread and the Codename One API which needs immediate responses for layout.

Read More
Post Image

New Default Code

This is new behavior that went in without fanfare. If you created a new hello world app you might have noticed this. We changed the default boilerplate for Codename One and made it more representative of what you'd want to see in a hello world app.

Read More
Post Image

TIP: Include Source with Android Studio 3.0

I covered the include source feature extensively. For the most part it's the simplest way to debug an application directly on the device. When I made that video the current version of Android Studio and Gradle were much older. We still use API version 23 on the build servers to keep everything compatible but you might want to use a newer version of the IDE.

Read More
Post Image

Updated 4.0 Release Date

Last week I mentioned we are considering postponing the release planned for next week. We eventually did just that and the release is now scheduled for the 20th with code freeze on the 13th. So far we didn't change future release dates but there might be a cascading effect. As I explained before, this is an inevitable result of the migration to xcode 9.2 which is something we need to stabilize before the release.

Read More
Post Image

Tune Performance, Profile on Devices in Latest Academy Update

I promised 2 new course modules for February and just published the second one. In case you don't recall I discussed the first one here and it covered building Codename One applications from the open source code.
This new module goes through seven lessons that cover everything you need to know when building a performant app. It covers everything from generic performance tips/analysis all the way to profiling and a case study. You can check out the full module in the Deep Dive into Mobile Programming course in the academy.

Read More
Post Image

TIP: Streams are Observable in Codename One

We got a pull request the other day that reminded me of some hidden functionality in Codename One that most developers aren't aware of: observable input streams. By default Codename One API's try to return BufferedInputStream and BufferedOutputStream instances from our internal API's. Those classes aren't the typical java.io versions but rather ones from the com.codename1.io package.

Read More
Post Image

Preferences Binding and getAndSet()

I added support for binding a property object to `Preferences` a while back and just didn't have the time to blog about it. I didn't consider it too crucial as the functionality is very simple to figure out, the only difficult part is knowledge of the features existence.

Read More