CodenameOne  by codenameone

Native cross-platform app framework

Created 11 years ago
1,865 stars

Top 23.1% on SourcePulse

GitHubView on GitHub
Project Summary

Codename One is an open-source, cross-platform framework enabling Java and Kotlin developers to build truly native mobile, desktop, web, TV, watch, and in-vehicle applications from a single codebase. It targets a wide array of devices and form factors, offering a unified development experience with native performance and direct access to platform-specific SDKs, aiming to accelerate development cycles for diverse application targets.

How It Works

Codename One employs the ParparVM compiler, which translates Java bytecode into C code. This C code is then compiled using the target platform's native toolchain, producing self-contained executables that do not require a Java Virtual Machine on the end-user's device. For Android, it generates a native Android Gradle project. The framework features a portable UI toolkit, ensuring consistent rendering across platforms, while providing native interfaces for platform-specific functionality and allowing integration of native views directly into the Codename One UI.

Quick Start & Requirements

  • Primary install/run: Create a Maven project at start.codenameone.com and open in a Maven-capable IDE. For building from source: git clone https://github.com/codenameone/CodenameOne, cd CodenameOne/maven, mvn install -Plocal-dev-javase.
  • Prerequisites: JDK 8 is required for building the Codename One framework from source due to specific compiler target requirements. JDK 11 through 25 are supported for running applications and the simulator.
  • Resource footprint: Building from source involves downloading approximately 1GB of dependencies.
  • Links: Project repository: https://github.com/codenameone/CodenameOne; Initializr: start.codenameone.com; Main site: https://www.codenameone.com/.

Highlighted Details

  • Features an instant simulator with live code reload and CSS live update, significantly reducing debugging and styling cycles.
  • ParparVM generates native executables for Apple, Windows, Linux, and JavaScript targets, ensuring small, self-contained applications.
  • Provides a full native escape hatch, allowing developers to use platform-specific SDKs and native libraries directly.
  • Supports a broad range of targets including Android, iOS, Windows, macOS, Linux, Web (JavaScript/PWA), Apple TV, Android TV, watchOS, Wear OS, Apple CarPlay, and Android Auto.

Maintenance & Community

The project is actively maintained with a community forum for discussions and GitHub Issues for bug reports and feature requests. A list of contributors is acknowledged, indicating community involvement.

Licensing & Compatibility

The project is described as "open source and commercially supported." The specific open-source license is not explicitly stated in the provided README, nor are explicit compatibility notes for commercial use or closed-source linking, though commercial support suggests such use cases are accommodated.

Limitations & Caveats

Building the Codename One framework from source necessitates using JDK 8 due to backward compatibility constraints within the toolchain. The specific open-source license under which the project is distributed is not explicitly detailed in the README.

Health Check
Last Commit

7 hours ago

Responsiveness

Inactive

Pull Requests (30d)
163
Issues (30d)
46
Star History
2 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.