Latest posts from Codename One.
Blog

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

Cocoapods Support
CocoaPods is a dependency manager for Swift and Objective-C Cocoa projects. It has over eighteen thousand libraries and can help you scale your projects elegantly. Cocoapods can be used in your Codename One project to include native iOS libraries without having to go through the hassle of bundling the actual library into your project. Rather than bundling .h and .a files in your ios/native directory, you can specify which “pods” your app uses via the ios.pods build hint. (There are other build hints also if you need more advanced features). ...

Questions of the Week VII
Woke up this morning to the amazing news of Google winning against Oracle on the issue of fair use! This is great news for everyone as it effectively makes “clean room implementation” legal. This solidifies Java’s status as “open” showing that even its owner has limitations on their power. I might write more about this next week if I have some time, I just hope the verdict doesn’t get turned in an appeal. ...