Skip to content

Commit 3cb92cf

Browse files
authored
docs(very_good_core): improve README (#78)
1 parent c86c4e0 commit 3cb92cf

File tree

1 file changed

+72
-14
lines changed

1 file changed

+72
-14
lines changed

doc/very_good_core.md

Lines changed: 72 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,47 @@
1-
# Very Good Core
1+
# Very Good Core 🦄
22

33
[![Very Good Ventures][logo]][very_good_ventures_link]
44

55
Developed with 💙 by [Very Good Ventures][very_good_ventures_link] 🦄
66

7-
![coverage][coverage_badge]
8-
[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link]
9-
[![License: MIT][license_badge]][license_link]
10-
117
A Very Good Flutter Starter Project created by the [Very Good Ventures Team][very_good_ventures_link].
128

13-
Generated by the [Very Good CLI][very_good_cli_link] 🤖
9+
## Getting Started 🚀
1410

15-
---
11+
**❗ In order to start using Very Good Core you must have the [Flutter SDK][flutter_install_link] installed on your machine.**
1612

17-
## Getting Started 🚀
13+
### Installation 💻
14+
15+
For first time users, start by installing the [Very Good CLI from pub.dev][very_good_cli_link].
16+
17+
```sh
18+
$ dart pub global activate very_good_cli
19+
```
20+
21+
### Create a new Flutter Project 🆕
22+
23+
Then, you can use the `very_good create` command just like you would `flutter create`
24+
25+
![Very Good Create][very_good_create]
26+
27+
**💡 Upon first use, you will be prompted about anonymous usage statistics. You can adjust these settings at any time via the `--analytics` flag**
28+
29+
```sh
30+
# opt into anonymous usage statistics
31+
very_good --analytics true
32+
33+
# opt out of anonymous usage statistics
34+
very_good --analytics false
35+
```
36+
37+
### Running the Project ⚡
38+
39+
Once you have finished running `very_good create` with the project directory of your choice, you can change directories into the new project directory and install the dependencies
40+
41+
```sh
42+
$ cd my_app
43+
$ flutter packages get
44+
```
1845

1946
This project contains 3 flavors:
2047

@@ -37,9 +64,29 @@ $ flutter run --flavor production --target lib/main_production.dart
3764

3865
_\*Very Good Core works on iOS, Android, and Web._
3966

67+
Now your app is running 🎉
68+
69+
---
70+
71+
## Why Very Good Core? 🤔
72+
73+
We liked the simplicity and developer experience of running `flutter create` when getting started on a new project. We wanted to provide a similar experience with `very_good create` which built on top of `flutter create` and includes the core standards and best practices we use at [Very Good Ventures][very_good_ventures_link].
74+
75+
We built the CLI to be extensible so it could potentially support multiple commands and templates in the future.
76+
77+
## Project Structure and Architecture 🏗️
78+
79+
Although Very Good Core is fairly basic in terms of functionality, the architecture and project structure is intended to scale from a simple hobby project to a large production ready application.
80+
81+
A folder-by-feature project structure is used to maintain a modular project structure which helps the project scale as the number of features and/or developers increase. In Very Good Core there is only a single feature (`counter`) to start but that will quickly change as you build out your project. Each feature usually consists of a `view` and a `cubit` (or `bloc`). The view is responsible for holding the UI (`Widgets`) which the user sees and interacts with and the `cubit`/`bloc` is responsible for containing the business logic needed to manage the state of the feature. For more details [read our best practices for building scalable apps][scalable_best_practices_blog_link].
82+
4083
---
4184

42-
## Running Tests 🧪
85+
## Testing 🧪
86+
87+
Very Good Core 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][very_good_testing_blog_link].
88+
89+
### Running Tests 🧑‍🔬
4390

4491
To run all unit and widget tests use the following command:
4592

@@ -158,13 +205,24 @@ Update the `CFBundleLocalizations` array in the `Info.plist` at `ios/Runner/Info
158205
}
159206
```
160207

161-
[coverage_badge]: ../coverage_badge.svg
208+
---
209+
210+
## Continuous Integration 🤖
211+
212+
Very Good Core comes with a built-in [GitHub Actions workflow][github_actions_link] but you can also add your preferred CI/CD solution.
213+
214+
Out of the box, on each pull request and push, the CI `formats`, `lints`, and `tests` the code. This ensures the code remains consistent and behaves correctly as you add functionality or make changes. The project uses [Very Good Analysis][very_good_analysis_link] 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].
215+
216+
[flutter_install_link]: https://flutter.dev/docs/get-started/install
162217
[flutter_localizations_link]: https://api.flutter.dev/flutter/flutter_localizations/flutter_localizations-library.html
163218
[internationalization_link]: https://flutter.dev/docs/development/accessibility-and-localization/internationalization
164-
[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg
165-
[license_link]: https://opensource.org/licenses/MIT
219+
[github_actions_link]: https://docs.github.com/en/actions/learn-github-actions
166220
[logo]: https://raw.githubusercontent.com/VeryGoodOpenSource/very_good_analysis/main/assets/vgv_logo.png
167-
[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg
221+
[scalable_best_practices_blog_link]: https://verygood.ventures/blog/scalable-best-practices?utm_source=github&utm_medium=banner&utm_campaign=CLI
168222
[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis
169-
[very_good_cli_link]: https://github.com/VeryGoodOpenSource/very_good_cli
223+
[very_good_core_link]: very_good_core.md
224+
[very_good_coverage_link]: https://github.com/marketplace/actions/very-good-coverage
225+
[very_good_cli_link]: https://pub.dev/packages/very_good_cli
226+
[very_good_create]: https://raw.githubusercontent.com/VeryGoodOpenSource/very_good_cli/main/doc/assets/very_good_create.png
227+
[very_good_testing_blog_link]: https://verygood.ventures/blog/guide-to-flutter-testing?utm_source=github&utm_medium=banner&utm_campaign=CLI
170228
[very_good_ventures_link]: https://verygood.ventures/?utm_source=github&utm_medium=banner&utm_campaign=core

0 commit comments

Comments
 (0)