Skip to content

iOSonntag-templates/flutter-app

Repository files navigation

flutter-app WIP (Work In Progress)

A template combining some best practices & tools for developing a Flutter application.

  • 10x your development productivity
  • 20x less time spent on bugs
  • 30x your project setup speed and
  • 40x your skills in detecting 10x bullshit 😜

Notes

  • 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

Template Features

Note:
Detailed breakdown of a added repository features can be found in the Features Breakdown section.

Setup

Tip:
If you fork this repo instead of just cloning it, you benefit from future updates such as updated package versions or improved automations.

  1. Clone / Fork the repository
  2. Run pnpm run i in the root directory of the project*
  3. 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 like npm 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.

Features Breakdown

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 extension explorer-exclude you can toggle excluded files & folders off and on again.
Just use the command palette (CMD + SHIFT + P) and search for exclude and select this command:

ExplorerExclude: Toggle Visibility


Meaningful Commit Messages

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

(coming soon) - Automatic Versioning & CHANGELOG.md Generation

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

Preinstalled Flutter Packages

Template Configuration

Adding Another Platform

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.

TODO

  • add documentation for strings and build runner
  • add semantic-release feature
  • todo add recommended plugins (exclude)
  • add fluseo docs

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published