Native, and you own the UI

Native apps in Java
A UI you control

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.

Main.java
Form app = new Form(
    "Explore", new BorderLayout()
);

app.add(CENTER, buildContent());
app.add(SOUTH, buildTabs());
app.show();

Native iOS 26Codename One Metal

Native iOS 26 and Codename One Liquid Glass tab selection states in light and dark appearance
Codename One Android Material 3 light and dark theme test capture
Real runtime captures Native reference beside Codename One Liquid Glass, plus Android Material 3.

Own the result

The screen you test is the screen you ship.

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.

Control the pixels

Theme the shared UI with CSS, draw directly when you need to, and keep brand behavior consistent across targets.

Ship one behavior

Fix shared application logic and UI once instead of maintaining separate screen implementations for each platform.

Drop to native when it matters

Call platform SDKs through native interfaces. Embed a map, web view, camera surface, or other heavyweight view with PeerComponent.

The build path

Java in. Native applications out.

Use Maven and your existing IDE. Codename One supplies the portable runtime, platform ports, and build tooling.

  1. 1

    Write the application once

    Application logic and the shared UI stay in a standard Maven project.

    Start the project
  2. 2

    Run and inspect locally

    The simulator provides device skins, component and network inspectors, test recording, and live CSS.

    See the development tools
  3. 3

    Build with native toolchains

    Generate platform projects or use the cloud service to build app-store binaries, including iOS builds without a Mac.

    Submit your first native build

Agentic development

Give the agent a strict codebase and a short feedback loop.

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.

Java

Java keeps edits in bounds

Agents know Java deeply. Static types, bytecode compliance, and the compiler reject unsupported APIs and invalid calls before they reach a device.

Local

Fast loops use fewer tokens

Compile, run tests, and inspect the simulator locally. Short feedback cycles mean fewer speculative retries and less context spent diagnosing a distant native build.

Tools

Skills and MCP ship with the tools

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

One Java project across the ports we test.

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 test
  • Android ARM64, ARMv7, x86_64 API 19 and newer
  • iOS and iPadOS ARM64 devices; ARM64 simulator iOS 14 and newer
  • macOS Apple silicon and Intel through Mac Catalyst macOS 10.15 and newer
  • Web Browser JavaScript runtime Current Chromium, Firefox, and WebKit engines
  • Linux x64 and ARM64 glibc 2.28 or newer with GTK3; Alpine Linux through the opt-in musl target
  • Windows x64 and ARM64 Windows 10 and newer; Windows 11 for Widgets Board packages
  • watchOS ARM64_32 devices; simulator watchOS 10 and newer
  • tvOS ARM64 devices; simulator tvOS 13 and newer
  • Vehicle integrations CarPlay and Android Auto Portable Java templates map to native CarPlay and Android Auto UI.
  • System surfaces Widgets, Live Activities, Dynamic Island Portable Java surface APIs publish to iOS, Android, and desktop renderers.

Engineering notes

Read the mechanisms, not a brochure.

All engineering posts

Start with the real thing

Create the project. Run it locally. Build for iOS.

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.