Its been a busy month and getting busier by the moment, we are preparing for App Engines suspension of its blobstore service which will be coming around soon. This effectively means older crash report email functionality will be stopped for older apps (just rebuild the app for the emails to work again).
We are also getting ready for Codename One 3.1 which we have tentatively scheduled for July 27th. This release will include a weeks worth of code freeze and will be the first of our new policy for faster release schedules.
So you have finished your app and tested it on the simulator. Everything looks good. You're now ready to proceed with testing on your iPhone. You select the "Send iOS Debug Build" menu item and wait for the build server to work its magic, but then you're faced with a notice that iOS builds require a valid certificate and provisioning profile. What a hassle!Read More
When we introduced Codename One initially we limited the API to CLDC level which is roughly a subset of Java 1.3, we then added support for a subset of Java 5 and we are now adding Java 8 language features!
Thanks to some work from Steve and the great work done by the guys from the Retro Lambda project we were able to add compatibility to the major Java 8 features, most notably lambda expressions. This is highly experimental and some features might not work but so far it seems things are functioning rather smoothly.
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.Read More
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.
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.
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
LoginCallback classes that use oAuth by default to perform the login.
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.Read More
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.Read More
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.