s2_sdk_dart
A new Dart FFI package project.
Getting Started
This project is a starting point for a Flutter FFI package, a specialized package that includes native code directly invoked with Dart FFI.
Project structure
This template uses the following structure:
-
src: Contains the native source code, and a CmakeFile.txt file for building that source code into a dynamic library. -
lib: Contains the Dart code that defines the API of the plugin, and which calls into the native code usingdart:ffi. -
bin: Contains thebuild.dartthat performs the external native builds.
Building and bundling native code
build.dart does the building of native components.
Bundling is done by Flutter based on the output from build.dart.
Binding to native code
To use the native code, bindings in Dart are needed.
To avoid writing these by hand, they are generated from the header file
(src/s2_sdk_dart.h) by package:ffigen.
Regenerate the bindings by running dart run ffigen --config ffigen.yaml.
Invoking native code
Very short-running native functions can be directly invoked from any isolate.
For example, see sum in lib/s2_sdk_dart.dart.
Longer-running functions should be invoked on a helper isolate to avoid
dropping frames in Flutter applications.
For example, see sumAsync in lib/s2_sdk_dart.dart.
Flutter help
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.