Latest posts from Codename One.
Blog

Login Tutorials & Future Of Windows Phone
Facebook & Google login have been a source of a bit of pain mostly because of the obtuse and confusing documentation from both companies. Chen spent some time writing up tutorials for both Facebook Login & Google Login that should help you get started with applications that use such login options. Future Of Windows Phone I’ve been holding back on writing this before we have further information and can properly asses the situation. However… since MS is taking its time we’d rather discuss the future of Windows Phone once rather than all over the different forums/social and support channels. As you know we wrote roughly 3 different Windows Phone ports, the first targeted Windows Phone 7.5 (mango) which relied on functionality introduced in that version and immediately killed in 8.0! ...

Book & Continued Migration
Eric Dodji Gbofu has been working on a Codename One book in French for the past year and it finally came out! I’m still waiting on my copy mostly to show to French speakers we meet (I have a very hard time picking languages), I’m pretty sure its a cool book. Chen and I wrote the forward for the book, I trust Eric did a great job in it just like he has done with Codename One Fr. You can order the book either directly thru the publishers site (which is apprently the preferred way) or thru Amazon. ...
Icon Fonts & Old VM Swan Song
While multi-image’s go a long way in making your app scalable to various devices, scalable images can be even more convenient. The SVG standard never took off though, its too complex to support in an efficient way on the devices and so its relegated to web applications and even those don’t make heavy use of it due to its complexity. However, icon fonts have gained a lot of popularity in recent years and we used them in the past in Codename One e.g. in the photo demo. ...

Sign In With…
Chen recently published a major refactoring of our connection framework which up until now only supported Facebook login. With this recent refactoring the code to connect to various authentication services becomes far simpler and various services should become more pluggable. The default implementation centers around the Login and LoginCallback classes that use oAuth by default to perform the login. FacebookConnect keeps working just like it always did but now it extends the Login class to provide generic login functionality which means we can seamlessly provide additional login targets either via oAuth or even via native integration with 3rd party SDK’s. One of the first integrations here is the GoogleConnect support which allows logging into a Google account to sign in. This is especially great on Android devices where the process to sign in is seamless! ...

Smaller iOS Source Builds, Timer & Index
Up until now when building with include sources for iOS we also included a btres directory which was necessary for the old VM but no longer necessary in the new VM. This increased the distribution size considerably and we are now removing it to speed up the builds and reduce server costs. When we were in the process of reviewing the sizes of apps we noticed quite a few apps with resources weighing well over 5mb which would probably cause performance issues for your application, we suggest reviewing such apps and optimizing them. ...

Alternative App Stores
Let’s face it, your app is probably a commodity. As noted by Wikipedia, “a commodity has full or partial fungibility; that is, the market treats its instances as equivalent or nearly so with no regard to who produced them.” In basic English it means that your product can be easily replaced in part or completely by another to satisfy the needs of the market. For 99% of apps out there this means that if a user doesn’t find your app, they’ll pick another one that they think fills the need they’re looking to satisfy. This the same whether your app is a game, a productivity app or any other category. ...

Map, String Performance & JavaScript Native
We’ve been spending a lot of times looking at performance for one of our enterprise customers. As part of the investigation he came up with an interesting and very important find… He found that hashMap.get("String") was much slower under the new VM than under the old VM. Its these sort of “simple” finds that help narrow down bigger issues in performance that might impact a lot of things in Codename One, since HashMap is so ubiquitous the implications of improving it can be huge. ...

JavaScript Beta & InteractionDialog Popup
The JavaScript port is nearing beta stage which will start next week its already added support for most API’s including SQL support and many other features. Once the JavaScript port is in beta it will become an enterprise only feature so if you haven’t tried it yet you have one week to try your app. Interaction Dialog Popup One often requested feature of the InteractionDialog is support for popup dialog semantics where the dialog can point at the originating component. You can now use the showPopup method also on an InteractionDialog to provide pretty elaborate UI’s. ...

Migrations & New Plugin
We are in the process of migrating the storage implementation from App Engine to Amazons S3 storage as part of our bigger migration away from App Engine. If you experience issues related to build results please let us know so we can iron out potential regressions. We are deploying this change in a way that makes it very easy to toggle this on/off and in case S3 builds prove to be an issue we will be able to revert them quickly. ...

Automating Releases
Our website deployment has become even more complex thanks to the demos section. The crux of it is in updating the demos with every small update to the JavaScript build process which is why we implemented a build option based on the work we did for our CI (Jenkins) integration. This work essentially allows to build a Codename One app synchronously which is useful when you want to do things such as continuous integration or release engineering. Notice that the synchronous build feature is an enterprise only feature since its overuse can have a very heavy toll on our servers. ...

Updated Demo Section & Plugin Update
As the JavaScript port has matured we started adding new demos specifically for the clock demo, charts & GeoViz. You can now see all of them live on the web and also try the Android or desktop versions of these demos to get a better grasp of what Codename One can do and how far has the JavaScript build advanced since our 3.0 release. Plugin Update We wanted to release the plugin update this week but we ended up postponing to June 1st. As a reminder June 1st would also be past the deadline for our annual subscription rebate promotion as well as the price change for basic subscriptions. Make sure to take advantage of existing prices/promotions before that date. ...

Migrating Away From Google App Engine
Google has just announced that it is deprecating cloud storage and effectively a major part of App Engine that we are relying on. To make matters worse the window of time to its removal is quite short so we don’t have enough time to rewrite and adapt all the various API’s and tools that rely on this API. We have already started the process of migrating off App Engine completely both due to rising costs and Googles horrible service/support. This will also allow us to finally support many long standing user requests such as more powerful push API’s etc. since we will no longer be held back by App Engines limitations. ...