πΆββοΈ Repository has moved
The Very Good Flutter Plugin template is now developed within the Very Good Templates repository, and can be found at very_good_templates/very_good_flutter_plugin.
Please file new issues on Very Good Templates.
Developed with π by Very Good Ventures π¦
A Very Good Flutter Plugin created by the Very Good Ventures Team.
β In order to start using Very Good Flutter Plugin you must have the Flutter SDK installed on your machine.
The src
directory contains the main my_plugin
package along with the platform interface and the platform-specific implementations.
You can run the example via:
cd src/my_plugin/example
flutter run
The plugin supports the following platforms:
- β Android
- β iOS
- β Linux
- β MacOS
- β Web
- β Windows
The Very Good Flutter Plugin template is available through an independent mason brick or via the Very Good CLI.
If you have not previously installed Very Good CLI, you can install it via:
Very Good CLI usage docs are available here.
-
Install mason
dart pub global activate mason_cli
-
Add the brick
mason add -g very_good_flutter_plugin
-
Make a new Very Good Flutter Plugin
mason make very_good_flutter_plugin
Very Good Flutter Plugin ships with 100% code coverage. To learn more about why we believe 100% code coverage is important and other testing best practices read our guide to Flutter testing.
Each platform implementation includes tests which can be run via:
flutter test
Very Good Flutter Plugin comes with a built-in GitHub Actions workflow but you can also add your preferred CI/CD solution.
Out of the box, on each pull request and push, the CI formats
, lints
, and tests
the code using Very Good Workflows. This ensures the code remains consistent and behaves correctly as you add functionality or make changes. The project uses Very Good Analysis for a strict set of analysis options used by our team. Code coverage is enforced using the [Very Good Coverage GitHub Action][very_good_coverage_link].
In addition, there are E2E tests as part of the my_plugin
workflow to ensure that the plugin correctly integrates with the host application on each platform.