One of the biggest challenges facing new Codename One developers is the challenge of creating an elegant looking UI. This isn't trivial in any tool but we don't make it easy enough in some cases. In the tutorial below I'm focusing on one of the most important UI elements: the side menu.Read More
One of the main reasons for the thread API I discussed yesterday is a new threadsafe
Database API. This new API allows you to wrap your `Database` instance with a thread that will hide all access to the database and implicitly make it threadsafe by serializing all requests to a single database thread.
Working with threads is usually ranked as one of the least intuitive and painful tasks in programming. This is such an error prone task that some platforms/languages took the route of avoiding threads entirely. I needed to convert some code to work on a separate thread but I still wanted the ability to communicate and transfer data from that thread.Read More
Using toggle buttons in touch interfaces is very intuitive for many use cases. We implement them via
CheckBox to indicate inclusive or exclusive selection. As a result I find myself using
RadioButton quite a lot and ran into an ommission that frankly should have been there from day 1.
I've been back from the bootcamp this past week and while I have committed many new changes I'm still taking things relatively easy after the hard work of the bootcamp. This will be the last Q&A Friday segment in the blog. Starting next week I'll replace this segment with "tutorial of the week" which will focus on publishing/updating a "How do I?" video tutorial on a weekly basis.Read More
Fingerprint scanners are pretty common in modern hardware both from Apple and some Android vendors. The problem is that the iOS and Android API's for accessing them are a world apart. However, it's possible to find some low level common ground which is exactly what our cn1lib for fingerprint scanning accomplished.Read More
The bootcamp is winding down and I'm finally back to our usual scheduled posts. I'd like to open with a common practice that isn't nearly documented enough: use the native main/EDT threads. Our EDT serves many purposes but one of it's biggest roles is portability. By having an EDT we get consistent behavior across platforms.Read More
Next week we'll resume the bootcamp so I might publish one last blog post after this and that's it for another two weeks. It's been ages since our last plugin update so we'll take this opportunity to release a new plugin release for all the IDE's together with the other fixes and enhancements coming in this update.Read More