life_snap
アプリ概要
画面設計
・Figmaユーザフロー
*詳細はこちらのリンクで確認
状態管理:hooks_riverpod, state_notifier, freezed
アーキテクチャ:MVVM + Repository
開発の始め方
Firebase構成ファイルについて
-
プロジェクトの設定からSDK設定用のファイルをダウンロードして、git cloneしたローカルプロジェクトのファイルの中に配置する
-
理由としては、当該ファイルはpublicなリポジトリで見れないようにしており、gitigonoreしていて、個別対応が必要なため。
-
設置しないとビルドエラーが起こる
-
android
-
ファイル名:google-services.json
- 配置場所:android/app、/android/app/src/development、/android/app/src/production
- 説明: devとprodからそれぞれfirebaseからDLする。prodは「/android/app/src/production」の方に置く。「android/app」に置くのはどちらでもよい。
iOS
-
ファイル名:GoogleService-Info.plist
- 配置場所:ios/Runner
- 説明:「Runner > Runner > Firebase 」にそれぞれ環境に合う様に「GoogleService-Info-Development.plist」と「GoogleService-Info-Production.plist」を配置する。Runner > Runner配下にも「GoogleService-Info.plist」は置く必要がある。Xcodeがちゃんと認識する様にインポートしないとダメです(ただ、フォルダに配置じゃ認識されません)
GoogleMapのAPIキーについて
こちらの記事を参考に、Slackにピン留めしたAPIキーを入力する。
*前もってpullでdevelopブランチを最新にし、作業ブランチを最新にしておくこと
APIキーに係るファイル名と配置場所
・ios/Runner/AppDelegate.swift
・android/app/src/main/AndroidManifest.xml
(developからpullしても残っている場合、配置しなくてもよい)
開発環境
life_snap % fvm flutter --version
Flutter 3.3.4 • channel stable • https://github.com/flutter/flutter.git
Framework • revision eb6d86ee27 (2 weeks ago) • 2022-10-04 22:31:45 -0700
Engine • revision c08d7d5efc
Tools • Dart 2.18.2 • DevTools 2.15.0
プロジェクト進行について
全体のタスク管理
- GitHub Projectsを用いて行う。カンバン方式
Issueの立て方
New Issue をクリックすると 5 つのテンプレートがあります(salon_app の丸パクリ)
それぞれ使い方や例が書いてあるのでそれにならって記載してください。
質問なども Issue で立てていただけるとありがたいです
ブランチ運用
Git Flow に沿って開発を行う(ツールは使わない)
- 参考
- 基本的な流れ
- main ブランチと develop ブランチが常に存在し、保護しておく
- 機能を追加するときは develop ブランチから featureブランチを作成する
- ブランチの名前は feature/#(issue 番号)_わかりやすい名前
- 作業が終わったら feature ブランチから develop ブランチへのPR(プルリクエスト)を作成する
- PRを誰かがレビューし、LGTMが付けばMergeする
- 各ブランチについて
- main
- リリースされたアプリの状態と同期させる。直接の変更不可。PRからのマージのみ。
- releaseブランチ or hotfixブランチからマージされ、バージョンが変更されるはずなので、mainへマージされた再はバージョンに合わせてタグを付与する
- develop
- 開発するためのブランチ。直接の変更不可。PRからのマージのみ。
- developブランチでは常にビルドが通る状態にしておく。
- feature
- 機能追加の際に作成するブランチ。
- developブランチから
feature/#{issue number}_{task name}
の命名規則でブランチを作成し、作業を行う。
- PRはdevelopブランチをターゲットとする。
- release
- developブランチからmainブランチへ変更を取り込み、リリースを行う際に作成されるブランチ。
- developブランチから
release/#{issue number}_{task name}
の命名規則でブランチを作成し、作業を行う。
- PRはmainブランチをターゲットとする。
- マージ後はリリース作業 & developブランチへもマージする。
- hotfix
- mainブランチで見つかったバグに対して修正したい場合に用いる
- mainブランチから
hotfix/#{issue number}_{task name}
の命名規則でブランチを作成し、作業を行う。
- PRはmainブランチをターゲットとする。
- マージ後はリリース作業 & developブランチへもマージする。
- バージョニングについて