Roadmap

Items below are plans, not features. Completed items are marked with the release that shipped them.

  • Phase 1 — Android Java API generation (Flutter). Vertical slice working in 0.1.0-beta.1 (2026-10-06): Intent, Uri, Bundle, Context, Activity, Handler, Looper, Runnable/Handler.Callback callbacks verified on an Android emulator. Whole-SDK generation compiles (android-36) but only the slice is runtime-tested.
  • Phase 2 — Android callbacks/generics/annotations at scale. Partial: annotations and erasure-based generics in the slice. Done (0.1.0-beta.1): library jars/AARs, Kotlin suspend → Future (Flutter), Dart generics, bean properties, typed @IntDef/@LongDef/@StringDef constants. Done (0.1.0-beta.1): kotlin.Metadata (nullability, parameter names, default-argument notes), Flow → Stream (Flutter), suspend → Promise (React Native). Planned: Flow for React Native.
  • Phase 3 — Objective-C / iOS. Flutter vertical slice working (0.1.0-beta.1): Xcode SDK discovery, libclang extraction, Dart over package:objective_c; Foundation/UIKit APIs verified on an iOS 26.4 simulator (12 tests). Done (0.1.0-beta.1): main-actor threading, blocks (NS_NOESCAPE synchronous, escaping primitive listener blocks, Future forms), byte helpers. Planned: escaping blocks with object arguments and Dart-implemented protocols (need generated native trampolines).
  • Phase 4 — Flutter production runtime. Done (0.1.0-beta.1): size and call-overhead benchmarks on emulator/simulator. Done (0.1.0-beta.1): byte-transfer, memory-per-handle, AAB / iOS app size and emulator startup measurements. Planned: physical-device benchmarks, sharded packages.
  • Phase 5 — React Native New Architecture. Android and iOS vertical slices working (0.1.0-beta.1): TypeScript + one pure C++ Turbo Module + JSI HostObjects, backed by JNI on Android and an Objective-C++ NSInvocation runtime on iOS; 12 self-tests each on an Android emulator and an iOS simulator. Done (0.1.0-beta.1): iOS blocks (generated block factories) and protocols implemented in JavaScript, byte[] as Uint8Array, NSData helpers.
  • Phase 6 — Swift-only API adapters. Layer 2 working for Flutter (0.1.0-beta.1): symbol-graph discovery + generated @objc adapters for the Objective-C-representable subset, verified on a simulator. Done (0.1.0-beta.1): async (completion handlers), throws (NSError **), raw-value enums, collections. Planned: React Native example coverage for adapters.
  • Phase 7 — Native UI integration layer. Done (0.1.0-beta.1): native_api_ui Flutter plugin (NativeView.android / .ios) and React Native <NativeView>, each verified with a rendered native view.
  • Distribution. Done (0.1.0-beta.1): Dart packages on pub.dev, native-api-bindgen-runtime on npm, prebuilt CLI binaries on GitHub Releases and the Homebrew tap lkrjangid1/tap (see docs/releasing.md). Planned: homebrew-core once the project leaves beta.
  • Website (GitHub Pages). Built (0.1.0-beta.1): dart run tools/build_website.dart; deployment workflow ready (GitHub links appear automatically from the repository URL), deployed by .github/workflows/website.yml once GitHub Pages is enabled. native-api-bindgen docs generates a local API reference.

Tracked limitations of the current version are listed in docs/compatibility/matrix.md.

Source: docs/roadmap.md