Skip to content

Technical Milestones

Engineering timeline from idea to device-validated MIDlets.

timeline
    title CoreJ2 embedded runtime path
    section Foundations
        Idea : Native iOS J2ME product
        Library and Import : SwiftData + Import Engine
        Emulator Bridge : Protocol boundary to FreeJ2ME
    section Embedded JVM
        Embedded JVM : OpenJDK Mobile Zero linked in-process
        JNI_CreateJavaVM : Device-capable VM bring-up
    section Graphics stack
        AWT : BufferedImage / graphics natives
        ImageIO : Sandbox-safe image codecs
        JPEG : Decode path for MIDlet assets
        FontManager : Fontconfig / CFontManager
        First LCD : FreeJ2ME PlatformImage → SwiftUI surface
    section Product validation
        First Commercial MIDlet : Real JAR smoke on device
        Persistent JVM : Reuse VM across sessions
        RMS : Sandboxed dataPath RecordStores
        Miami Nights gameplay : Commercial title playable on iPhone
        Compatibility Program : Public matrix and corpus expansion

Narrative

Milestone Meaning
Idea Ship J2ME on iPhone with first-party UX
Embedded JVM In-process OpenJDK Mobile instead of external process
JNI_CreateJavaVM Correct java.home / boot path on device
AWT Enough desktop graphics natives for FreeJ2ME buffers
ImageIO / JPEG Asset decode without desktop filesystem assumptions
FontManager Text rendering dependencies for LCD
First LCD Pixels from FreeJ2ME into EmulatorView
First commercial MIDlet Unmodified JARs beyond hello-world
Persistent JVM Launch/stop cycles without destroying the VM every time
RMS Writable RecordStore paths under Documents
Miami Nights gameplay Commercial title: launch, menus, gameplay, save/load on device
Compatibility Program Public, data-driven title matrix

See also: Architecture · Roadmap · Technical Reports