A new Dart FFI package project.
This project is a starting point for a Flutter FFI package, a specialized package that includes native code directly invoked with Dart FFI.
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.
build.dart does the building of native components.
Bundling is done by Flutter based on the output from build.dart.
To use the native code, bindings in Dart are needed.
To avoid writing these by hand, they are generated from the header file
(src/native_add_example.h) by package:ffigen.
Regenerate the bindings by running dart run ffigen --config ffigen.yaml.
Very short-running native functions can be directly invoked from any isolate.
For example, see sum in lib/native_add_example.dart.
Longer-running functions should be invoked on a helper isolate to avoid
dropping frames in Flutter applications.
For example, see sumAsync in lib/native_add_example.dart.
For help getting started with Flutter, view our online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.