What is Very Good Core?
Our team created Very Good Core to provide a starter app option for developers looking for a very good foundation. It comes with our best practices and opinionated architecture. As with any starter app, feel free to build upon it, remove code, and make it your own!
Very Good Core Features
Very Good Core follows the Very Good Ventures way of architecting apps — this is not the only way, or the right way, it is simply the way that works best for us when building scalable applications and we want to make it available to the Flutter Community!
Very Good Core includes the following features:
- Cross Platform Support: Built-in support for iOS, Android, and Web (Desktop coming soon!)
- Build Flavors: Multiple flavor support for development, staging, and production
- Internationalization Support: Internationalization support using synthetic code generation to streamline the development process
- Sound Null-Safety: No more null-dereference exceptions at runtime — develop with a sound, static type system
- Bloc State Management: Integrated bloc architecture for scalable, testable code which offers a clear separation between business logic and presentation
- Testing: Unit and Widget Tests with 100% line coverage (Integration Tests coming soon!)
- Logging: Built-in, extensible logging to capture uncaught Flutter and Dart Exceptions
- Very Good Analysis: Strict Lint Rules which are used at Very Good Ventures
- Continuous Integration: Lint, format, test, and enforce code coverage using GitHub Actions
We also wrote a comprehensive guide that gives an overview of the app architecture, features, and more. View it on GitHub here.
How it works: Very Good CLI
You can bootstrap our very good Flutter app template, Very Good Core, with one command very_good create via our CLI tool.
Very Good CLI is a Command Line Interface for Dart. Currently the CLI has support for creating new Flutter projects from scratch. Initially, the only template we support is Very Good Core, but we may support additional feature-rich templates, so stay tuned for future releases.
Very Good CLI is built on top of mason, an open source template generator written in Dart, which helps developers generate files from custom templates called bricks. If you want to try building your own Flutter app template (or any template, for that matter), head over to the mason documentation for more.
Getting Started
To generate the Very Good Core starter app with Very Good CLI, just activate the very_good_cli package from pub.dev.
Then, run the create command in a new project directory (just like flutter create):
Voila, your new very good project has been created!
Each project comes with the build flavors out of the box — development, staging, and production. You can run them by using the built-in launch configuration for VSCode and Android Studio or using the following commands:
What about companies & development teams?
We think that Very Good Core will be most useful for individual developers looking to quickly bootstrap a project that has a built-in scalable templated foundation. For teams looking for an enterprise-grade starter app, we built Very Good Start, which we use in combination with our advisory services to accelerate app development.