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
1.0 KiB
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:
- Be declared in
library/src/c_api/dart.rsaspub extern "C"(the Dart-stable surface). Functions only meant for the Flutter engine go inlibrary/src/c_api/engine.rsinstead and will not appear in the Dart bindings.- The two buckets emit
library/include/updater_dart.handlibrary/include/updater_engine.hrespectively, generated by cbindgen when the Updater is built.
- The two buckets emit
- Be included in the generated ffi bindings. These can be regenerated using
dart run ffigen. ffigen reads onlyupdater_dart.h, so engine-only symbols are not bound. - Android specific: be listed in https://github.com/tony-cloud/flutter/blob/tonycloud/dev/engine/src/flutter/shell/platform/android/android_exports.lst