Latest posts from Codename One.
Blog

Questions of the Week XIII
This has been a remarkably busy week for us trying to get the final bugs and features ready for the 3.5 code freeze and the work we are doing on peer components etc. All the while the summer vacation is on it’s way and it’s already pretty hard to get any work done. This weeks release doesn’t contain any major changes, it’s mostly a bug fix release update. ...

Preparing for 3.5 & Offline Builds
We are preparing for the 3.5 code freeze which should go into effect on July 26th. We are still not sure about the full set of features that will make it into 3.5 as the release is pretty close by now. However, we already have some cool tentative plans for 3.6 and beyond that we are already sketching out. Unless there are major regressions we’ll deliver 3.5 on August 2nd and 3.6 on December 5th. At this time version 3.7 is planned for April 4th 2017 and 3.8 for August 1st 2017. ...

Peering Revisited
I blogged about peer components all the way back in 2014 trying to explain basic facts about their limitations/behaviors. A lot of those limitations are inherent but over the past year or so we’ve been thinking more and more about the z-order limitation. As part of that train of thought I filed this issue with a few suggestions about working around some of those limitations. I think these approaches would work really well on iOS which from my experience is more “amiable” to such hacks. Android is a different beast though. Android’s rendering logic is a weird hackish nightmare filled with bugs and lore… ...

Device Tester
A common issue we get from developers relates to minor differences between devices which are often very hard to quantify. They are also very hard to explain to the developers in some occasions. One of the biggest points of difficulty is density which is a very hard concept to grasp and it’s often hard to know which image will be used from the set of multi images or how many pixels will be used for 1 millimeter. ...

Compare Thru Property Cross
We just updated the QT and Xamarin comparisons to Codename One that we did a while back. Those comparisons now include a property cross comparison section. Property Cross is really valuable for comparing the differences between various cross platform development solutions and Codename One has the smallest implementation (in terms of lines of code) by far! Our implementation is also quite superior in some other ways providing features such as infinite scrolling instead of simple paging etc. ...

Questions of the Week XII
June just ended and we are starting the final stretch to get 3.5 ready, there is a lot on our table right now so most of the work in the coming month will probably focus on stabilizing the GUI builder and fixing the remaining issues for 3.5. One thing we pushed to todays release in the last minute is a new API called: Toolbar.setCenteredDefault(boolean). This was triggered in part by a stackoverflow question below but is a recurring theme. The Toolbar used to center it’s title thru the alignment style, which is problematic as it isn’t centered relatively to the commands on the sides. We now center it properly but this might not be what you want so you can disable this functionality by calling Toolbar.setCenteredDefault(false);. ...

Charts Demo Revisited
The charts demo is one of the most elaborate/messy demos we have as it was derived/ported from an aChartEngine demo. Since the Codename One charts are themselves a derivative of aChartEngine this makes a lot of sense but the demo is a bit big and hard to follow. However, it does show off a lot of the chart types that can be created using the charts package. As such it is a very valuable demo… ...

ToastBar Messages
The ToastBar was one of those API’s I didn’t know I needed and yet I became addicted to it… Ever since Steve came out with the ToastBar I constantly catch myself typing Display.show only to delete that to use the ToastBar. It’s both really easy to use and more consistent with modern mobile UI design. As a replacement for Dialog it really needed the static “show methods”, so we added a simpler showErrorMessage which combined the ToastBar with the material font icons to create a proper error message. This allowed us to show an error message with a single line of code, but these things shouldn’t be used only for errors which is why we just added two new static methods: showMessage(String msg, char icon, int timeout) & showMessage(String msg, char icon). ...

Comparing PhoneGap/Cordova and Codename One
Last time around we compared Codename One to Xamarin and this time around I’d like to compare Codename One to what is probably the market leader: PhoneGap/Cordova. If Xamain is big then Cordova is huge, it is so prevalent that it is often the default assumption when people mention cross platform today. In fact, one of the big problems we had when describing Codename One was distinguishing it from HTML5 based solutions like Cordova. ...

Synchronous InfiniteContainer
InfiniteContainer and InfiniteScrollAdapter revolutionized the way we think about Codename One. Up until their introduction we advocated lists for large sets of components and this is no longer the case. However, InfiniteContainer has a controversial feature even within out team. It violates the EDT on purpose … InfiniteContainer allows you to “fetch” data dynamically into the container as the user scrolls down. The definition of “fetch” is problematic though. Up until now the fetch method was invoked in a separate thread. This was documented in the class but it is pretty problematic as the method returns an array of components. ...

Unleading & Mutating Accordion
We covered the new Accordion component last week and just started using it in a demo for which it was very suitable. As we were working with it we discovered that it was missing some core methods to remove an Accordion entry or change it’s title. But worse, was the fact that a delete button in the title wouldn’t work! The crux of the issue is in the fact that lead component doesn’t support excluding a specific component within the hierarchy from it’s behavior so we set about to fix that… ...

Questions of the Week XI
We just released an updated set of plugins with many bug fixes and enhancement mostly revolving around the new settings UI but also a lot of the functionality required for proper Windows UWP support… This has been a very busy week for us although most of the stuff we did was “under the hood” and not as visible as some of the previous weeks. We are also fast approaching the 3.5 release due this August so hopefully we can get our ducks in a row to create another compelling release. ...