iOS開発者のAndroid開発入門その11(ビルドバリアント〜アプリをわけたい〜)

botman3 Android

はじめに

iOS では Xcodeで本番アプリと開発アプリをわけるベストプラクティス で書いたんですが Android もこれと同じようにわけたい!ってことでビルドタイプ、プロダクトフレーバー、ビルドバリアントについて書きたいと思います。

やりたいこと

下記のような要件で本番、開発、ダミーの3つのアプリにわけます。

  1. 本番、開発、ダミーで別々のアプリにわけたい(アプリIDをわけたい)
  2. 本番、開発、ダミーで接続先サーバをわけたい
  3. 本番、開発、ダミーでアプリ名をわけたい
  4. 本番、開発、ダミーでアプリアイコンをわけたい

※ 2.は本番→本番用サーバ、開発→開発用サーバ、ダミー→サーバ接続せずローカルのファイルを読み込むのような想定です。

ビルドバリアント

ビルド環境をわけるにはどうやらビルドタイプ、プロダクトフレーバー、ビルドバリアントを使うみたいです。

ビルドタイプは release, debug など Xcode でいう Build Configuration 相当で、 プロダクトフレーバーはスキームに相当するんだと思います。このビルドタイプ×プロダクトフレーバーの組み合わせがビルドバリアントでありこの数分だけ apk を分けれるようです

仮に下記のように設定すると

ビルドタイプ×プロダクトフレーバーの組み合わせで下記4つのアプリができる

  • app1Debug
  • app1Release
  • app2Debug
  • app2Release

プロダクトフレーバーはさらに flavorDimensions によってもわけれるので下記のようにすると

ビルドタイプ×プロダクトフレーバー× flavorDimensions の組み合わせで下記8つのアプリができる

  • app1Foo1Debug
  • app1Foo1Release
  • app1Foo2Debug
  • app1Foo2Release
  • app2Foo1Debug
  • app2Foo1Release
  • app2Foo2Debug
  • app2Foo2Release

flavorDimensions については下記参考
flavorDimensionsによるflavorの指定方法

アプリのわけ方

ビルドバリアントについてわかったところでアプリを本番、開発、ダミーの3つにわけていきます。

1. アプリを3つにわける

とりあえずフレーバーを下記のようにわければアプリがわけれます。アプリ ID も別々のものが設定されます!

エミュレータで起動する場合は Android Studio の左下の Build Variants で起動したいアプリを選択する。

variant

2. 接続先サーバをわける

それぞれのアプリで処理を分岐させるには下記のように書ける。これで接続先サーバもわけれます!

3. アプリ名をわける

マニフェストファイルの android:labe を下記のように変更する

フレーバーの設定に manifestPlaceholders を追加する

strings.xml にそれぞれのアプリ名を追加する

これでアプリ名もわけれます!

この記事(Androidアプリのビルド設定管理(Product Flavor、Build Type))のようにフレーバーごとに文字リソースファイルを追加する方法でもいけるようです。

4. アプリアイコンをわける

ic_launcher > New > Image Asset > Next でフレーバーごとにリソースを追加する。

launcher

これでアプリアイコンもわけれます!

成果物はこんな感じ!

app

おわりに

これで iOS と同じようにアプリをわけることができました!

あとはコルーチンと通信まわり、Dagger について調べたらアプリ作成に入ろうと思います。(ながい。。。)

参考

Amazon.co.jp

コメント

タイトルとURLをコピーしました