Control the pixels
Theme the shared UI with CSS, draw directly when you need to, and keep brand behavior consistent across targets.
Native, and you own the UI
Codename One compiles one Java codebase into native apps across mobile, desktop, web, watch, TV, and vehicles. Its UI ships with your app instead of being restyled by the platform after release.
GPLv2 with the Classpath Exception. Free for commercial use. No royalties.
Form app = new Form(
"Explore", new BorderLayout()
);
app.add(CENTER, buildContent());
app.add(SOUTH, buildTabs());
app.show();Native iOS 26Codename One Metal


Own the result
Codename One draws its own components. The runtime and theme are packaged with the application, so an OS update does not silently swap in a different widget implementation.
Theme the shared UI with CSS, draw directly when you need to, and keep brand behavior consistent across targets.
Fix shared application logic and UI once instead of maintaining separate screen implementations for each platform.
Call platform SDKs through native interfaces. Embed a map, web view, camera surface, or other heavyweight view with PeerComponent.
The build path
Use Maven and your existing IDE. Codename One supplies the portable runtime, platform ports, and build tooling.
Application logic and the shared UI stay in a standard Maven project.
Start the projectThe simulator provides device skins, component and network inspectors, test recording, and live CSS.
See the development toolsGenerate platform projects or use the cloud service to build app-store binaries, including iOS builds without a Mac.
Submit your first native buildAgentic development
A generated Java 17 project includes Codename One instructions for coding agents. The simulator can expose the running UI to Codex, Claude Code, and other MCP hosts, so the agent can inspect meaning and invoke actions instead of guessing screen coordinates.
Agents know Java deeply. Static types, bytecode compliance, and the compiler reject unsupported APIs and invalid calls before they reach a device.
Compile, run tests, and inspect the simulator locally. Short feedback cycles mean fewer speculative retries and less context spent diagnosing a distant native build.
Initializr places the Codename One authoring skill in the project. The JavaSE tooling can register its built-in semantic UI tools with supported MCP hosts.
MCP control currently covers the simulator and JavaSE-hosted desktop tools. Packaged native and mobile targets do not yet include the launcher and transport.
Deployment targets
The same application model reaches phones, native desktops, browsers, watches, and TV. The Port Status page publishes the architecture, operating-system floor, and CI evidence for each target.
Inspect every port and testEngineering notes

July 22, 2026

July 21, 2026

July 20, 2026
Start with the real thing
The framework is open source and free to use commercially. Initializr generates a Maven project you can run locally, then build with local or cloud toolchains.