Latest posts from Codename One.
Blog

Store Submissions As Code: App Store, Google Play, And Huawei AppGallery
This closes out the release week. Saturday’s certificate wizard got your app signed. Today’s feature handles what comes after the build finishes: uploading the binary, filling in the release notes, updating the listing, and doing it on every store where your users are. PR #5353 covers the client tooling; the heavy lifting lives in the build cloud. After The Build Turns Green A release isn’t done when the build turns green. Someone still uploads the .ipa to App Store Connect, pastes the what’s-new text into two or three web consoles, re-uploads screenshots because the store flagged one, and repeats the ritual per locale. For a single app it’s an annoying hour. For a team maintaining ten apps across App Store, Google Play and AppGallery, it’s a part-time job that produces nothing except copy-paste errors. ...

AR And VR In Java: ARKit, ARCore, And A Virtual Room You Can Debug
This week’s release post was about making the VM fast. Today’s post is about pointing that VM at the real world. PR #5335 adds two new core packages: com.codename1.ar for augmented reality on ARKit and ARCore, and com.codename1.vr for stereo rendering and 360 media on our portable GPU pipeline. The Problem With Writing AR Code AR development has a miserable inner loop. The code only runs on a device, the interesting states are the ones you can’t reproduce on demand (tracking loss, a plane that merges into another, a reference image entering the frame), and every debug cycle involves standing up and pointing a phone at your floor. Add a second platform SDK with different classes and coordinate conventions, and simple ideas become week-long jobs. ...

The Certificate Wizard Is Now A Standalone App, And It Stopped Impersonating You
Yesterday’s release post covered the ParparVM performance work. Today’s post is about the tool most iOS developers meet before they ever see their app on a device: the certificate wizard. PR #5339 rewrites it as a standalone desktop app with a different way of talking to Apple. Why The Old Wizard Kept Breaking Apple signing needs a pile of interlocking assets: a signing certificate, a bundle ID, registered devices, a provisioning profile that ties the three together, and a push key if you use notifications. The wizard’s job has always been to create all of that so you don’t spend an afternoon in the Apple developer portal. ...

How We Beat HotSpot Performance (By Cheating, But Not Like That)
No, we didn’t cheat in the benchmark. At least I hope we didn’t. Every optimization in this story was gated on bit identical output checksums against HotSpot, and the harness refuses to print a ratio when a checksum differs. If anything, this post is about how good HotSpot actually is. We tilted the table in our favor in every way we could, we hand tuned C code, and we still only beat it on some benchmarks. Getting there was a genuine struggle. If you want to understand the nuts and bolts of what your Java code costs, and the tradeoffs each runtime picks, I hope this is a good read. ...

Game Builder Tutorial 3: Build a First-Person 3D Dungeon
The final tutorial takes the same data-driven pattern from Tutorial 1 and Tutorial 2 into 3D. Duke’s last adventure sends him underground: Crypt Walk, a first-person dungeon of stone corridors where the tea cups have invaded his coffee break. He hunts them through the maze and fires coffee beans to smash them, while the walls box him in. The headline difference from the 2D tutorial is what happens at runtime — instead of sprites in a Scene, each element becomes a GPU-rendered Model under a perspective camera with lighting. You author the same way; the runtime renders it in 3D. ...

VideoIO, PCM Mixing And Timed Whisper Captions
This release turns media from “play a file” into “build a file.” PR #5315 adds VideoIO, a cross-platform video subsystem that can encode app-rendered frames and audio into a standard video file, then decode an existing clip back into exact RGBA frames and PCM audio. PR #5317 adds AudioMixer, a sample-accurate PCM timeline. PR #5319 adds timed Whisper transcription segments with SRT and VTT output. ...

Versioned Builds Are Back, With Master Builds For Fast Verification
Versioned builds are back. The old versioned-build story came from the Ant era. Codename One had point releases every few months, and versioning meant “build against that point release.” It made sense at the time, but the platform and the build infrastructure moved on. Maven Central, faster releases, more build targets, and a much larger code surface made the old model hard to maintain. ...

Commerce And Secrets Without An IAP Tax
Commerce is the easiest feature in this release to misunderstand, so the first sentence has to be blunt: Commerce does not replace IAP and never will. Purchases still go through Apple, Google, or the payment processor you chose. Codename One does not process the payment, does not touch the money, and does not take a percentage. PR #5300 adds infrastructure around the annoying backend work that comes after a purchase: validation, entitlement checks, subscription lifecycle, webhooks, and reporting. ...

Motion, Stylus, Trackpads And Foldables In The Core
For a long time, mobile meant a touch screen and a few platform-specific escape hatches. That is no longer enough. A Codename One app can run on phones, tablets, desktops, watches, TVs, browsers, foldables, touch laptops, external displays, cars, and devices with pens, mice, and trackpads. PR #5310 and PR #5309 make that hardware visible through core APIs instead of cn1libs and platform branches. ...

CarPlay And Android Auto From One Codename One API
Yesterday’s release post was about the bigger business line we will not cross: no royalties on IAP, ads, commerce or app revenue. This post is about one of the most concrete platform additions in that release. PR #5281 adds Apple CarPlay and Google Android Auto support under com.codename1.car. The first thing to know is what this is not. CarPlay and Android Auto are not second screens where your normal Codename One Form is drawn. They are driver-safe, template-based systems. Apple and Google decide which templates are legal in a car, how many rows can appear, which app categories are allowed, and which interactions are safe while driving. ...

More Surfaces, Same Deal: Cars, Sensors, Commerce, Video And Builds
Last week’s release post was about funding open source without the bait and switch. This week’s release tests that idea again, because two of the new features touch paid infrastructure directly: Commerce and versioned builds. That kind of expansion often makes the model slippery. A platform adds something developers need, puts it behind an account tier, and over time the open part gets worse or the paid part starts taxing success. We do not want to drift into that, so the useful question for this week is not just what shipped, but how the paid pieces behave. ...

Game Builder Tutorial 2: Build a Blackjack Card Game (Duke Jack)
In Tutorial 1 Duke dashed for coffee with arcade physics. Now he sets the cup down for a calmer contest: Duke Jack, a game of blackjack. A card game has none of that arcade motion — cards sit on the felt and the rules decide who wins. This tutorial shows how the same Game Builder pattern (visual data + an onUpdate companion) handles a card game, where your code reads the cards and runs the table instead of simulating movement. We’ll build a felt table, deal a real hand, and wire up the complete blackjack rules: hit, stand, the dealer’s draw, and the win/lose decision. ...