Open Source & Free  

When You Cannot Afford to Block the EDT

We recently added support for disabling invokeAndBlock() for certain sections of code. The syntax is: CN.invokeWithoutBlocking(()->{ // This code is not allowed to call invokeAndBlock() }); If any attempt is made to execute invokeAndBlock() inside that block of code, it will throw a BlockingDisallowedException. This can be useful for ensuring that your UI will be When You Cannot Afford to Block the EDT

Updates and Expansion

I haven’t blogged in a while. I’ve been busy working with a couple of startups, some enterprise customers and bringing new people on-board. Steve has been great in picking up some of the slack but his plate is too full to blog with the same frequency I had so the blog slowed down a bit Updates and Expansion

Runtime Debugging with Groovy Console

We recently added a new tool to the Codename One simulator that will allow you to run arbitrary code snippets in your app’s runtime environment.   You can access it from “File” > “Groovy Console”, while your app is running in the simulator. This will open the following dialog that will allow you to execute Runtime Debugging with Groovy Console

WKWebView and PRs

We still have features to cover from our summer vacation but we need to make a short de-tour through newer things that landed recently. One of the big highlights is the switch to WKWebView. We effectively changed the default iOS browser component to WKWebView instead of UIWebView. This resolved warnings Apple started sending out to WKWebView and PRs

Push Cheatsheet

Push support is one of the most complicated features to set up, due to all of the red tape you have to cut through on each platform. Each platform has its own series of hurdles you have to jump through. Apple (iOS) requires you to generate push certificates. Google (Android) requries you to set up Push Cheatsheet

Terse Table, Radar Chart and Networking Enhancements

This is the 3rd installment of the updates we did over the summer and so far it isn’t the last one. We have at least one more part coming in next week…​ Terse Table Layout TableLayout is pretty darn verbose e.g. this snippet from the TableLayout JavaDoc: cnt.add(tl.createConstraint(). horizontalSpan(2). heightPercentage(80). verticalAlign(Component.CENTER). horizontalAlign(Component.CENTER), new Label(“Span H”)). Terse Table, Radar Chart and Networking Enhancements

Icon Fonts, Popups and Infinite Scroll

As I mentioned in the last post there are a lot of new features we need to go over and it will take time to cover everything. In fact this is still a partial list and there’s a lot more on the way…​ Easier Icon Font Integration First off Thomas submitted a PR for a Icon Fonts, Popups and Infinite Scroll

We're Back from Vacation

Summer is finally over and the kids are going back to school/kindergarten so it’s time to go back to our regularly scheduled posts. I won’t be posting as often as before as I’ll dedicate more time for support/development activities but still there’s a lot to write about…​ During our time off we had a lot We're Back from Vacation

Summer Vacation

You might have noticed we’ve been a bit slow with updates over the past couple of weeks as we’re dealing with a bit of a backlog. With the kids on holiday from school it’s harder to keep up not to mention our travel plans for the summer. As such we’re officially in summer vacation until Summer Vacation

Post Message

BrowserComponent is a pretty powerful tool when you just want to integrate HTML into your application. We use it a lot in native apps, but surprisingly it’s just as useful when we compile an app as a web application. It lets us embed HTML into the web application. But there’s a big caveat known as Post Message

Flamingo SVG Transcoder Revisited

A couple of years ago I wrote about our support for Flamingo which translates static SVG files to Java source files that you can treat as images within Codename One while getting pixel perfect resolution independent results. There were a few minor changes since until a month ago when Steve committed some work to address Flamingo SVG Transcoder Revisited

Sheets and Samples

Over the years we wrote a lot of demos for Codename One as well as a lot of test cases. This can get painful after a few dozen projects each of which with their own version of the JARs and build script. To solve this never ending need to organize samples Steve introduced a new Sheets and Samples