Latest posts from Codename One.
Blog

Desktop, Vision Mobile & Misc Changes
Vision mobile just released their new developer economics study, you can check it out here . We toggled the new pipeline mode for windows phone to be the default, its clearly the way to go forward in the long run since we just don’t have any other choice. All feedback on the new pipeline found it to improve performance significantly and generally reduces some of the paint issues that we run into with Windows Phone. However, there are a couple of reports pointing out that font quality has degraded with the new pipeline. We are looking into this but came to the decision that even if this isn’t solvable we will stick with the new pipeline since the old one is just not viable for moving forward. ...

A New Pipeline For Windows Phone
The Windows Phone port is one of our most painful ports, the platforms is so fragmented, volatile and rigid its remarkably hard to extract a common porting layer that will satisfy our requirements. We’ve just updated our servers with the 3rd port we did for Windows Phone, its experimental so its off by default, to activate it just use win.newPipeline=true in your build arguments. As you may recall our first port targeted Windows Phone 7.5 and used XNA which Microsoft killed with Windows Phone 8. ...

Push Notification Tutorial
We’ve just uploaded a new how do I tutorial for push notification . This tutorial covers the basics and is complementary to the post we published a while back covering push . Notice: This post was automatically converted using a script from an older blogging system. Some elements might not have come out as intended…. If that is the case please let us know via the comments section below. Archived Comments This post was automatically migrated from the legacy Codename One blog. The original comments are preserved below for historical context. New discussion happens in the Discussion section. ...

A New Pipeline
One of our enterprise developers started complaining about the performance of our Android port, which forced us to take a closer look at our rendering pipeline on Android. It seems that Google’s hardware acceleration broke pretty much all the best practices of the Android 2.x era and what we had wasn’t taking full advantage of “project butter” the codename for Google’s new Android rendering layer. This took a lot of effort to adapt and the effort is still ongoing but we wrote a brand new rendering layer for Android, at the moment you would need to switch it on explicitly and it will only work for Android 3.x or newer. When we will feel that its stable we will flip the default switch and make this the default for all future Android builds. ...

Switching Defaults
As you may know Apple will require that all applications submitted next month would be compiled with XCode 5 and target iOS 7 primarily. We supported this for quite some time however the default was still set to the legacy support first. Today we are deploying an update which will make xcode 5.0 the default and make the theme use iOS 7 theme styling when running on an iOS 7 device. ...

5 Cool New Features in Codename One for NetBeans IDE
An article of mine with the above title just got published in dzone check it out and let us know what you think in the comments over there. Notice: This post was automatically converted using a script from an older blogging system. Some elements might not have come out as intended…. If that is the case please let us know via the comments section below. ...

Native Interface
Native interfaces allow developers to invoke platform native methods/functions/libraries and even widgets directly from within Codename One without having to adapt your code to every platform. They are a very powerful tool when bridging between Codename One and OS specific features to access functionality that might not yet be exposed in the Codename One platform. Normally in Java we would use JNI to access “native” however, JNI is designed to access C and we need much more. Codename One allows developers to access Dalvik (Java) when running under Android and defines that as “native”, C# when running in Windows Phone and Objective-C when running under iOS. Because of that it is remarkably hard to map arbitrary objects, callbacks and functionality to a native call. So to simplify that work we placed many restrictions on the construction of a native interface, however you can still accomplish pretty spectacular things such as a complete working socket implementation and more. ...

Build Desktop Apps & XML Improvements
The next plugin update will finally include the support for building desktop applications with Codename One and to celebrate this we added a How Do I video on this subject . Notice that this is a pro only feature so if you don’t have a pro account this will fail on the build server. The end result should be pretty similar to what you get in the simulator, I assume we will make some improvements as we move along to refine the user experience a bit further and adapt it for desktop development. ...

Sockets & MultiLine Trees
Steve recently added an implementation of a sockets library which is pretty cool and very timely since we are just about to release our own socket library and unlike his work which supports all Codename One targets we currently only support iOS & Android. At the moment we only support TCP sockets, we support server socket (listen/accept) on Android but not on iOS. You can check if Sockets are supported using the Socket.isSupported() and whether server sockets are supported using Socket. ...

Offline Builds
We just added a new offering to our pricing page , offline server. This option isn’t for everyone since it requires quite a lot of effort to setup and in fact includes less functionality than even the pro subscription. The main reason for this offering is the old-school regulated industries where a cloud build solution just isn’t an option. In those cases you can still enjoy the benefits of our cloud architecture within the organization. However, you would need to setup at least 4 separate servers in order to get these benefits so the total cost in hours/hardware and licensing is pretty steep. ...

Pisces & String Picker
Steve just released a very important cn1lib that effectively provides developers with elaborate low level graphics primitives to draw pretty much everything on all platforms. The main use case for this library is for charts and graphs which up until now we had to do with the relatively limited graphics capabilities of Codename One (which are currently optimized for speed/portability). Pisces is a rendering engine developed at Sun that was designed to be very portable, it performs all the rendering in Java and can thus do relatively advanced graphics even on J2ME devices that don’t necessarily have such graphics capabilities. The downside is that it can’t be fast since it effectively can’t use the GPU. ...

Upcoming Features
December has been pretty busy with the release of 2.0 but January will probably be MUCH busier since we have a major backlog of features requested by enterprise and pro users. We are already well under way with quite a few interesting features but most of them won’t be landing for the next couple of weeks since we need the trunk to remain stable for now. Before I get started, if you are interested in Socket support for Codename One and native interface’s you should check out the work Steve Hannah did on a socket library for Codname One. Its also a great reference implementation on how one would write a native library implementation! ...