Latest posts from Codename One.
Blog

Fast Push Communication Using PubNub
This came out 5 months ago but the guy from PubNub didn’t update us on the status so we just didn’t notice this until now. That’s probably a good sign of us being too busy. There is now official PubNub integration for Codename One, which means you can get push like fast 2 way communications between devices without writing too much code. How does it work? ...

Facebook, Better Input & Improving Community Support
Facebook has changed the rules yet again, this time related to logging in to Facebook from 3rd party applications. Up until now we used the web based OAuth approach for logging into Facebook since that allowed us to keep the same implementation across Android, iOS, Blackberry etc. without changing anything. However, the new Facebook 2 factor authentication is a very complex process and Facebook really went overboard with a very elaborate mobile API. ...

Preparing For 2.0
We are now finalizing the features for Codename One 2.0. Yes we are skipping the 1.2 revision and going up to the 2nd generation which we feel is warranted given the amount of features added since the May release of 1.1. We will make the release in December which we will probably spend in code freeze so you won’t see new features from us during that month that are not bug fixes or completely separate features (e.g. IDEA plugin). ...

LTS Blog Post And Updates
The guys at LTS just published a post I wrote in their blog , if you are reading this thinking “I’d like to read another 5,000 words from that guy” then head to their blog . Speaking of promoting other people I hope you filled the developer economics survey , its really helpful for us and time is running out (they are closing the survey soon). They added additional language options which you can use that might make the process faster. ...

Spinning Natively And Windows Bug
Shai Ifrach spent the weekend fixing one of the harder Windows Phone issues we had, sometimes on some Windows Phone devices the UI would start with a black screen but never when connected to the debugger! Ugh. Turns out this is a race condition related to using the wrong lifecycle callback (which is used by all of MS’s demos)! Kudos to him because I spent just about ages trying to tackle that issue unsuccessfully, this should now allow us to move forward with some of the additional issues on Windows Phone and hopefully bring the port up to the level of the other ports we have or at least a little bit closer. ...

Video Of LTS Talk
The video of the LTS talk is now live, unfortunately during the talk we had audio issues due to the large number of viewers and had to turn off the camera. The picture that remains for the rest of the slides is a freeze frame of me frowning over not turning the camera sooner. We are gearing up for some major updates and new features in the coming weeks and are now in the process of narrowing down the requirements for Codename One 2.0 (yes major version number). This will hopefully land before the years end but as you know these things are pretty hard to tune precisely. ...

Surprises And Changes
We have constant Google alerts setup on various Codename One related keywords and the other day we got a lovely surprise in the form of this great presentation from Mateja Opacic who to my knowledge never contacted us or discussed this with us. Apparently he made this presentation at the Coding Serbia Conference , which is really cool! He has a great presentation & demo. We added a few interesting features and fixes this past week, we now support adding array arguments for connection requests e.g. it would now be possible to do something like myConnectionReuest.addArgument(“key”, new String[] {“val1”, “val2”}); this will essentially add two key entries e.g. key=val1 and key=val2. ...

New Servers And Internationalization
Its been a busy week with the LTS session, we barely had time to do much. However, we did do quite a lot of work during this week including some improvements for l10n and new server deployments. Those of you who followed the l10n video in the How Do I? section or our Udemy course should be familiar with the really cool seamless localization support available in Codename One. However, to translate the application we usually need to send the files to a professional translator… ...

Seven
Its been a long time coming, the main delay in getting iOS 7 support into your hands has been with the need to upgrade all the servers. Apple seems to require OS upgrades as well when it updates xcode so we had to go one by one and update everything. This is now all in place and you can start building apps that take advantage of iOS 7 functionality and are built using xcode 5. ...

Please Help Us By Taking This Survey
We would very much appreciate it if you take the new Developer Economics 10-minute survey you can also win prizes as a result! VisionMobile has launched a new Developer Economics survey. If you’re an app developer, take the survey to have your say and win prizes, including an iPhone, a Galaxy S4, two Nokia Lumia 920 handsets and some cool gadgets. Also – respondents who complete the survey and opt-in to VisionMobile’s panel can access the Developer Benchmarks, a visualised scorecard of how they compare to other developers in their country or region, across platforms used, revenue models, app categories and more. ...

Simple Stuff
I hope you registered for the upcoming LTS lecture , last week there were close to 1000 developers registered! Sometimes the most important features we can add are really simple things that we just procrastinated on forever. Case in point: multi-line labels. For years we have been explaining to people over and over again: “Just use TextArea and invoke setUIID(“Label”)”. This has three major issues: ...

Property Of The Client
One of the really useful features in Codename One that many developers are just unaware of is the client properties trick. Every component in Codename One has a Map (Hashtable) associated with it containing arbitrary objects you can store in association with that component. To use this feature you can just invoke putClientProperty(propertyName, value); then getClientProperty(propertyName) to extract the property. When faced with this feature developers are often a bit stumped, why would I need this? ...