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
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
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
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
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.
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
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
I promised 2 new course modules for February and just published the first one. It covers the process of building a Codename One app from the Codename One source code. The whole process is done without using the Codename One plugin or build servers. It uses only open source project code to deliver iOS/Android & desktop binaries!
You can check out the full module in the Deep Dive into Mobile Programming course in the academy.
A few weeks ago I announced the xcode 9.2 mode and was rather happy that we can take our time with the migration. Unfortunately, that wasn't meant to be. Apple will require all new submissions to use xcode 9 within the next few months so it makes no sense to keep 7.3 as the default. This weekend we will flip the switch and builds will default to 9.2.Read More
When it comes to big changes this is pretty huge but surprisingly "subtle". This weekend we'll release a new plugin update that will completely replace the update process of Codename One and a week after that we will start nagging you to update your plugin so we can all be on the same page. This is a HUGE change as we didn't change anything about the update process since 2012. But the cool thing about it is that you might not notice it...Read More