Giter Site home page Giter Site logo

rajibhossain-bd / flutter_app_template Goto Github PK

View Code? Open in Web Editor NEW

This project forked from altive/flutter_app_template

0.0 0.0 0.0 14.44 MB

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

License: MIT License

Shell 0.32% JavaScript 0.18% Ruby 1.74% C++ 4.30% C 0.29% Objective-C 0.02% Kotlin 0.08% Dart 87.28% Swift 0.49% Makefile 0.10% HTML 1.39% CMake 3.81%

flutter_app_template's Introduction

flutter_app_template

melos codecov

README in other languages

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

analysis_logger

This package is responsible for the function (responsibility) of event logging and sending crash reports.

Currently using Firebase Analytics and Crashlytics.

authenticator

This package is responsible for the function (responsibility) of authenticating users, such as logging in.

Currently using Firebase Authentication.

convenient_widgets

A generic widget placement location that can be used in multiple packages.

notification_receiver

This package takes care of functions (responsibilities) related to setting notification permissions and receiving push notifications for the application.

Currently using Firebase Cloud Messaging.

notification_sender

This package is responsible for functions (responsibilities) related to local notification display and schedule registration.

Currently using flutter_local_notifications.

remote_parameter_fetcher

This package is responsible for the function (responsibility) of retrieving remotely configured parameters and providing them in a specified type.

Currently using Firebase Remote Config.

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.

restock_app

Stockpile management app. for Japan using Amazon.co.jp. Slightly older, so some legacy code.

ranking_note_app

An application to create and share rankings. Not yet released.

onetaplog_app

An application that allows you to log various records of your life with a single tap. Not yet released.

Dependency Package Overview

State Management

Code Generation

Hooks

Router

flutter_app Project settings

Category Description Codes
FVM Flutter Version Management .fvm/fvm_config.json
Dart Dart version pubspec.yaml
Dart Lint / Analyze analysis_options.yaml
flutter pub add analysis_logger --path ../analysis_logger
flutter pub add authenticator --path ../authenticator
flutter pub add convenient_widgets --path ../convenient_widgets
flutter pub add notification_receiver --path ../notification_receiver
flutter pub add remote_parameter_fetcher --path ../remote_parameter_fetcher

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 CFBundleName and CFBundleDisplayName in ios/Runner/info.plist to your app name.
  3. Change FlutterAT in defaultConfig/resValue of android/app/build.gradle to your app name.
  4. Create a project in Firebase.
  5. Create an Android app, download google-services.json, and place it in android/app/src/{dev or stg or prod}.
  6. Create an iOS app, download GoogleService-Info.plist, and place it in ios/{dev or stg or prod}.
  7. Modify GOOGLE_REVERSED_CLIENT_ID in {dev, stg, prod}.xcconfig to match the contents of each GoogleService-Info.plist.
  8. 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}

↓内部パッケージをインストールしたいときに使用するコマンド。

flutter pub add analysis_logger --path ../analysis_logger
flutter pub add authenticator --path ../authenticator
flutter pub add convenient_widgets --path ../convenient_widgets
flutter pub add notification_receiver --path ../notification_receiver
flutter pub add remote_parameter_fetcher --path ../remote_parameter_fetcher

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

  • I wanted to use the latest 9.5.0-1 or higher, but the cloud_firestore 3.4.8 package in pub.dev seemed to be unsupported, so I used 9.4.0.

References

Internationalization User Guild PresentationDomainSeparation Flutter Architecture Blueprints

Thank you!

flutter_app_template's People

Contributors

riscait avatar dependabot[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.