/flutter_app_template

Flutter App Templete is a project that introduces an approach to architecture and project structure for developing Flutter apps.

Primary LanguageDartMIT LicenseMIT

flutter_app_template

Flutter app code check melos codecov

Flutter App Template

"Flutter App Template" is a project to template and introduce an approach to developing Flutter apps, including architecture and project structure.

"Flutter App Template" repository employs a mono-repo and consists of several internal packages and apps.

Packages overview

themes

This package is responsible for the appearance of ThemeData and other appearance-related data used in Flutter apps.

util

This package stores general-purpose functions that are too small to be cut out into a stand-alone package.

App overview

flutter_app

This is a template app package for Flutter apps. It comes with dev, stg, and prod environments set up.

Change the app ID or app name to start building it as a separate app right away.

Also check the flutter_app/README.md.

How to start development

make

The make command will install the required Dart packages, such as FVM and Melos.

ToDo list required after creating a new repository using this template

  1. Replace Bundle ID (Package name) with your App ID. jp.co.altive.fat -> your.domain.id
  2. Change appName in {flavor}.env to your app name.
  3. Create a project in Firebase.
  4. Create an Android app, download google-services.json, and place it in android/app/src/{dev or stg or prod}.
  5. Create an iOS app, download GoogleService-Info.plist, and place it in ios/{dev or stg or prod}.
  6. Modify googleReversedClientId in dart_defines/{dev, stg, prod}.env to match the contents of each GoogleService-Info.plist.
  7. Create a Web app and modify the parameters in firebaseConfig in web/index.html according to the Firebase SDK additions. - apiKey, authDomain, databaseURL, projectId, storageBucket, messagingSenderId, appId, measurementId

How to create a new package

If the project name and the output directory name of the package are the same, --project-name can be omitted.

# Package
flutter create -t package packages/{directory_name} --project-name {project_name}
# App
flutter create --org jp.co.altive packages/{directory_name} --project-name {project_name}

Firebase SDK version for iOS and macOS

FirebaseSDKVersionTag.txt manages the SDK version you wish to specify.

↓ For the latest version, click here. https://github.com/invertase/firestore-ios-sdk-frameworks/releases

Addition of ISSUE_TEMPLATE

If you do not have .github/ISSUE_TEMPLATE in a repository, you can use Issue templates placed in a special repository named .github.

For altive organization, the Issue templates in the altive/.github repository should also work for this repository.

If necessary, please copy and use the Issue template from the above repository.

References

Internationalization User Guild PresentationDomainSeparation Flutter Architecture Blueprints

Thank you!