Codename One: Cross-Platform App Development with Java/Kotlin

6 min read Original article ↗

  Write Once, Run Anywhere

Make Your Java Kotlin Code Native Everywhere!

An open-source mobile first toolkit for building high quality, cross-platform native apps for Android, iOS, Desktop & Web.

Trusted by 40k+ developers

Codename One - Hero illustration

Write Once  

Run Anywhere  

One Codebase, Multiple Apps

Rapid cross-platform app development using Java or Kotlin with 100% code reuse. Apps are compiled down to native code for maximum performance and a smooth user experience.

Developer-friendly Tooling

Write, debug, and test apps all inside your IDE (IntelliJ, Eclipse, VSCode or NetBeans) using the Codename One simulator. One click for app-store ready device builds, without the headache of maintaining native SDKs.

Pixel Perfect Design

Build beautiful UI with Codename One’s rich set of widgets, specifically designed for mobile apps. Native look and feel out of the box, but fully themeable using CSS to provide your own unique look.

Native Performance

Compiles Java or Kotlin into native code for iOS, UWP (Universal Windows Platform), Android and even JavaScript (with seamless PWA and Thread support)

Extensible

Easily extendable with a rich ecosystem of native and generic add-on libraries/plugins (cn1libs) developed both by Codename One and the community.

Hot Reload

Changes you make in your Java/Kotlin source code will be applied immediately to your already-running app in the simulator.

CSS Live Update

When you make changes to your app’s CSS stylesheet, the changes are reflected instantly in the simulator. This includes changing your theme, images, fonts etc.

Established & Mature

~180M apps installed across platforms and ~40k Developers. Version 1.0 was released in 2012. It was the first solution to build native iPhone apps in Java.

Free & Open Source

The core of Codename One is free and open source. GPL + CE licensed so it is free to use with commercial projects.

How it works

Codename One is a toolkit that allows you to easily build beautiful cross-platform apps targeting iOS, Android, and the web using Java or Kotlin.

What Codename One is...

Runtime Library

A cross-platform runtime library tailored to mobile app development.

Build Tools

The foundation that allows you to do Write-Once-Run-Anywhere on mobile. This includes all of the tools required to convert JVM bytecode into native executables on each mobile platform. You dont need to worry about these, since this is all handled seamlessly by the build server.

Add-Ons

A rich ecosystem of add-on libraries developed both by Codename One and the community.

Widgets

A cross-platform light-weight UI component library designed for mobile.

GUI Builder

A GUI builder for building beautiful user interfaces with drag-and-drop.

Build Server

A cloud-based build service allowing you to build app-store ready apps with a single click; without the headache of maintaining complicated native toolchains.

Simulator

A simulator that allows you to test and debug your app right inside your IDE.

codename-one-architecture

What Codename One is NOT...

HTML5/Javascript

Codename One apps are not simply HTML5/Javascript apps wrapped in a web view. They are fully-native apps that are compiled down to native code, and they have full access to the native APIs of each platform.

Want to use some HTML in your app? No problem! Codename One has a WebView widget that will allow you to wrap HTML5 inside your app seamlessly.

Want to deploy your app on the web? No problem. Codename One apps can also be compiled to Javascript and run inside a web browser without requiring any plugins.

Java bindings to Native Widgets and APIs

Unlike some other toolkits that merely provide bindings to native components and APIs, Codename One's UI component library is light-weight and truly cross-platform. This provides 100% code reuse across platforms, not only for business logic, but for the UI also.

Can I still use native widgets in my app?

Yes you can! In fact you can even mix native widgets and light-weight widgets together inside a Codename One app seamlessly.

Can I access native APIs in my app?

Yes, you can access both system APIs and 3rd party native frameworks and libraries.

Made with Codename One

BeRider

Shared electric scooters in Prague. Highly rated app with Google Maps integration.  

Shared electric scooters in Prague. Highly rated app with Google Maps integration.

Jubilee Motor

Car insurance app by Jubilee General Insurance.

Car insurance app by Jubilee General Insurance.

Point of Sale (POS) system.

HBZ

Mobile banking app of Habib Bank AG Zurich, a Swiss multinational commercial bank based in Zurich, Switzerland.  

Mobile banking app of Habib Bank AG Zurich, a Swiss multinational commercial bank based in Zurich, Switzerland.

Ana Paltel

Paltel account manager app by Palestine Telecommunications Company.  

Paltel account manager app by Palestine Telecommunications Company.

yHomework

Math solver app. Highly rated, 1M+ installs.  

Math solver app. Highly rated, 1M+ installs.

Oxbridge Academy

Private distance learning college based in South Africa.  

Private distance learning college based in South Africa.

Arrivu

Voice/AI technology solutions.

Voice/AI technology solutions.

Previous

Next

Loved by Developers, Trusted by Enterprises

Codename One customers

"Affordable cross-platform toolchain that works!""Easy extension with third-party libraries, active developer support and attractive pricing..."

Chidiebere Okwudire

Chidiebere OkwudireSMash ICT Solutions/Senior Engineer at Sioux, Netherlands

"Over 2 million active installations" "[A] mature, solid and reliable platform. It allows you to concentrate [on] developing your app, not platform specific implementations... "

Ram Nathaniel

Ram NathanielCEO and Founder of MathUnderground, Israel

"I would advise to all developers to try it out today!" "Easy extension with third-party libraries, active developer support and attractive pricing... "

Lucky Oscar Masango

Lucky Oscar MasangoCTO at BOi Global Group, South Africa

"Going from design to working app is a breeze" "Codename One greatly reduced our development time and costs, while giving us the ability to deliver a custom experience in each platform when needed."

Fabricio Cabeça

Fabricio Cabeça Senior Developer at Pmovil, Brazil

"a true write once run anywhere solution!" "Codename One has proven to be a productive tool for us - a true write once run anywhere solution! "

Fabrizio Grassi

Fabrizio GrassiChemetall, Italy

"Simply a great framework!" "[We had] some non conventional requirements and Codename One gave us good answers for all the challenges that we faced during app development."

Hélio Rugani

Hélio RuganiSócio Proprietário, Brazil

"Fast and efficient" "Fast and efficient way to eliminate the hassle of targeting multiple platforms without resorting to HTML5! "

Rex Green

Rex GreenVision24, South Africa

"I utilize my Java knowledge to deliver native apps" "I can deliver native apps for both platforms from a single codebase in half the time, at half the cost, with no need to hire anyone. "

Gareth Murfin

Gareth MurfinDeveloper, Taiwan

Blog

[x]

We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept”, you consent to the use of ALL the cookies.