Latest posts from Codename One.
Blog

Questions of the Week XXVIII
Unlike last week this has mostly been a calm week with the exception of some downtime we had on the certificate wizard (Apple tightened TLS access) there was hardly anything major going on. We are focusing a lot of our efforts on refining our offering on all fronts e.g. better demos, themes, docs, compatibility and tools. Things will probably stay relatively easy until November although I think a big focus will shift into handling some of the bugs we have lined up for 3.6. ...

File and URL for Better Java Mobile Compatibility
I explained why we don’t support the full Java API (and the difficulties involved) not so long ago. The logic behind this is solid. However, the utility of porting existing Java code to Codename One is also with a lot of merit. We try to strike a balance between portability, compatibility to the Java API etc. and that is a very delicate balance. To improve the situation we created two new classes: com.codename1.io.File & com.codename1.io.URL. They are meant to be drop-in replacements for java.io.File & java.net.URL to help you port existing code. ...

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