For iOS and macOS: Xcode, via CocoaPods.
    
      See the documentation in ios/hello.podspec.
      See the documentation in macos/hello.podspec.

For Linux and Windows: CMake.
    
      See the documentation in linux/CMakeLists.txt.
      See the documentation in windows/CMakeLists.txt.

Step 3: 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/hello.h) by package:ffigen.
Regenerate the bindings by running the following:

flutter pub run ffigen

-config ffigen.yaml

Step 4: Invoking native code

Very short-running native functions can be directly
invoked from any isolate.
For an example, see sum in lib/hello.dart.