A template combining some best practices & tools for developing a Flutter application.
10x
your development productivity20x
less time spent on bugs30x
your project setup speed and40x
your skills in detecting10x
bullshit 😜
- initially only platform
macos
enabled - enabling more platforms is explained here - made for VSCode - adding support for other editors such as Android Studio should be just one Google search away - see this link
- Less important files & folders hidden by default
- Meaningful commit messages
- (coming soon) - Automatic versioning &
CHANGELOG.md
generation
Note:
Detailed breakdown of a added repository features can be found in the Features Breakdown section.
Tip:
If you fork this repo instead of just cloning it, you benefit from future updates such as updated package versions or improved automations.
- Clone / Fork the repository
- Run
pnpm run i
in the root directory of the project* - Run
pnpm run setup
in the root directory of the project*
*Questions you may ask yourself:
-
What is
pnpm
?pnpm
is a package manager that works likenpm
but is faster & more reliable.
Install it with:npm i -g pnpm
-
I do not see a
package.json
file. Why?The
package.json
file is only used for project setup and automation and thus is hidden as described here.
Hidden Files & Folders
Less important files & folders are hidden using "files.exclude"
from projects
.vscode/settings.json
workspace settings.
- keeps project clean and avoids cluttering
- feel free to change it to your needs
Tip:
If you install the VSCode extensionexplorer-exclude
you can toggle excluded files & folders off and on again.
Just use the command palette (CMD + SHIFT + P
) and search forexclude
and select this command:
ExplorerExclude: Toggle Visibility
Uses Husky to enforce a specific commit message format. Docs on the format are defined in the repository's GIT.md file.
- using npm package:
commitlint
- ensures consistent format across all commits
- required for semantic-release package to do its magic
Uses
semantic-release to
automatically create new versions of the project based on the commit messages.
It parses all commits since the last version tag and determines the next
version number based on the severity of the commits.
Also generates a CHANGELOG.md
file based on the commit messages.
- no worries about versioning
- automatic
CHANGELOG.md
generation - automatic
git tag
creation - works because of meaningful commit messages
-
(more coming soon)
You can add more platforms by running
# adds web & ios support to the project
flutter create --platforms=web,ios .
# Available Platforms:
# [macos, ios, android, linux, windows, web]
in the root directory of the project. Do not worry about your prior code changes, they are left untouched - the project will not be replaced.
- add documentation for strings and build runner
- add semantic-release feature
- todo add recommended plugins (exclude)
- add fluseo docs