Documentation
Documentation
Everything in the repository's docs/ directory, published here and versioned with the code. New to the tool? Start with Getting started.
Guides
Getting started (Flutter on Android)Step by step: install the native-api-bindgen CLI, check your machine, configure the Android APIs you need, and…
Flutter / Dart targetHow generated Flutter bindings call Android APIs through package:jni without MethodChannel: generated code shape…
React NativeGenerating a React Native bindings library for Android and iOS: setup, usage from TypeScript, call semantics, and the…
Android supportWhat native-api-bindgen reads from android.jar and api-versions.xml, which Java and Kotlin API shapes it generates…
iOS / Apple (Flutter)Generating Flutter bindings for iOS: Objective-C APIs via libclang, main-actor threading, blocks, protocols, and @objc…
Native UI integration layerHow generated bindings show native Android and iOS views inside Flutter and React Native view trees with native_api_ui…
TroubleshootingFixes for common native-api-bindgen problems: SDK not found, missing methods, unavailable APIs, released objects and…
Architecture
Architecture overviewHow native-api-bindgen is structured: the IR as single source of truth, the packages, and the data flow from SDK…
Native IRThe Native IR: platform-neutral nodes, types, stable symbol IDs and validation rules that connect the SDK parsers to…
Type mapping (Flutter / Dart over package:jni)How Java and Kotlin types map to Dart types and JNI arguments in generated Flutter bindings, plus the naming rules for…
Native object lifecycle, callbacks and threadingHow generated bindings own native objects, release them, implement Java callbacks in Dart, and handle threads and…
React Native target: TypeScript → JSI → C++ → JNI / Objective-CHow generated React Native bindings call Android and iOS APIs: TypeScript modules, a JSI host object, a C++ Turbo…
Technical designDesign decisions behind native-api-bindgen: the IR, Android class-file parsing, Flutter Android generation, and what…
Reference
Diagnostic / error codesEvery native-api-bindgen diagnostic code (E001 and up): what it means, why a symbol was skipped, and what to do about…
VersioningHow native-api-bindgen versions the generator, the IR schema and generated APIs, and what counts as a breaking change.
Compatibility matrixVersions of Flutter, Dart, React Native, Android SDK, Xcode and JDK that native-api-bindgen has been tested with, plus…
BenchmarksIndex of native-api-bindgen benchmarks: release APK size of generated bindings and call overhead compared with…
PerformanceMeasured call overhead of generated Flutter and React Native bindings versus MethodChannel on Android and iOS, plus…
Binary sizeMeasured app size impact of generated bindings: Flutter and React Native release APKs, iOS app size, App Bundle and…
Official source registryThe first-party sources behind each native-api-bindgen parser and generator: local SDK inputs and official Flutter…
Project
RoadmapPlanned work for native-api-bindgen by phase: Android and iOS API coverage, callbacks, generics, Kotlin and Swift…
Test strategyHow native-api-bindgen is tested: unit, fuzz, fixture, golden and integration tests on emulators and simulators, and…
Implementation planThe staged implementation plan for native-api-bindgen and the quality gates every stage passes: format, analyze, unit…
Legal
License policyThe native-api-bindgen license policy: Apache-2.0 project source, what it does not cover, and how audit-license…
Source provenanceWhere every input and output of native-api-bindgen comes from: what is consumed locally, what is redistributed, and…
Android legal / attribution policyHow native-api-bindgen uses the Android SDK: inputs, documentation licensing, redistribution of generated bindings…
Apple SDK policyHow native-api-bindgen reads Apple SDK headers in place with Xcode, what it never copies, and what the Xcode and Apple…
Flutter / Dart policyPolicy for Flutter and Dart: package:jni as a normal pub dependency, the documented Java interop path, no…
React Native policyPolicy for React Native: New Architecture via documented Turbo Module setup, no vendored React Native sources, and…
More
Generated API reference
Run native-api-bindgen docs in your project: it writes generated-docs/, one page per generated type with the native symbol, the generated symbol, availability, threading, permissions, reason codes and a link to the official reference. It contains metadata only — no SDK documentation is copied — and stays local by default because it is derived from the SDK on your machine.
Commands
native-api-bindgen doctor # SDKs and toolchains found
native-api-bindgen generate ... # android | flutter | ios | react-native
native-api-bindgen update # regenerate configured targets
native-api-bindgen coverage # generated vs. discovered, with reasons
native-api-bindgen why-skipped # why a symbol was not generated
native-api-bindgen docs # generated-docs/ (local API reference)
native-api-bindgen audit-license # check inputs and outputs for licensing issues