To enable this Codename One provides a NetBeans IDE plugin and build servers (Mac’s, Windows 8 & Linux) that translate your bytecode (not sourcecode) to native applications in the cloud and compile it using the standard toolchain (e.g. for iOS you get a native app built by xcode as a result). You can use all of NetBeans great features, debugger, apply code changes etc. while working and debugging your app locally.
Think of Codename One as Swing for mobile devices without most of the problems we had with Swing thanks to a new SaaS and lessons learned.
We use NetBeans IDE as our development IDE internally so it’s the first to get new features, there are also some features that we maintain only on NetBeans IDE due to the complexity of implementing them elsewhere. Some things are amazingly easy in NetBeans IDE such as debugging right into the Codename One source code.
Here are my top 5 new features in Codename One with an emphasis on NetBeans developers:
- 3rd party libraries. JARs are great, but they are a problem for Codename One. They might use a Java feature that isn’t available to Codename One and they don’t contain support for native code (we need C#, Objective-C, Dalvik etc. to be supported).
Codename One includes a special format that supports packaging such libraries such libraries can include native code (and include code completion hints) they work in all IDE’s but currently NetBeans is the primary IDE used to create such cn1lib’s.
You can read about Codename One Libraries here: http://www.codenameone.com/3/post/2013/07/jaring-and-libraries.html and browse some of the early libraries for Codename One here: http://www.codenameone.com/cn1libs.html.
- Powerful iOS settings. Codename One allows developers to customize the resulting application with build hints http://www.codenameone.com/advanced-build.html however this is a bit daunting for most developers to follow.
Its hard to build a UI for every feature available in Codename One but as a NetBeans IDE exclusive we created some UI elements that simplify iOS settings and even a UI to generate an Android keystore.
- Layered pane. There are dozens of new features in terms of UI widgets and capabilities (e.g. Auto complete, image viewer etc.) however; if I had to pick just one it would be the layered pane.
Layered pane allows us to place components on top of the main form in an additional layer, we had glass pane in the past but it was too low level for most developers, the layered pane is remarkably convenient in this regard and should rely simplify complex animations/effects e.g. the interactive walkthru tutorial (which was done with the glasspane):
- XML resource files. Starting with Codename One 2.0 the resource file can be mirrored to XML and merged properly when committed to versioning systems http://www.codenameone.com/3/post/2013/08/teamwork-and-other-things.html.
- Desktop application packaging (pro only). Just this week we are launching the new desktop support for our pro users.
Desktop support isn’t meant to compete with Swing/FX but rather to allow mobile developers to build a desktop version of their app (that will look more like a tablet app than a desktop app). Our cloud delivers a DMG for Mac’s and an EXE or MSI for Windows distribution; in both cases the JRE is embedded within the app to avoid potential issues.
This process is just as seamless as mobile development is in Codename One.
I hope this has been interesting enough for you to take the Codename One plugin for a spin or if you use it on a different IDE to try it on NetBeans. If you have any questions or feedback we are always happy to help on the Codename One discussion forum http://www.codenameone.com/discussion-forum.html.