Files
Tony 6e9aab2ce7
ci / ✅ Semantic Pull Request (push) Has been cancelled
ci / 🔤 Check Spelling (push) Has been cancelled
ci / 👀 Detect Changes (push) Has been cancelled
Shorebird CI / changes (push) Has been cancelled
Shorebird CI / CSpell (push) Has been cancelled
ci / 🦀 Build ${{ matrix.crate }} (${{ matrix.os }}) (push) Has been cancelled
ci / 🎯 Build ${{ matrix.package }} (push) Has been cancelled
ci / ci (push) Has been cancelled
Shorebird CI / shorebird_code_push (push) Has been cancelled
Shorebird CI / shorebird_code_push_example (push) Has been cancelled
Shorebird CI / required (push) Has been cancelled
Point updater docs at GitHub Flutter fork
2026-06-26 01:40:25 +08:00

1.0 KiB

Contributing

We are happy to accept contributions!

Developing

FFI

The Dart code in this library communicates with the Updater (part of Shorebird's Flutter engine) via FFI.

For an Updater function to be visible to the Dart code, it must:

  1. Be declared in library/src/c_api/dart.rs as pub extern "C" (the Dart-stable surface). Functions only meant for the Flutter engine go in library/src/c_api/engine.rs instead and will not appear in the Dart bindings.
    1. The two buckets emit library/include/updater_dart.h and library/include/updater_engine.h respectively, generated by cbindgen when the Updater is built.
  2. Be included in the generated ffi bindings. These can be regenerated using dart run ffigen. ffigen reads only updater_dart.h, so engine-only symbols are not bound.
  3. Android specific: be listed in https://github.com/tony-cloud/flutter/blob/tonycloud/dev/engine/src/flutter/shell/platform/android/android_exports.lst