~/talk

Binding Native Plugins with Flutter and Dart

Talkat Fluttercon USA 2025 · 2025-06-25..06-26· [flutter, embedded-and-hardware]
name:Jeff Ward
links:none on file
slides:none on file

Compares method channels, FFI gen and JNI gen by measuring real code: sends 410KB JSON over method channel to show async latency, uses OpenCV ArUco detection as a practical workload, and benchmarks on Pixel 9 and iPhone 12 where FFI/JNI shave milliseconds off roundtrip time and give synchronous responses while classify CPU time stays similar. Describes memory arenas, JNI dollar overloads, callback patterns (send/receive ports, pointer_from_function, native_callable_listener), static linking pitfalls, and links to full GitHub source.

AI-written summary · about

  1. 0:00Native plugin binding intro
  2. 1:25Why bind native plugins
  3. 3:14Method channels deep dive
  4. 6:25Beyond method channels with FFI/JNI
  5. 7:49OpenCV example and performance tests
  6. 9:15FFI gen setup for C
  7. 12:23JNI gen for Java/Kotlin
  8. 16:13Advantages and drawbacks of FFI and JNI
  9. 18:38Callbacks in native plugins
  10. 24:02Bluetooth LED demo with callbacks
  11. 26:51Choosing binding approach
  12. 28:21Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.