Skip to content

mobile ​

環境構築 ​

環境構築

開発フロー ​

Notion を参照

個別 QA ​

iOS 開発時に起動しなかったら一旦これをやる ​

bash
rm -Rf ios/Pods ios/.symlinks ios/Flutter/Flutter.framework ios/Flutter/Flutter.podspec ios/Podfile.lock && (cd ios && pod repo update) && flutter clean

(上級者むけ) .zshrc でエイリアスを登録するのもおすすめ

shell
alias flutter-ios-reset="rm -Rf ios/Pods ios/.symlinks ios/Flutter/Flutter.framework ios/Flutter/Flutter.podspec ios/Podfile.lock && (cd ios && pod repo update) && flutter clean"

それぞれの意味はこちらの記事

リリースの仕方 ​

.github/workflows/mobile_release.yml が毎日 20:00 UTC (JST 5:00) に前回タグからの差分を判定し、変更があれば mobile@{version} タグを push する。手動で回すときは同 workflow を workflow_dispatch する。

  • Android / Windows: タグ作成後に dart_mobile_deploy.yml がビルド・デプロイする
  • iOS / macOS: mobile@{version} タグを Xcode Cloud が拾ってビルドする

タグの追加/削除方法 ​

茶屋に要相談

Finger Print の登録 ​

Android で Google 認証機能を使うときなどに、フィンガープリントを設定する必要がある。フィンガープリントは各開発環境で別々の値が使用されている。

フィンガープリントは

shell
cd android # gradlew が相対パスに依存するので cd が必要
./gradlew signingReport

で取得できる。そして、Task :app:signingReport のうち SHA-1 および SHA-256 の値を Firebase の各環境のフィンガープリント設定で登録する。

dev: https://console.firebase.google.com/u/5/project/uzu-dev/settings/general/android:jp.sally_inc.uzu.dev

schema.graphqlの更新 ​

必要条件 node のインストール

bash
npm i
npm run gen
flutter pub run build_runner build

INFO

Conflicting outputs were detected and the build is unable to prompt for permission to remove them エラーで異常終了した場合 --delete-conflicting-outputs フラグを付与

bash
flutter pub run build_runner build --delete-conflicting-outputs

環境変数の外部注入 ​

mobile/lib/env.dart を参照

Local の DB での開発 ​

bash
flutter run --dart-define=LOCAL_BACKEND=true

stg, prd 環境での開発 ​

bash
flutter run --dart-define=APP_ENV=stg
flutter run --dart-define=APP_ENV=prd

Flutter Gen で画像を型安全に扱う ​

使い方を以下を参照

デバッグ用 launch.json の例 ​

json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "uzu debug",
      "request": "launch",
      "type": "dart",
      "args": ["--debug"]
    },
    {
      "name": "uzu profile",
      "request": "launch",
      "type": "dart",
      "args": ["--profile"]
    },
    {
      "name": "uzu release",
      "type": "dart",
      "request": "launch",
      "args": ["--release"]
    }
  ]
}