Compatibility matrix
Only versions actually exercised are listed. "Tested" means automated tests ran against that version on 2026-10-05 on the maintainer machine (macOS 27.2 arm64). CI runs the same checks on GitHub Actions (.github/workflows); tools/ci_local.sh runs the platform-independent steps locally.
| Component | Tested | How |
|---|---|---|
| Dart SDK | 3.11.5 | all package tests; workspace requires ≥ 3.9 |
| Flutter | 3.41.9 (stable) | example app build, widget test, integration tests, release APK builds |
package:jni / jni_flutter |
1.0.3 / 1.0.3 | generated bindings compile and run (host JVM + Android emulator) |
| Android platform parsed (full android.jar) | 36, 37.2 | full-jar extraction; 36 also full Flutter generation + dart analyze |
| Android platforms in diff | 35 → 36 | diff android |
| Android device (emulator) | API 37 (Pixel_7 AVD, arm64) |
26 Flutter integration tests (19 binding features incl. native view, Flow, typed constants, bytes; 7 showcase tasks: device status, clipboard, SharedPreferences, vibration, text-to-speech, settings intents, UI) |
Generated minApi guards |
24 | guard tests (device + host JVM) |
| Minor SDK versions | 36.1 availability (fixture), SDK_INT_FULL path |
unit + host-JVM tests |
| JDK | OpenJDK 25.0.2 (fixtures compiled with --release 17) |
fixture, golden, host-JVM runtime tests |
| CMake (host JNI helper) | 3.22.1 (from Android SDK) | tools/run_jvm_runtime_tests.sh |
| Xcode / iOS SDK | 27.0 / iPhoneSimulator 27.0 | libclang extraction; Foundation + UIKit full generation + dart analyze |
| iOS runtime (simulator) | 26.4 (iPhone 17) | 28 Flutter integration tests (examples/flutter/ios_slice; 21 binding features and 7 showcase tasks, deployment target 15.0; incl. blocks, main-actor check, native view, Swift adapters). iOS 27.0 simulators: React Native template apps without UIScene adoption do not launch (not a binding issue) |
package:objective_c |
9.5.0 | generated iOS bindings compile and run |
| Kotlin (fixture library) | Kotlin 2.4.20, kotlinx-coroutines 1.10.2, Gradle 9.6.0 | suspend, Flow, kotlin.Metadata: 32 host-JVM tests (tools/run_jvm_runtime_tests.sh, incl. Java fixtures), 3 Flutter integration tests and React Native suspend → Promise on the API 37 emulator; metadata decoding validated on kotlin-stdlib 2.4.20 and kotlinx-coroutines-core 1.10.2 |
| Swift (Layer 2 adapters) | Swift 6.4 (Xcode 27.0), CocoaPods 1.16.2 | fixture adapters (incl. collections, raw-value enums, throws, async): 6 unit/golden tests + 4 Flutter integration tests on the iOS 26.4 simulator; WeatherKit/TipKit/Charts adapters type-check |
| React Native on iOS | 0.87.1 (New Architecture, Hermes), CocoaPods 1.16.2 | release build for the iOS 26.4 simulator; 19 self-tests (tools/run_rn_ios_tests.sh; incl. showcase tasks, blocks, protocols in JS, NSData, native view) |
| React Native on Android | 0.87.1 (New Architecture, Hermes) | RN example release build (R8); 20 self-tests on the API 37 emulator (incl. showcase tasks, suspend → Promise, Uint8Array, native view); Jest runtime tests |
native_api_ui (Flutter plugin) |
0.1.0-beta.1 | native views on the Android emulator and iOS simulator |
| Node / TypeScript | 25.9.0 / 6.0.3 | tsc --strict on generated output (fixtures, slice, full android-36 SDK) |
Published packages#
| Channel | Package | Version |
|---|---|---|
| pub.dev | native_api_bindgen (CLI), native_api_runtime, native_api_ui, and native_api_ir, native_api_core, native_api_generator, native_api_android, native_api_ios, native_api_flutter_android, native_api_flutter_ios, native_api_react_native_android, native_api_react_native_ios |
0.1.0-beta.1 |
| npm | native-api-bindgen-runtime (dist-tags beta, latest) |
0.1.0-beta.1 |
| GitHub Releases / Homebrew | native-api-bindgen binaries: macOS arm64/x64, Linux x64/arm64; brew install lkrjangid1/tap/native-api-bindgen |
from tag v0.1.0-beta.1 |
Known constraints#
package:jni≥ 1.0 is required (generated code uses its extension-type API andJImplementer).- Android platforms must include
data/api-versions.xmlfor availability and non-SDK detection (all platforms tested do). - Physical devices: not tested (no consent was given to install on the attached Android phone; no iOS device available).
Source:
docs/compatibility/matrix.md