Post Image

Storage Migration

Our iOS port has some pieces that are pretty old and haven't been touched since we started, one of those things is the IO code which mostly works as we wrote it when we started Codename One. Unfortunately it seems that Storage in iOS is mapped to the iOS caches directory, this directory can be wiped by the iOS device if space on the device is running low. That's a very rare occurrence which is why we didn't pick that up until a bug report was filed on it this week...

Read More
Post Image

JavaScript Port Cross Origin, Hints & Bugs

When building to the JavaScript target there are many build options and configurations. More importantly issues like cross origin need server side code that would be able to proxy such requests to make the client side code seamless...

Steve wrote a rather detailed appendix to the developer guide covering all of those options from startup splash screen configuration to servlet proxy logic. The build also generates a ready to deploy WAR file which should make setting this up on any Java servlet container a nobrainer.

Read More
Post Image

Demo Section & Russian Guide

We are working on a new demos section for the website that will highlight the demos for Codename One more thoroughly. Thanks to the new JavaScript port we can actually show the demos live in action but that creates a bit of a problem since people often jump to the conclusion that Codename One uses web technologies which it does not.

Read More
Post Image

Codename One 3.0 Now Live & Special Offer!

We are thrilled to announce the immediate availability of Codename One 3.0!
You can check out the press release and full announcement here.

Read More
Post Image

Codename One in the Browser

We are very excited to announce the alpha release of the Codename One Javascript port. This brings us one step closer to the coveted _write once run anywhere_ ideal. Starting with Codename One version 3.0, you will be able to deploy your projects as Javascript applications that run directly in the browser.

Read More
Post Image

New Developer Guide

We are rebuilding the developer guide using JBake and asciidoc which means the guide would be better integrated into the website thus providing more accessible hyperlinkable information. This is already making its way into the site and into the PDF so we'd appreciate feedback.

Read More
Post Image

Server Initiated Push

Sending a push notification from the simulator or mobile device is pretty trivial when we use the Push class. However, sending push messages from the server seems to be a bit more complicated for most developers since its not as well documented. The main point of complexity is that we didn't provide any samples of server push code and from the fact that the server expects arguments as POST.

This code should work for Java desktop and server side to perform a simple push, notice that the complexity is mostly related to JavaSE's lack of simplified POST arguments.

Read More
Post Image

Accelerometer & Code Freeze

Devices have sensors such as accelerometer, GPS and up until now our support for them was relatively basic.
Chen recently introduced a cn1lib that includes support for various types of sensors on the device. Check it out if you need support for such API's.

Read More
Post Image

HTML Hierarchy, Release Plan & TeaVM

When Codename One packages applications into native apps we hide a lot of details to make the process simpler. One of the things we had an issue with is getResource/getResourceAsStream both of which are problematic since they support hierarchies and a concept of package relativity.
That's a concept that is problematic in iOS, generally everything about file access within the bundle in iOS is a bit problematic to accomplish in a cross platform way because Apple tries so hard to "simplify" and ends up creating fragmentation for us.

Read More
Post Image

Validation, RegEx & Masking

Up until recently we had to handcode validation logic into every form, this becomes tedious as we work thru larger applications. Some developers built their own generic logic, which leads to obvious duplication of effort. In the interest of keeping everything together we decided to release a standardized validation framework that allows us to define constraints on a set of components, mark invalid entries and disable submission buttons.

Read More