Latest posts from Codename One.
Blog
Java Developers can FINALLY Target Windows UWP
After many months of work and effort put in by all of us but especially by Steve Hannah and Fabrício Carvalho Cabeça we are finally live with the Windows Universal Platform (AKA UWP) native build target! As far as I know Codename One is the only native option for Java developers to build native Windows UWP apps. __ Notice that this target is still in technology preview stage! Please report any issue you run into Besides the effort of building the Codename One port with everything it entails (including newer build servers) we also leveraged the ambitious iKVM project which we had to modify extensively with the help of some community members specifically Eugene who proved very helpful during this work! ...

Questions of the Week IX
This week has seen a lot of announcements and looking at the submission queue for next week it looks like it will be jam packed with updates and new features. Today we have a new plugin update which is jam packed with features and changes, the biggest of which is the removal of all the skins (they are now in the More menu item). We also have a lot of great new features in this plugin including Windows UWP build preview, new settings UI & much more! ...

iOS Migration Continued
We announced our plans to migrate to the newest version of xcode recently and so far these plans have gone rather well with most tests passing without a problem. We did decide to disable bitcode by default which means the new build hint ios.bitcode will now default to false to avoid issues with some libraries that are still not up to date. One point of confusion from that update was whether iphone_new should still be used. The answer is NO. ...

Automatically Install, Update & Distribute cn1libs (extensions)
Managing your project dependencies and 3rd party extensions among the hard to navigate list of cn1libs has always been challenging. We are now tackling this problem in the new settings UI which is scheduled to launch for all IDE’s this Friday. To get started just open the new Codename One settings UI: Figure 1. Launching the new preferences UI __ You need to use an up to date plugin from the June 10th release Then open the extensions option: ...

Dr. Sbaitso Revisited
Dr. Sbaitso is one of our newer demos. We wrote it for a workshop at JavaZone a couple of years ago and it proved to be an excellent tutorial on many complex abilities of Codename One. It captures images from the camera, rounds them, does dynamic search with a chat like bubble interface… Check the live version running on the right hand side thanks to the power of the Codename One JavaScript port! ...

Unskin & Proxy Support
With the upcoming library update this weekend we will remove the venerable (old) skins that are baked into the simulator. This means that they will no longer be immediately accessible but you can still download all of them thru the Skins → More menu option. The chief motivations for this are to keep the distribution smaller (our plugin just crossed the 100MB mark which isn’t great) & to keep the skins up to date. Some of the newer skins (e.g. iPad pro) are HUGE and bundling them is impractical. ...

Discontinuing the Corporate Server & Old Push Servers
The corporate server offering has always been controversial and problematic both within Codename One & for the customers who bought that service. We struggled a lot with trying to get it just right but with every installation we ran into a painful reminder of exactly why we chose to use the cloud. After discussing this with our existing corporate customers we came to the conclusion that we need something better that would still address the requirement of offline building. ...

Questions of the Week VIII
It’s been a remarkably busy week with so many big announcements and it’s shaping up to be a very busy month… We wanted to release a new plugin update this week but due to some external pressure we will update the plugin next week and keep this Friday update only to the libraries. On stackoverflow there were quite a lot of questions: Is there a way in which one can read data stored in a file with extension of .sql Shipping an app with a default “starter” sql database is pretty common and still pretty confusing. ...

Skin Designer
While the Codename One skin file format is trivial it is a bit under documented, to partially alleviate this problem we created a simple tool: Skin Designer. This tool allows us to create a device skin from two images (landscape & portrait). This skin file can then be used with the Codename One simulator & also contributed so other developers can enjoy it! The first version of this tool is relatively simple but should allow you to create an contribute skins to our skin database as explained below. ...

Keep Track of Codename One Changes & Duplicates
One of my pet peeves when we switched to github was that email notifications never worked for me. For most repositories I had to setup my own account just to get emails. I’m guessing that this is a common problem for those of us who are used to emails notifying us of changes. So we went over all the repositories at github.com/codenameone and made them all send an email to the codenameone-commits google group. ...

Debug a Codename One app on an Android Device
Debugging Codename One apps on iOS devices has been documented well with a video for years, we didn’t spend too much time outlining the Android counterpart mostly because we didn’t really use it as much and it was far simpler. As Android Studio launched this actually became really easy as it was possible to actually open the gradle project in Android Studio and just run it. But due to the fragile nature of the gradle project this stopped working for our recent builds, this works for some cases but is a bit of a flaky touch & go. ...

Bluetooth Support
Bluetooth is one of those specs that makes me take a step back… It’s nuanced, complex and multi-layered. That isn’t necessarily bad, it solves a remarkably hard problem. Unfortunately when people say the words “bluetooth support” it’s rare to find two people who actually mean the same thing! So while we did have a lot of requests for bluetooth support over the years most of them were too vague and when we tried to follow thru we usually reached a dead end where the customers themselves often didn’t really know the part of the spec they wanted. ...