The past, present, and future of native interop
summary
Roadmap from platform channels to a future where importing a native library just works, showing concrete tools: Pigeon, FFIgen and JNIgen, and a proposal for build hooks and link hooks that compile per-target static libs and run the native linker to strip unused native code. Demonstrations include async platform-channel races (get/set volume), synchronous FFI calls removing that race, a run-on-platform-thread shim, native hot-restart and multi-language debugging as next challenges.
AI-written summary · about
chapters (13)
- 0:00Dart native interop vision
- 1:48Evolution of Dart’s native tools
- 4:58Platform channels limitations
- 8:05Pigeon for safer native calls
- 15:10Dart FFI and JNI gen
- 20:51Threading in native interop
- 23:37Bundling native code challenges
- 25:45Native assets for builds
- 30:41Optimizing native code size
- 33:06Hot reload and concurrency ideas
- 35:36Debugging multi-language interop
- 37:23Seamless native imports
- 38:05Q&A
related talks
43mSummit Session 2 - Past, Present and Future of Native Interop
36mFlutter Plugins - From Method Channels to Native Interop
39mAdopting native assets for cross-platform FFI plugins
30mBinding Native Plugins with Flutter and Dart
31mSeamless Interoperability: Harnessing JNIGen and FFIGen
40mKMP with non-Kotlin languages
42mBlurring the Line between Native and Web
41mKotlin-Native for Android developers
