🪓

FlutterでDart-defineについて学んでみた

2022/06/28に公開

業務で必要な知識だったのでチュートリアルやってみた!

Firebaseのところは今回やらないので、iOSとAndroidで環境を変えて、buildができるかやってみた!

Flutter界隈では有名人の村松龍之介さんとダイゴさんの記事を参考に今回やってみました!
松村龍之介さんと書いてしまいました!
お名前を間違えたこと、謝罪させていただきます🙇‍♂️

参考にした記事
https://zenn.dev/riscait/articles/separating-environments-in-flutter

https://zenn.dev/mamushi/scraps/13c0232c88227e

こちらのGithubのリポジトリの設定を参考に挑戦してみました!
こちらの画像とソースコードを使わせていただきました🙇‍♂️
https://github.com/altive/flutter_app_template/tree/main/packages/flutter_app

やってみた感想ですが、Flutterの知識がある人でないと、「あれ、ここの設定の仕方書いてない気がする?」と混乱します😇
調べながらやってみて、アプリ・アイコンが切り替わっていたので、おそらく大丈夫と思われます?

最初に躓いたこと!

ランチャーアイコンのコマンド打つとエラーが出る?

hashimotojunichi@hashimotojunichinoMacBook-Pro app_template % flutter pub run flutter_launcher_icons:main
  ════════════════════════════════════════════
     FLUTTER LAUNCHER ICONS (v0.9.3)                               
  ════════════════════════════════════════════
  

Flavor: prod

✕ Could not generate launcher icons for flavors

✗ ERROR: InvalidConfigException 
Cannot not find minSdk from android/app/build.gradle or android/local.propertiesSpecify minSdk in either android/app/build.gradle or android/local.properties
pub finished with exit code 2

なぜだ?

気になった箇所のエラーを翻訳してみた...

Cannot not find minSdk from android/app/build.gradle

android/app/build.gradle から minSdk が見つかりません。

どゆこと?

Githubのソースコードを拝見すると、数値を設定していた!
最近は、Flutter本体を設定すれば書かなくても良くなったと思っていた?

この記事の下の方に書いてます!
https://zenn.dev/joo_hashi/articles/d24a196cc5b958

build.gradle

Androidは、Zennの記事を見ながら設定すればできた。しかしiOSは難しかった😵

X-codeで操作する場所を探すのに苦労した!

ここにあった!

Bundle IDを環境によって変える

ここからが、難しかった!

記事の通りの箇所を修正すれば、Debug, Profile, Releaseの部分も自動で設定されるようです!

Appアイコンを環境によって変える

こちらも、記事の通りの箇所を修正すれば、自動で設定してくれました!

iosフォルダの中のFlutterフォルダに、Githubのソースコードを参考に用意した、prod.xconfig、dev.xconfig、stg.xconfigを配置するのをお忘れなく!

チュートリアル通りの設定ができていれば、環境を変えてbuildしたときに、アイコン画像が切り替わるはずです!

最後に

Flutterの日本語の情報を発信してくださる龍之介さんとダイゴさんには、本当に感謝しております🙇‍♂️
業務では、環境をわけて、buildするのは、当然なので、チーム開発をする場合は、まずは今回のように切り替えることができる設定をプロジェクトリーダーがする必要があります。
個人開発では必要ないですが、開発現場では環境をわけないと、間違ってリリース用のFireStoreにデータを保存して、バグが出るかもしれないという危険性があります😱

設定が終わったら、メンバーに配布をする。
その後から開発を開始する。

最近私、チーム開発をするようになり、Githubでのバージョン管理だけでなく、Android Stadio(IDE)の設定が必要なのを知って、コードが正しく書かれているだけでは、他の人のPCでは開発中のアプリが動かなくなる事件に遭遇しました😇
現場では、学びが多く毎日の仕事が勉強です🧑‍💻

Discussion