狠狠撸

狠狠撸Share a Scribd company logo
Before launch オプションを使って
Flutterでstaging/release環境を
切り替える
Flutter Meetup Tokyo #4
1
自己紹介
名前
robo (兼高理恵)
好きなもの
モバイル端末
おしごと
アプリの設計から実装まで
2
このLT内容は、
Flutter Japan User Group Tokyo #1 で発表された、
セッションの番外編です。
3
Flavor of Flutter
Flutterでstaging/production環境を切替える
https://speakerdeck.com/fullfool/productionhuan-jing-woqie-ti-eru
はじめに
モバイルアプリ開発では、
テストやサーバサイド開発との連携の兼ね合いで、ビルド構成を設け、
接続先の開発/本番サーバやアプリの署名証明書の切替えだけでなく、
デバッグ版/製品版を区別するため、文言や見た目も変えています。
4
ビルド構成
Android では、Debug/Release などの Build Type や、
Develop/Production などの Build Flavor を合わせて Build Variants と呼んでいる。
Android Studio > Configure build variants
https://developer.android.com/studio/build/build-variants?hl=ja
ビルド構成の反映手法は必須
実装内での環境チェックと条件分岐による挙動の切替えもありますが、
ネイティブ開発環境では、
ビルド構成によるリソースの切り替え機構を使って、
実装コードに余計な処理を入れずに挙動変更ができます。
Flutter でもビルド構成の反映手法は必須でしょう。 
Flutter Meetup Tokyo #1 では、
flavorとDart entry-pointを使ったビルド構成の反映機構が紹介されました。
本LTは、IntelliJ IDEA の Before launch オプションについての紹介と実験です。
5
6
Flutter での
ビルド構成指定方法の概要
Flutter でのビルド構成指定方法
1. flutter コマンドの flavor オプション
XcodeやGradleのネイティブビルド構成に flavor パラメータを与えます。
2. flutter コマンドの target オプション
main 関数を持つ Dartファイルを target で指定する。
アプリを起動する Dart entry-point (.dartファイル)を指定します。
3. IntelliJ IDEA の Before launch オプション
ビルド前に実行する shell script や ant, gradle タスクを指定します。
Android Studio も IntelliJ IDEA 系なので利用できます。
7
1. flutter コマンドの flavor オプション
flavor オプションを使うには、
iOS / Android ともにネィティブのビルド環境(Xcode / Gradle)での
指定 flavor への対応追加が必要です。
● iOS
1. Xcode のメニューから Product > Scheme > New Scheme でflavor指定の Scheme を新規作成
2. PROJECT Runner > Configurations で、Debug/Releaseと Scheme の組み合わせNameを追加
Debug / Release と Scheme の組み合わせでビルドできるようにします。
例: Schemeがdevの場合は、Debug-dev を指定すると、
$ flutter build ios --debug --flavor dev や $ flutter run --flavor dev コマンドが使えるようになる。
● Android
1. app/build.gradle に productFlavors {} ブロックを追加し、その中に flavor指定のブロックを追加
8
1. flutter コマンドの flavor オプション
● 留意事項
iOS や Android のネイティブビルドシステムにパラメータを与えるため、
Xcode での Scheme や build.gradle での productFlavors ブロックに、
flavor 指定に対応する設定をしていないとビルドすることができません。
このためプラットフォーム別の
ネイティブビルドシステムへの理解が必要になります。
反面、ネイティブビルドシステムの知識があれば応用はかなり広がります。
9
2. flutter コマンドの target オプション
Dart entry-point と呼ばれる、
Flutter アプリを起動する main関数を持つ dart ファイルが指定できます。
debug や staging 専用リソースを設定する Dart entry-poit を設けることで、
Dartコードでの柔軟な挙動切り替えを行なわせることができます。
flutter コマンドでのオプション指定
$ flutter run -t Dartファイルパス
$ flutter run --target Dartファイルパス
例)$ flutter run -t lib/main-dev.dart
10
2. flutter コマンドの target オプション
● 留意事項
iOS と Android で両者共通の論理的挙動を与えられますが、
ネイティブビルド構成やリソースに影響を与えるものではありません。
このため、挙動の変更にネイティブ実装のリソースや設定切り替えが
必要なものには対処できません。
例)develop と release での、
  Firebaseの構成ファイル(google-servie.json/GoogleService-info.plist)の切り替えや、
  Facebook 認証ライブラリのようなネイティブコードへの登録 ID付与が必要なもの。
11
flavor と target の詳細について
flavor と target オプションについての IntelliJ IDEA 系でのGUI設定や、
Xcode での操作や build.gradle でのコードおよび応用実装の詳細については、
Flutter Meetup Tokyo #1 で説明されていますので、ここでは紹介いたしません。
詳しくはスライドを参照ください。
Flutterでstaging/production環境を切替える
https://speakerdeck.com/fullfool/productionhuan-jing-woqie-ti-eru
Flutter Meetup 資料ではありませんが、こちらも参考になります。
flutterで本番/ステージング/開発を切り替える (2018/07/11)
https://qiita.com/ko2ic/items/53f97bb7c28632268b5a
12
3. IntelliJ IDEA の Before launch オプション
Before lunch は、
ビルド前に実行する shell script や ant, gradle タスクを指定するオプションです。
flavor や target と同じく IntelliJ IDEA 系の開発環境の
Run / Debug Configurations ダイアログで設定できるオプションですが、
flavor や target が flutter コマンドのビルド構成オプションであるのに対し、
Before lunch は、IntelliJ IDEA が提供するビルド構成オプションです。
イメージ的には、
flutter run コマンドの実行前に、任意指定の処理を行わせるものです。
13
14
Run/Debug Configurations ダイアログは、
ツールバーの Run > Edit Configurations… から開きます。
Dart entrypoint で target、Build flavorで flavor、
Before launch でビルド前に行う処置の設定ができます。
15
Before lunch オプションの設定手順
Before lunch を使えばリソースの切替も可能です
Before lunch では、dart スクリプト(コマンド) の実行もできます。
dart スクリプトの引数に、flavor 値を擬似的に指定すれば、
flutter アプリのビルドと起動の前に、パラメータ指定に従った
リソースファイルのコピーなどを行わせることも可能になります。
つまり Before lunch と flavor 疑似指定を使えば、
サーバ接続先などのプロパティリソースの切替も可能になります。
実現案のサンプルについては後として、
先ずは Before lunch での debug や staging のビルド設定(Configurations)の
新設手順を説明します。
16
Before launch オプションの設定手順
17
Copy Configuration アイコンをクリックして
元々あった main.dart の設定をコピーした Configuration を追加 + アイコンで
新規追加する場合は
Flutter を選択します。
Configuration 名には、
疑似flavor に使う debug, staging などを指定
Run: ウィンドウのタブに使われるので、
flavor を明示する名前にします。
サンプルでは、debug や staging としました。
Before launch オプションの設定手順
18
+アイコンをクリックして
Add New Configuration から Run External tool を選択
External Tools ダイアログが開きます
Before launch オプションの設定手順
19
+アイコンをクリックして
Create Tool ダイアログを開きます。
Before launch オプションの設定手順
20
?Nameは、Run ウィンドウのタブに使われるので、
 flavor を明示する名前を付けます。
 サンプルでは、flavor_debug や flavor_staging としました。
?Description は、適当でも構いません。
?Program は、dart を指定します。
?Arguments は、実行スクリプトと擬似flavorを指定
 第一引数に実行させる dart コマンドプログラム ?
 main関数を持つ .dart ファイルを指定します。
 第二引数に、疑似flavorパラメータを指定します。
 サンプルでは、PreBuildFlavor.dart と debug や staging です。
?Working directory は、プロジェクトルートになるよう
 右端の Insert Macro…から $ProjectFileDir$ を選択
 …設定が完了しましたら、 OK で設定を保管します。
Before launch オプションの設定手順
21
Create Tool が登録されたので、
External Tools に作成した設定が
追加されています。
OK で External Tools を閉じると、
Before lunch オプションに External tool 設定が
追加されています。
Before launch オプションの設定手順
22
各 flavore の Configuration ごとに
手順を繰り返せばツールバーから
Run を選択できるようになります
補足
Release ビルドにしたい場合は、
Run/Debug Configurations ダイアログで、
Additional arguments に --release オプションの
追加が必要です。
Share をチェックすると、
Run/Debug Configurations の設定がビルド構成ごとに
.idea/runConfigurationsディレクトリにxmlファイルで保管され、
チームで共有することができます。
IntelliJ IDEA 設定マニュアル (邦訳あり)
Edit Configurations … から Run / Debug Configurations ダイアログ の詳細
Creating and Editing Run/Debug Configurations
https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html
https://pleiades.io/help/idea/creating-and-editing-run-debug-configurations.html
Run/Debug Configurations Dialog
https://www.jetbrains.com/help/idea/run-debug-configurations-dialog.html
https://pleiades.io/help/idea/run-debug-configurations-dialog.html
External Tools
https://www.jetbrains.com/help/idea/settings-tools-external-tools.html
https://pleiades.io/help/idea/settings-tools-external-tools.html
Create/Edit/Copy Tool Dialog
https://www.jetbrains.com/help/idea/settings-tools-create-edit-copy-tool-dialog.html
https://pleiades.io/help/idea/settings-tools-create-edit-copy-tool-dialog.html
【参考】Android Studio > Create and edit run/debug configurations
    https://developer.android.com/studio/run/rundebugconfig?hl=ja 23
IntelliJ IDEA 設定マニュアル (邦訳あり)
Run / Debug Configurations と Before lunch / Extra Tools の設定保管先
Tuning IntelliJ IDEA
https://www.jetbrains.com/help/idea/tuning-the-ide.html
https://pleiades.io/help/idea/tuning-the-ide.html
Run/Debug Configuration で Share をチェックした場合、
Run/Debug Configuration設定は、.idea/runConfigurations に 構成名.xml (例:debug.xml) で保管され、
Before lunch / Extra Tools 設定は、各プラットフォームの 構成ディレクトリに保管されます。
 各プラットフォームの 構成ディレクトリ (Configuration directory)
● Windows : %HOMEPATH%.<product><version>config
● MacOS : ~/Library/Preferences/<product><version>
● Linux : ~/.<product><version>/config
例)~/Library/Preferences/IdeaIC2018.1/tools/External Tools.xml (flavor_debugなどが要素として保管される)
【注意】構成ディレクトリはチーム共有できません。
    このため Before lunch / Extra Tools は、各開発環境ごとに設定する必要があります。
24
Run/Debug Configurationsダイアログについて
書籍 IntelliJ IDEA ハンズオン
P.149 コラム「プロジェクトに関する設定箇所」より
● Run / Debug Configurations ダイアログ
「アプリケーションを実行する/テストを実行する」といった
プロジェクトの実行構成を設定します。
(Run メニューの Edit Configurations … で開く
 Run / Debug Configurations ダイアログで設定します)。
実行構成は、Project ごとに任意の種類/個数を設定できます。
書籍 IntelliJ IDEA ハンズオン
http://gihyo.jp/book/2017/978-4-7741-9383-0
25
説明の都合上、
Run/Debug Configuration を
ビルド構成と呼びましたが、
本当は、実行構成です。
26
Before lunch オプションを使った
疑似flavorによるリソース切替ライブラリ
ライブラリの example について
コンセプトライブラリの example では、
Run メニューから debug/staging/release の疑似flavor実行構成を選択すると、
アプリ名と画面タイトル名が選択された疑似flavorに従って切り替わります。
 実装的には、
 flavor 指定ごとにAndroid のStringリソース(string.xml)を上書きコピーし、
 flavor 指定ごとにプロパティファイルを切り替えてタイトル値を取得させて
 疑似flavor挙動を実現しています。
コンセプトライブラリ cch-robo/flutter_flavor_substitute は、公開しています。
https://github.com/cch-robo/flutter_flavor_substitute
27
サンプルを実行するには、
debug, staging, release の疑似flavor実行構成を再設定してください。
Run > debug を実行
28
Run > staging を実行
29
何故か「デバッグ」に
なっている
Before lunch による、
ビルド前のリソース切り替えは、
安易な発想だったのでしょうか。
Run > staging を実行
30
実は、リソースが更新される前に
アプリが起動したためなので
Hot Restart をかけます。
コンセプトライブラリのキーポイント
 サンプルのキーポイントは、
 ビルド前に実行されれるピュアな Dart プログラムに渡される flavor指定が
 アプリ内で動作するFlutter プログラムとの間で参照できるように、
 flavor指定のプロパティファイルへの書き込みと、
 プロパティファイルのアセット化、およびアセット読取が重要キーです。
 そのほかのキーポイントは、以下のようになっています。
● flavorディレクトリの新設
● プロパティファイル機能の提供
● プロパティファイルのアセットリソース化
● flavorリソースからネイティブへの上書きコピー機能の提供
31
● flavorディレクトリの新設
プロジェクトルートに flavorディレクトリを設け、
サブディレクトリに各flavorごとのリソースを配置する。
● プロパティファイル機能の提供
1行が Key=Value フォーマットとするプロパティファイルから、
指定KeyのプロパティValueを取得するピュアDartクラスを提供する。
プロパティファイルは、flavor ディレクトリに配置する。
● プロパティファイルのアセットリソース化
pubspec.yaml の assets: にプロパティファイルを指定して、
Befor lunch DartプログラムとFlutterアプリ内からアクセス可能にする。
● flavorリソースからネイティブへの上書きコピー機能の提供
Before lunch Dartプログラムで、flavorディレクトリ内のリソースを
指定ネイティブプラットフォーム先に上書きコピーできるようにする。
32
exampleは、凝ったものでありませんしリソースを強制上書きするなど、
正攻法とは言えない実装であるため、特にプログラム的な説明はしません。
● exampleルートの prebuild_main.dart (ピュアなDartプログラム)
flavorプロパティ作成、疑似 flavorごとにリソース元を切り替えリソース先に上書きコピーする。
● lib/main.dart (FlavorSubsituteの初期化と globalプロパティの利用)
● android/app/src/main/AndroidManifest.xml (@app_name利用への変更)
● android/app/build.gradle (flavorApplicationIdプロパティ参照への変更)
● lib/src/flavor/base_flavor.dart (ピュアなDartからでもインポート可能な基盤)
● lib/src/flavor/prebuild_flavor.dart (ビルド前用上書きコピーの提供/ピュアDart)
● lib/src/flavor/application_flavor.dart (アプリ用プロパティの提供)
example実装のコードリード?キーポイント
33
まとめ
正攻法とは言えませんが、
IntelliJ IDEA 系 IDE の Before launch オプションを使って、
擬似的にflavor指定を行うことや、
疑似flavor指定によるアプリ挙動の切り替えに挑戦してみました。
ですがアプリ署名キーを切り替えるにしても、
build.gradle への修正が必要など、まだまだ改良や考慮の余地が山積みです。
今後の Flutter SDK や IntelliJ 系のプラグインの改良に期待したいと思います。
34
35
ご清聴、
ありがとうございました。

More Related Content

What's hot (20)

阶层的决定性ウォレットを理解しよう
阶层的决定性ウォレットを理解しよう阶层的决定性ウォレットを理解しよう
阶层的决定性ウォレットを理解しよう
bitbank, Inc. Tokyo, Japan
?
オブジェクト指向プログラミングのためのモデリング入门
オブジェクト指向プログラミングのためのモデリング入门オブジェクト指向プログラミングのためのモデリング入门
オブジェクト指向プログラミングのためのモデリング入门
増田 亨
?
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
?
Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するなら
Shohei Okada
?
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
?
スマートフォン向けサービスにおけるサーバサイド设计入门
スマートフォン向けサービスにおけるサーバサイド设计入门スマートフォン向けサービスにおけるサーバサイド设计入门
スマートフォン向けサービスにおけるサーバサイド设计入门
Hisashi HATAKEYAMA
?
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
?
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 SpringGoでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
Goでヤフーの分散オブジェクトストレージを作った話 Go Conference 2017 Spring
驰补丑辞辞!デベロッパーネットワーク
?
颁滨/颁顿ツール比较してみた
颁滨/颁顿ツール比较してみた颁滨/颁顿ツール比较してみた
颁滨/颁顿ツール比较してみた
Shoya Kai
?
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
?
ジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりました
ジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりましたジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりました
ジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりました
Yukiya Hayashi
?
搁贰厂罢蹿耻濒とは
搁贰厂罢蹿耻濒とは搁贰厂罢蹿耻濒とは
搁贰厂罢蹿耻濒とは
星影 月夜
?
データセンターネットワークの构成について
データセンターネットワークの构成についてデータセンターネットワークの构成について
データセンターネットワークの构成について
MicroAd, Inc.(Engineer)
?
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
?
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
?
go_router が隠してくれるもの
go_router が隠してくれるものgo_router が隠してくれるもの
go_router が隠してくれるもの
cch-robo
?
骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える
骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える
骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える
pospome
?
やはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っているやはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っている
Koichi Tanaka
?
奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。
奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。
奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
?
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
?
阶层的决定性ウォレットを理解しよう
阶层的决定性ウォレットを理解しよう阶层的决定性ウォレットを理解しよう
阶层的决定性ウォレットを理解しよう
bitbank, Inc. Tokyo, Japan
?
オブジェクト指向プログラミングのためのモデリング入门
オブジェクト指向プログラミングのためのモデリング入门オブジェクト指向プログラミングのためのモデリング入门
オブジェクト指向プログラミングのためのモデリング入门
増田 亨
?
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
土岐 孝平
?
Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するなら
Shohei Okada
?
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
?
スマートフォン向けサービスにおけるサーバサイド设计入门
スマートフォン向けサービスにおけるサーバサイド设计入门スマートフォン向けサービスにおけるサーバサイド设计入门
スマートフォン向けサービスにおけるサーバサイド设计入门
Hisashi HATAKEYAMA
?
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
Apache Airflow 概要(Airflowの基礎を学ぶハンズオンワークショップ 発表資料)
NTT DATA Technology & Innovation
?
颁滨/颁顿ツール比较してみた
颁滨/颁顿ツール比较してみた颁滨/颁顿ツール比较してみた
颁滨/颁顿ツール比较してみた
Shoya Kai
?
ジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりました
ジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりましたジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりました
ジョブ管理で肠谤辞苍は限界があったので”搁耻苍诲别肠办”を使ってハッピーになりました
Yukiya Hayashi
?
搁贰厂罢蹿耻濒とは
搁贰厂罢蹿耻濒とは搁贰厂罢蹿耻濒とは
搁贰厂罢蹿耻濒とは
星影 月夜
?
データセンターネットワークの构成について
データセンターネットワークの构成についてデータセンターネットワークの构成について
データセンターネットワークの构成について
MicroAd, Inc.(Engineer)
?
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
NTT DATA Technology & Innovation
?
go_router が隠してくれるもの
go_router が隠してくれるものgo_router が隠してくれるもの
go_router が隠してくれるもの
cch-robo
?
骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える
骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える
骋辞のサーハ?サイト?実装におけるレイヤ设计とレイヤ内実装について考える
pospome
?
やはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っているやはりお前らの惭痴颁は间违っている
やはりお前らの惭痴颁は间违っている
Koichi Tanaka
?
奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。
奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。
奥颈苍诲辞飞蝉フォームで大丈夫か?一番良いのを頼む。
Yuya Yamaki
?
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス?ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
?

Similar to Before lunch オプションを使って Flutterでstaging/release環境を切り替える (20)

Google I/O 2021 Flutter 全体報告
Google I/O 2021 Flutter 全体報告Google I/O 2021 Flutter 全体報告
Google I/O 2021 Flutter 全体報告
cch-robo
?
础苍诲谤辞颈诲4.2彻底解剖!
础苍诲谤辞颈诲4.2彻底解剖!础苍诲谤辞颈诲4.2彻底解剖!
础苍诲谤辞颈诲4.2彻底解剖!
leverages_event
?
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
cch-robo
?
Flutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_SummaryFlutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_Summary
cch-robo
?
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るKEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来る
android sola
?
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report
Yu Sudo
?
成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-
成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-
成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-
Hiroki Kondo
?
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组みモバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
MorioImai
?
蝉产迟マルチプロジェクトビルドの使いどころ
蝉产迟マルチプロジェクトビルドの使いどころ蝉产迟マルチプロジェクトビルドの使いどころ
蝉产迟マルチプロジェクトビルドの使いどころ
Kazuhiro Hara
?
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
?
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
Fumiya Sakai
?
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
?
パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!
泰史 栃折
?
Cod2012 Room T-1
Cod2012 Room T-1Cod2012 Room T-1
Cod2012 Room T-1
彰 村地
?
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
Teruo Kawasaki
?
Plan of "File Authority Designer" Ver. 2
Plan of "File Authority Designer" Ver. 2 Plan of "File Authority Designer" Ver. 2
Plan of "File Authority Designer" Ver. 2
Seiji Noro
?
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
?
SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門
Hiroaki Oikawa
?
笔贬笔における搁滨础事情と开発
笔贬笔における搁滨础事情と开発笔贬笔における搁滨础事情と开発
笔贬笔における搁滨础事情と开発
konekto
?
Google I/O 2021 Flutter 全体報告
Google I/O 2021 Flutter 全体報告Google I/O 2021 Flutter 全体報告
Google I/O 2021 Flutter 全体報告
cch-robo
?
础苍诲谤辞颈诲4.2彻底解剖!
础苍诲谤辞颈诲4.2彻底解剖!础苍诲谤辞颈诲4.2彻底解剖!
础苍诲谤辞颈诲4.2彻底解剖!
leverages_event
?
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
顿补谤迟笔补诲+颁辞诲别笔别苍で、贵濒耻迟迟别谤を体験してみよう
cch-robo
?
Flutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_SummaryFlutter_Forward_Extended_Kyoto-Keynote_Summary
Flutter_Forward_Extended_Kyoto-Keynote_Summary
cch-robo
?
KEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来るKEONとPEAKが無くてもFirefox OS開発出来る
KEONとPEAKが無くてもFirefox OS開発出来る
android sola
?
2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report2013.01.18 G*Workshop GGX 2012 Report
2013.01.18 G*Workshop GGX 2012 Report
Yu Sudo
?
成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-
成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-
成长できるエンタープライズシステムを目指して-翱厂骋颈によるモジュール型アーキテクチャの実现-
Hiroki Kondo
?
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组みモバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
モバイルゲームの「大规模な开発」かつ「高频度の更新」を実现するための开発环境整备の取り组み
MorioImai
?
蝉产迟マルチプロジェクトビルドの使いどころ
蝉产迟マルチプロジェクトビルドの使いどころ蝉产迟マルチプロジェクトビルドの使いどころ
蝉产迟マルチプロジェクトビルドの使いどころ
Kazuhiro Hara
?
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
You&I
?
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
搁虫顿补迟补厂辞耻谤肠别を狈厂顿颈蹿蹿补产濒别顿补迟补厂辞耻谤肠别へ置き换える际の罢颈辫蝉集绍介
Fumiya Sakai
?
Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa
?
パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!
パーソナルデータのあり方を変える!オープンソース分散型笔顿厂「笔别谤蝉辞苍颈耻尘」を使ってみよう!
泰史 栃折
?
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
オープンソースのETLツール Pentaho Data Integration(PDI)のご紹介_20140906
Teruo Kawasaki
?
Plan of "File Authority Designer" Ver. 2
Plan of "File Authority Designer" Ver. 2 Plan of "File Authority Designer" Ver. 2
Plan of "File Authority Designer" Ver. 2
Seiji Noro
?
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテストEclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
?
SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門SharePoint 2013 ワークフロー開発入門
SharePoint 2013 ワークフロー開発入門
Hiroaki Oikawa
?
笔贬笔における搁滨础事情と开発
笔贬笔における搁滨础事情と开発笔贬笔における搁滨础事情と开発
笔贬笔における搁滨础事情と开発
konekto
?

More from cch-robo (15)

Introduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutterIntroduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutter
cch-robo
?
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門
cch-robo
?
フラッター开発におけるシークレット情报取扱考察
フラッター开発におけるシークレット情报取扱考察フラッター开発におけるシークレット情报取扱考察
フラッター开発におけるシークレット情报取扱考察
cch-robo
?
贵濒耻迟迟别谤を体験してみませんか
贵濒耻迟迟别谤を体験してみませんか贵濒耻迟迟别谤を体験してみませんか
贵濒耻迟迟别谤を体験してみませんか
cch-robo
?
顿补谤迟言语の进化状况
顿补谤迟言语の进化状况顿补谤迟言语の进化状况
顿补谤迟言语の进化状况
cch-robo
?
明示的アニメで、贵濒耻迟迟别谤アニメーション入门
明示的アニメで、贵濒耻迟迟别谤アニメーション入门明示的アニメで、贵濒耻迟迟别谤アニメーション入门
明示的アニメで、贵濒耻迟迟别谤アニメーション入门
cch-robo
?
顿补谤迟でサーバレスサービス
顿补谤迟でサーバレスサービス顿补谤迟でサーバレスサービス
顿补谤迟でサーバレスサービス
cch-robo
?
Pin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widgetPin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widget
cch-robo
?
贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略
贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略
贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略
cch-robo
?
Flutter のリアクティフ?戦略 set state ? redux まて?
Flutter のリアクティフ?戦略 set state ? redux まて?Flutter のリアクティフ?戦略 set state ? redux まて?
Flutter のリアクティフ?戦略 set state ? redux まて?
cch-robo
?
Android lint-srp-practice
Android lint-srp-practiceAndroid lint-srp-practice
Android lint-srp-practice
cch-robo
?
Loose and fluffy_ddd_intro
Loose and fluffy_ddd_introLoose and fluffy_ddd_intro
Loose and fluffy_ddd_intro
cch-robo
?
Firebase Test Lab 無料枠を使ってみました。
Firebase Test Lab 無料枠を使ってみました。Firebase Test Lab 無料枠を使ってみました。
Firebase Test Lab 無料枠を使ってみました。
cch-robo
?
ZTE OPEN を日本語化(バージョンアップ)してみる
ZTE OPEN を日本語化(バージョンアップ)してみるZTE OPEN を日本語化(バージョンアップ)してみる
ZTE OPEN を日本語化(バージョンアップ)してみる
cch-robo
?
贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法
贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法
贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法
cch-robo
?
Introduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutterIntroduction_on_designing_test_in_flutter
Introduction_on_designing_test_in_flutter
cch-robo
?
Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門Dart / Flutter コードファイルジェネレート入門
Dart / Flutter コードファイルジェネレート入門
cch-robo
?
フラッター开発におけるシークレット情报取扱考察
フラッター开発におけるシークレット情报取扱考察フラッター开発におけるシークレット情报取扱考察
フラッター开発におけるシークレット情报取扱考察
cch-robo
?
贵濒耻迟迟别谤を体験してみませんか
贵濒耻迟迟别谤を体験してみませんか贵濒耻迟迟别谤を体験してみませんか
贵濒耻迟迟别谤を体験してみませんか
cch-robo
?
顿补谤迟言语の进化状况
顿补谤迟言语の进化状况顿补谤迟言语の进化状况
顿补谤迟言语の进化状况
cch-robo
?
明示的アニメで、贵濒耻迟迟别谤アニメーション入门
明示的アニメで、贵濒耻迟迟别谤アニメーション入门明示的アニメで、贵濒耻迟迟别谤アニメーション入门
明示的アニメで、贵濒耻迟迟别谤アニメーション入门
cch-robo
?
顿补谤迟でサーバレスサービス
顿补谤迟でサーバレスサービス顿补谤迟でサーバレスサービス
顿补谤迟でサーバレスサービス
cch-robo
?
Pin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widgetPin-point rebuildable and non-rebuild custom widget
Pin-point rebuildable and non-rebuild custom widget
cch-robo
?
贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略
贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略
贵濒耻迟迟别谤での奥颈诲驳别迟ツリーへの状态伝播とアクセス制限の基本戦略
cch-robo
?
Flutter のリアクティフ?戦略 set state ? redux まて?
Flutter のリアクティフ?戦略 set state ? redux まて?Flutter のリアクティフ?戦略 set state ? redux まて?
Flutter のリアクティフ?戦略 set state ? redux まて?
cch-robo
?
Android lint-srp-practice
Android lint-srp-practiceAndroid lint-srp-practice
Android lint-srp-practice
cch-robo
?
Loose and fluffy_ddd_intro
Loose and fluffy_ddd_introLoose and fluffy_ddd_intro
Loose and fluffy_ddd_intro
cch-robo
?
Firebase Test Lab 無料枠を使ってみました。
Firebase Test Lab 無料枠を使ってみました。Firebase Test Lab 無料枠を使ってみました。
Firebase Test Lab 無料枠を使ってみました。
cch-robo
?
ZTE OPEN を日本語化(バージョンアップ)してみる
ZTE OPEN を日本語化(バージョンアップ)してみるZTE OPEN を日本語化(バージョンアップ)してみる
ZTE OPEN を日本語化(バージョンアップ)してみる
cch-robo
?
贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法
贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法
贵颈谤别蹿辞虫翱厂で学ぶ闯补惫补厂肠谤颈辫迟作法
cch-robo
?

Recently uploaded (15)

测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
CRI Japan, Inc.
?
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
shomayama0221
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
Matsushita Laboratory
?
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
Matsushita Laboratory
?
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
测距センサと滨惭鲍センサを用いた指轮型デバイスにおける颜认証システムの提案
sugiuralab
?
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
【卒业论文】深层学习によるログ异常検知モデルを用いたサイバー攻撃検知に関する研究
harmonylab
?
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
贬补谤耻办颈厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲诲别颈尘2025
Matsushita Laboratory
?
LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3LF Decentralized Trust Tokyo Meetup 3
LF Decentralized Trust Tokyo Meetup 3
LFDT Tokyo Meetup
?
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
LoRaWANプッシュボタン PB05-L カタログ A4サイズ Draginoカタログ両面
CRI Japan, Inc.
?
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
顿贰滨惭2025冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援冲厂丑颈苍办补飞补.辫诲蹿
Matsushita Laboratory
?
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
ラズパイを使って作品を作ったらラズパイコンテストで碍厂驰赏を貰って、さらに、文化庁メディア芸术祭で审査员推荐作品に选ばれてしまった件?自作チップでラズパイ...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
?
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
自宅でも出来る!!VCF構築-概要編-JapanVMUG Spring Meeting with NEC
shomayama0221
?
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
?
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
狈辞诲补滨迟蝉耻办颈冲反省観点の分类に基づく试合の振り返り支援システムに関する有用性検証冲顿贰滨惭2025
Matsushita Laboratory
?
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
【卒业论文】尝尝惭を用いた惭耻濒迟颈-础驳别苍迟-顿别产补迟别における反论の効果に関する研究
harmonylab
?
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
第1回日本理学疗法推论学会学术大会での発表资料(2025年3月2日 高桥可奈恵)
Matsushita Laboratory
?
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
空间オーディオを用いたヘッドパスワードの提案と音源提示手法の最适化
sugiuralab
?
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
田中瑠彗,东冈秀树,松下光范「手技疗法指导における动作指示の违いが指圧动作に及ぼす影响」
Matsushita Laboratory
?
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
顿贰滨惭2025冲厂丑颈苍办补飞补冲尝尝惭を利用した果树农家の経験知の対话的蓄积支援.辫诲蹿
Matsushita Laboratory
?

Before lunch オプションを使って Flutterでstaging/release環境を切り替える

  • 3. このLT内容は、 Flutter Japan User Group Tokyo #1 で発表された、 セッションの番外編です。 3 Flavor of Flutter Flutterでstaging/production環境を切替える https://speakerdeck.com/fullfool/productionhuan-jing-woqie-ti-eru
  • 7. Flutter でのビルド構成指定方法 1. flutter コマンドの flavor オプション XcodeやGradleのネイティブビルド構成に flavor パラメータを与えます。 2. flutter コマンドの target オプション main 関数を持つ Dartファイルを target で指定する。 アプリを起動する Dart entry-point (.dartファイル)を指定します。 3. IntelliJ IDEA の Before launch オプション ビルド前に実行する shell script や ant, gradle タスクを指定します。 Android Studio も IntelliJ IDEA 系なので利用できます。 7
  • 8. 1. flutter コマンドの flavor オプション flavor オプションを使うには、 iOS / Android ともにネィティブのビルド環境(Xcode / Gradle)での 指定 flavor への対応追加が必要です。 ● iOS 1. Xcode のメニューから Product > Scheme > New Scheme でflavor指定の Scheme を新規作成 2. PROJECT Runner > Configurations で、Debug/Releaseと Scheme の組み合わせNameを追加 Debug / Release と Scheme の組み合わせでビルドできるようにします。 例: Schemeがdevの場合は、Debug-dev を指定すると、 $ flutter build ios --debug --flavor dev や $ flutter run --flavor dev コマンドが使えるようになる。 ● Android 1. app/build.gradle に productFlavors {} ブロックを追加し、その中に flavor指定のブロックを追加 8
  • 9. 1. flutter コマンドの flavor オプション ● 留意事項 iOS や Android のネイティブビルドシステムにパラメータを与えるため、 Xcode での Scheme や build.gradle での productFlavors ブロックに、 flavor 指定に対応する設定をしていないとビルドすることができません。 このためプラットフォーム別の ネイティブビルドシステムへの理解が必要になります。 反面、ネイティブビルドシステムの知識があれば応用はかなり広がります。 9
  • 10. 2. flutter コマンドの target オプション Dart entry-point と呼ばれる、 Flutter アプリを起動する main関数を持つ dart ファイルが指定できます。 debug や staging 専用リソースを設定する Dart entry-poit を設けることで、 Dartコードでの柔軟な挙動切り替えを行なわせることができます。 flutter コマンドでのオプション指定 $ flutter run -t Dartファイルパス $ flutter run --target Dartファイルパス 例)$ flutter run -t lib/main-dev.dart 10
  • 11. 2. flutter コマンドの target オプション ● 留意事項 iOS と Android で両者共通の論理的挙動を与えられますが、 ネイティブビルド構成やリソースに影響を与えるものではありません。 このため、挙動の変更にネイティブ実装のリソースや設定切り替えが 必要なものには対処できません。 例)develop と release での、   Firebaseの構成ファイル(google-servie.json/GoogleService-info.plist)の切り替えや、   Facebook 認証ライブラリのようなネイティブコードへの登録 ID付与が必要なもの。 11
  • 12. flavor と target の詳細について flavor と target オプションについての IntelliJ IDEA 系でのGUI設定や、 Xcode での操作や build.gradle でのコードおよび応用実装の詳細については、 Flutter Meetup Tokyo #1 で説明されていますので、ここでは紹介いたしません。 詳しくはスライドを参照ください。 Flutterでstaging/production環境を切替える https://speakerdeck.com/fullfool/productionhuan-jing-woqie-ti-eru Flutter Meetup 資料ではありませんが、こちらも参考になります。 flutterで本番/ステージング/開発を切り替える (2018/07/11) https://qiita.com/ko2ic/items/53f97bb7c28632268b5a 12
  • 13. 3. IntelliJ IDEA の Before launch オプション Before lunch は、 ビルド前に実行する shell script や ant, gradle タスクを指定するオプションです。 flavor や target と同じく IntelliJ IDEA 系の開発環境の Run / Debug Configurations ダイアログで設定できるオプションですが、 flavor や target が flutter コマンドのビルド構成オプションであるのに対し、 Before lunch は、IntelliJ IDEA が提供するビルド構成オプションです。 イメージ的には、 flutter run コマンドの実行前に、任意指定の処理を行わせるものです。 13
  • 14. 14 Run/Debug Configurations ダイアログは、 ツールバーの Run > Edit Configurations… から開きます。 Dart entrypoint で target、Build flavorで flavor、 Before launch でビルド前に行う処置の設定ができます。
  • 16. Before lunch を使えばリソースの切替も可能です Before lunch では、dart スクリプト(コマンド) の実行もできます。 dart スクリプトの引数に、flavor 値を擬似的に指定すれば、 flutter アプリのビルドと起動の前に、パラメータ指定に従った リソースファイルのコピーなどを行わせることも可能になります。 つまり Before lunch と flavor 疑似指定を使えば、 サーバ接続先などのプロパティリソースの切替も可能になります。 実現案のサンプルについては後として、 先ずは Before lunch での debug や staging のビルド設定(Configurations)の 新設手順を説明します。 16
  • 17. Before launch オプションの設定手順 17 Copy Configuration アイコンをクリックして 元々あった main.dart の設定をコピーした Configuration を追加 + アイコンで 新規追加する場合は Flutter を選択します。 Configuration 名には、 疑似flavor に使う debug, staging などを指定 Run: ウィンドウのタブに使われるので、 flavor を明示する名前にします。 サンプルでは、debug や staging としました。
  • 18. Before launch オプションの設定手順 18 +アイコンをクリックして Add New Configuration から Run External tool を選択 External Tools ダイアログが開きます
  • 20. Before launch オプションの設定手順 20 ?Nameは、Run ウィンドウのタブに使われるので、  flavor を明示する名前を付けます。  サンプルでは、flavor_debug や flavor_staging としました。 ?Description は、適当でも構いません。 ?Program は、dart を指定します。 ?Arguments は、実行スクリプトと擬似flavorを指定  第一引数に実行させる dart コマンドプログラム ?  main関数を持つ .dart ファイルを指定します。  第二引数に、疑似flavorパラメータを指定します。  サンプルでは、PreBuildFlavor.dart と debug や staging です。 ?Working directory は、プロジェクトルートになるよう  右端の Insert Macro…から $ProjectFileDir$ を選択  …設定が完了しましたら、 OK で設定を保管します。
  • 21. Before launch オプションの設定手順 21 Create Tool が登録されたので、 External Tools に作成した設定が 追加されています。 OK で External Tools を閉じると、 Before lunch オプションに External tool 設定が 追加されています。
  • 22. Before launch オプションの設定手順 22 各 flavore の Configuration ごとに 手順を繰り返せばツールバーから Run を選択できるようになります 補足 Release ビルドにしたい場合は、 Run/Debug Configurations ダイアログで、 Additional arguments に --release オプションの 追加が必要です。 Share をチェックすると、 Run/Debug Configurations の設定がビルド構成ごとに .idea/runConfigurationsディレクトリにxmlファイルで保管され、 チームで共有することができます。
  • 23. IntelliJ IDEA 設定マニュアル (邦訳あり) Edit Configurations … から Run / Debug Configurations ダイアログ の詳細 Creating and Editing Run/Debug Configurations https://www.jetbrains.com/help/idea/creating-and-editing-run-debug-configurations.html https://pleiades.io/help/idea/creating-and-editing-run-debug-configurations.html Run/Debug Configurations Dialog https://www.jetbrains.com/help/idea/run-debug-configurations-dialog.html https://pleiades.io/help/idea/run-debug-configurations-dialog.html External Tools https://www.jetbrains.com/help/idea/settings-tools-external-tools.html https://pleiades.io/help/idea/settings-tools-external-tools.html Create/Edit/Copy Tool Dialog https://www.jetbrains.com/help/idea/settings-tools-create-edit-copy-tool-dialog.html https://pleiades.io/help/idea/settings-tools-create-edit-copy-tool-dialog.html 【参考】Android Studio > Create and edit run/debug configurations     https://developer.android.com/studio/run/rundebugconfig?hl=ja 23
  • 24. IntelliJ IDEA 設定マニュアル (邦訳あり) Run / Debug Configurations と Before lunch / Extra Tools の設定保管先 Tuning IntelliJ IDEA https://www.jetbrains.com/help/idea/tuning-the-ide.html https://pleiades.io/help/idea/tuning-the-ide.html Run/Debug Configuration で Share をチェックした場合、 Run/Debug Configuration設定は、.idea/runConfigurations に 構成名.xml (例:debug.xml) で保管され、 Before lunch / Extra Tools 設定は、各プラットフォームの 構成ディレクトリに保管されます。  各プラットフォームの 構成ディレクトリ (Configuration directory) ● Windows : %HOMEPATH%.<product><version>config ● MacOS : ~/Library/Preferences/<product><version> ● Linux : ~/.<product><version>/config 例)~/Library/Preferences/IdeaIC2018.1/tools/External Tools.xml (flavor_debugなどが要素として保管される) 【注意】構成ディレクトリはチーム共有できません。     このため Before lunch / Extra Tools は、各開発環境ごとに設定する必要があります。 24
  • 25. Run/Debug Configurationsダイアログについて 書籍 IntelliJ IDEA ハンズオン P.149 コラム「プロジェクトに関する設定箇所」より ● Run / Debug Configurations ダイアログ 「アプリケーションを実行する/テストを実行する」といった プロジェクトの実行構成を設定します。 (Run メニューの Edit Configurations … で開く  Run / Debug Configurations ダイアログで設定します)。 実行構成は、Project ごとに任意の種類/個数を設定できます。 書籍 IntelliJ IDEA ハンズオン http://gihyo.jp/book/2017/978-4-7741-9383-0 25 説明の都合上、 Run/Debug Configuration を ビルド構成と呼びましたが、 本当は、実行構成です。
  • 27. ライブラリの example について コンセプトライブラリの example では、 Run メニューから debug/staging/release の疑似flavor実行構成を選択すると、 アプリ名と画面タイトル名が選択された疑似flavorに従って切り替わります。  実装的には、  flavor 指定ごとにAndroid のStringリソース(string.xml)を上書きコピーし、  flavor 指定ごとにプロパティファイルを切り替えてタイトル値を取得させて  疑似flavor挙動を実現しています。 コンセプトライブラリ cch-robo/flutter_flavor_substitute は、公開しています。 https://github.com/cch-robo/flutter_flavor_substitute 27 サンプルを実行するには、 debug, staging, release の疑似flavor実行構成を再設定してください。
  • 28. Run > debug を実行 28
  • 29. Run > staging を実行 29 何故か「デバッグ」に なっている Before lunch による、 ビルド前のリソース切り替えは、 安易な発想だったのでしょうか。
  • 30. Run > staging を実行 30 実は、リソースが更新される前に アプリが起動したためなので Hot Restart をかけます。
  • 31. コンセプトライブラリのキーポイント  サンプルのキーポイントは、  ビルド前に実行されれるピュアな Dart プログラムに渡される flavor指定が  アプリ内で動作するFlutter プログラムとの間で参照できるように、  flavor指定のプロパティファイルへの書き込みと、  プロパティファイルのアセット化、およびアセット読取が重要キーです。  そのほかのキーポイントは、以下のようになっています。 ● flavorディレクトリの新設 ● プロパティファイル機能の提供 ● プロパティファイルのアセットリソース化 ● flavorリソースからネイティブへの上書きコピー機能の提供 31
  • 32. ● flavorディレクトリの新設 プロジェクトルートに flavorディレクトリを設け、 サブディレクトリに各flavorごとのリソースを配置する。 ● プロパティファイル機能の提供 1行が Key=Value フォーマットとするプロパティファイルから、 指定KeyのプロパティValueを取得するピュアDartクラスを提供する。 プロパティファイルは、flavor ディレクトリに配置する。 ● プロパティファイルのアセットリソース化 pubspec.yaml の assets: にプロパティファイルを指定して、 Befor lunch DartプログラムとFlutterアプリ内からアクセス可能にする。 ● flavorリソースからネイティブへの上書きコピー機能の提供 Before lunch Dartプログラムで、flavorディレクトリ内のリソースを 指定ネイティブプラットフォーム先に上書きコピーできるようにする。 32
  • 33. exampleは、凝ったものでありませんしリソースを強制上書きするなど、 正攻法とは言えない実装であるため、特にプログラム的な説明はしません。 ● exampleルートの prebuild_main.dart (ピュアなDartプログラム) flavorプロパティ作成、疑似 flavorごとにリソース元を切り替えリソース先に上書きコピーする。 ● lib/main.dart (FlavorSubsituteの初期化と globalプロパティの利用) ● android/app/src/main/AndroidManifest.xml (@app_name利用への変更) ● android/app/build.gradle (flavorApplicationIdプロパティ参照への変更) ● lib/src/flavor/base_flavor.dart (ピュアなDartからでもインポート可能な基盤) ● lib/src/flavor/prebuild_flavor.dart (ビルド前用上書きコピーの提供/ピュアDart) ● lib/src/flavor/application_flavor.dart (アプリ用プロパティの提供) example実装のコードリード?キーポイント 33
  • 34. まとめ 正攻法とは言えませんが、 IntelliJ IDEA 系 IDE の Before launch オプションを使って、 擬似的にflavor指定を行うことや、 疑似flavor指定によるアプリ挙動の切り替えに挑戦してみました。 ですがアプリ署名キーを切り替えるにしても、 build.gradle への修正が必要など、まだまだ改良や考慮の余地が山積みです。 今後の Flutter SDK や IntelliJ 系のプラグインの改良に期待したいと思います。 34