Latest posts from Codename One.
Blog

SQL Demo Revisited
The SQL demo has been on my “todo” list for months. It’s really hard to create a compelling demo for something as boring (by design) as SQL so this was a big procrastination target. After we built the SQL explorer tool for the developer guide it became apparent to me that this could be the basis for the new SQL demo, just provide the ability to type in arbitrary SQL and see it work… ...

Template – Clean Modern Cross Platform Mobile UI Kit
In the previous template post I introduced a material design inspired theme. This time the theme I chose is simpler “cleaner” but not necessarily easier to integrate. I’ve had quite a few difficulties wrestling with Photoshop oddities (bugs?) that made this template painful, hopefully I’ve narrowed down the process enough so this should become easier. The PSD I chose this time is the Clean Modern UI Kit which is heavy on background images and a minimalist on all other aspects. You can check out the full git repository of the work here. ...

TIP: Don't Use ComboBox
We previously discussed the problems with List and somewhat neglected ComboBox which is a subclass of List. ComboBox has the dubious “honor” of deriving most of the problems List has and adding a slew of its own problems such as two separate renderers, different behaviors between OS’s etc. In addition mobile OS’s don’t really have a ComboBox in their native UI arsenal. E.g. iOS has no native ComboBox support. When web code has a select entry that needs to show a ComboBox Safari shows a UI specific to it and launches a spinner for interaction. ...

Questions of the Week XXVII
This has been a REALLY busy week. We had to release an emergency plugin update during the week to workaround a critical issue in the previous plugin update. This was pretty hard! To make things extra difficult we had two huge blog posts that I’ve worked on launching, the code itself wasn’t such a big deal as is all the hassle around them e.g. appstore submissions are never fun especially when traveling… ...

MSUIKit Template Inspired Changes
There was much left unsaid about the template UI that I did earlier in the week. It was doable & reasonably easy but I still had some pitfalls. I was able to circumvent them easily but I’m not so sure these would have been easy for other developers out there. As a result we decided to simplify some use cases in Codename One as a result. I chose to separate these to a different post as most of the subjects here will be resolved in the next update, but the template post would probably still be useful when this post becomes history… ...

How to: Port Native Android App to iOS (iPhone) Guide
We get contacted quite a bit about the prospect of porting applications that were already written using the Android API. In this quick tutorial we will walk you thru the paces of converting a simple Android application to a Codename One application. We will also start with some basic tips covering the differences between Android & Codename One development. How does Codename One Differ from Android Development? Codename One allows Android developers familiar with Java to instantly build native applications for Android, iOS, Windows and other platforms. ...

Template – Mobile Material Screens UI Kit (Cross Platform PSD)
Generating a template from a PSD isn’t hard but it isn’t a trivial task either, in this recurring segment I will try to generate good looking Codename One templates from freely available PSD files. Since this requires some effort I don’t think I’ll be able to keep this as a weekly segment but I’ll try to post such a template once every two or three weeks. If you know of a free PSD that you’d like to see as a Codename One app point me at it in the comments and I might integrate it in a future post! ...

Tip: Disable Google Play Services
Google Play Services is a proprietary set of tools that Google licenses to vendors under limited conditions. In recent years more and more features go into Google Play Services making it harder to build an app without it. In our effort to “do the right thing” we include some of the Google Play Services tools into applications to remain compatible with code that requires these libraries. This also makes some features (such as location) work better. However,if you don’t use: Ads, Push, Maps or Location then you might not need Google Play Services at all… ...

Questions of the Week XXVI
As you may recall most of us are on vacation and the few of us who are not have to work even harder than usual to keep things chugging along. I’m in India for October (not on vacation) which slows down my work even further outside of my “home base”. We’re releasing a much needed plugin update today with huge GUI builder changes, new round border support in the designer and many bug fixes in the settings etc. ...

Further Refined Cross Platform Mobile GUI Builder
Chen has been working quite a bit on the new GUI Builder and made some significant changes both to it’s look and functionality. These changes are wide reaching covering the appearance, functionality and stability of the GUI Builder. Figure 1. Starting page after recent changes see if you can spot them all… Palette Relocation The component palette is using an accordion now and was relocated to the right side of the UI. It is also available as a popup below the tree… ...

UWP Update
We’ve mentioned the progress we made with the Universal Windows Platform support in the past. This support is moving at a very fast pace… By now we support SQLite as well as Media, Capture and a slew of other features that weren’t available for the initial beta. At this rate we think that 3.6 can actually include a production version of the UWP port! Other than that we also added support for things such as native OS sharing on UWP as well as low level graphics transforms. We also fixed many bugs in the port with text positioning, missing status bar, crashes etc. ...

Pushing Back 3.6
As we discussed before October will be relatively slow, this means that our original plan of a December release for 3.6 will be challenging and produce a sub-par release. In the interest of making 3.6 a more significant release we decided to postpone it to January 16th 2017. The code freeze for this release will also move to January 9th as a result. Normally we could have done the release sooner but past experience has shown that releasing anything in late December or early January is inadvisable. ...