CodenameOne  by codenameone

Native cross-platform app framework

Created 11 years ago
1,854 stars

Top 22.5% 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

14 hours ago

Responsiveness

Inactive

Pull Requests (30d)
102
Issues (30d)
28
Star History
13 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.