Latest posts from Codename One.
Blog

8 to 6+
iOS 8 and iPhone 6/6+ are nearly upon us and Codename One is ready for both! We’ve just added device skins for iOS 6 and 6+, notice that due to the very high resolution you might want to disable scrolling. Notice that those skins are ridiculously large and as such might trigger an out of memory error when you try to run. To fix this just go to the project properties and select the run section. In it select the VM options and configure -Xmx128m or even higher. ...

Servers, JavaZone & More
This represents JavaZone to me I’ll be flying to Oslo this morning to speak at JavaZone and meet with some local community members, I’m very excited about this! If you are attending JavaZone and haven’t yet signed up for the workshop please do so now. We also updated our home page and gallery with some up to date statistics We just pushed out new build servers for Android/Blackberry & J2ME that ...

Mirah for Codename One
Steve Hannah of new iOS pipeline fame (as well as a ton of open source Codename One libraries and projects you can see here ), has just announced one of his more ambitious undertaking: Mirah support for Codename One . Mirah is effectively Ruby without the performance penalty of an overly dynamic language, its compiled to bytecode and can thus be compiled with the Codename One build servers. ...

Build Mobile iOS Apps In Java Using Codename One On Youtube
This material is out of date by now. We recommend checking out the Codename One Academy. We’ve uploaded the full course video cast as a youtube playlist, just go thru the parts and in an hour and some change you should understand the basics of creating a simple Codename One client server application that runs on all mobile devices. The Udemy course is still there and probably useful if you live in a region where youtube is blocked. The source code to accompany the course can be viewed in SVN here: ...

Showcase Your Codename One App at JavaOne
As you know we will be presenting Codename One in our booth at JavaOne and would be using several community applications to demonstrate what you have achieved using the tool we built. We think you are our best spokes persons and we think we can provide a platform to expose your application to more people. If you created an outstanding app that we can demo in our booth at JavaOne, please be sure to submit it to the gallery. ...

Stacks & Flipping Switches
After a while with several new features being off by default we are officially flipping the switch on newer functionality in the build arguments. Notice that you can always disable this new functionality by explicitly defining the appropriate build argument, however you should probably let us know what isn’t working for you. We are turning on the new Android/iOS graphics pipelines by default which should mean the new shape/transform API’s should now “just work”. To disable the Android pipeline use android.asyncPaint=false and to disable the iOS pipeline use ios.newPipeline=false ...

Image Viewer From The Web
I’ve been working on demos for JavaZone and built something small that has been asked a few times. Some developers were looking for URLImage support in image viewer but that’s not a very good approach since URLImage expects images to be at a specific resolution and is thus very bad for images with unknown dimensions. However, ImageViewer thrives on showing and zooming full sized images. ...

Game Of Code
JavaZone just released their traditional annual clip which is especially amusing for fans of the Song Of Ice & Fire series (or the Game Of Thrones TV adaptation). If you haven’t seen the clips from these guys before you MUST check them out here , including spoofs of house of cards and breaking bad (not to mention years of hilarious clips)! Very cool. ...

Mavericks Signing
Dealing with the new Mavericks release of Mac OS has proved to be remarkably challenging but hopefully this is finally behind us and we can slowly upgrade our machines to the new Mac OS. This required some overhaul of our build process but should simplify the process of procuring more servers. iOS builds should now spend less time in the queued state, this might be less noticeable during August (which has far fewer builds than most months) but you would probably notice it soon enough. ...

Faster Builds & Performance
Despite quite a few regressions with the new VM we were finally able to make some major improvements to its performance and bring it on-par with native. Its still not as fast as it could be but coupled with the far improved GC and far superior synchronization its probably a better choice in terms of performance than the old VM. We are still heavily improving it to make it even better. ...

Microbenchmarks
Microbenchmarks are often derided in the Java community with some good reason, they show edge cases that either present the JIT in a bad light or show it as ridiculously (unrealistically) fast. However, with static compilers and translation tools microbenchmarks can give us insight into performance problems that normal profilers might not provide insight into. We’ve been tracking performance issues with the new iOS VM for the past couple of weeks and had a very hard time pinpointing the issues, finally thanks to microbenchmarks we see some of the performance issues and already eliminated quite a few bottlenecks in the code that bring the optimization level closer to native speed. E.g. our getter/setters are now practically free. ...

Intercepting URL's On iOS & Android
** Notice: ** the original version of this post incorrectly specified the property as AppArgs instead of AppArg. This is now fixed. For Android you would probably also want to add the build argument android.xactivity=android:exported=”false”. A common trick in mobile application development, is communication between two unrelated applications. In Android we have intents which are pretty elaborate and can be used via Display.execute, however what if you would like to expose the functionality of your application to a different application running on the device. This would allow that application to launch your application. ...