Help us understand the problem. What is going on with this article?

Flavorってなんなのか

Flavor(味付け)?

みなさんFlavor使ってますか
意外と使ってないアプリも多かったりするんじゃないですかね

今日はFlavorのよくある使い方を例に、少しだけアプリに味付けをしてみたいと思います

とりあえずAndroidStudioで適当なプロジェクトつくります
URLとか出したいじゃないですか。ふつう。
ということで、Configファイルに記載してあるURLを出してみます。
スクリーンショット 2019-12-05 19.55.50.png
スクリーンショット 2019-12-05 19.56.02.png

こんな感じで出ましたね。はい。
スクリーンショット 0400665f-20d3-3f89-c5a0-2a03dc4fe929.png

・・・URLとかってテスト用と本番用で変えたい場合がほとんどですよね。。。

わけてみる

本番用をhttps://www.yahoole.com
テスト用をhttps://www.test.yahoole.com

って感じにわけたいです。

ProjectStructureを起動してBuildVariantsからFlavorsを追加しましょう

Dimensionをつくる

Flavorを登録するためには、まずDimensionというものを登録する必要があります
これはFlavorをいろいろなことに使えるようにするためのものです

でもFlavorがなんなのかがいまいちわかってないのに、Dimensionの話をされても困りますよね
ここはおまじないのように「default」というDimensionでも作ってお茶を濁すことにしましょう
スクリーンショット 2019-12-05 20.45.21.png
スクリーンショット 2019-12-05 20.45.40.png

Flavorをつくる

Dimensionが登録できたので、Flavorを登録することができるようになりました
さっそく
本番:production
テスト:development
というFlavorを作ってみましょう
スクリーンショット 2019-12-05 20.50.04.png
スクリーンショット 2019-12-05 20.50.33.png

はい、2つできました

Flavorはたくさんのことができるんですが、今回は本当にシンプルにURLを変えるということだけやってみます

Flavorごとの入れ物をつくる

まずはprojectのウィンドウをAndroidからProject Filesに変えましょう
スクリーンショット 2019-12-05 20.52.52.png

次に、Configファイルの入っている、「main.java.com.gagaaplication」というフォルダ階層のmainの部分をdevelopmentに変えたフォルダ階層を作成します。
スクリーンショット 2019-12-05 20.53.16.png

スクリーンショット 2019-12-05 20.59.08.png

次に、Configファイルを今作った、「development.java.com.gagaaplication」の下に移動させます
スクリーンショット 2019-12-05 21.00.14.png

続いて、「development.java.com.gagaaplication」のdevelopmentをproductionに変えたものをコピペして作ります
スクリーンショット 2019-12-05 21.02.54.png

これで、main、development、productionという3つのおなじようなフォルダ構成ができました

Configの中身を変える

ConfigのURLを先程の本番用とテスト用にかきかえます
スクリーンショット 2019-12-05 21.06.13.png

これで、productionフォルダ配下のConfigの中身とdevelopmentフォルダ配下のConfigの中身が異なるものになりました

実行してみる

FlavorはBuildValiantsウィンドウから変更できます。
スクリーンショット 2019-12-05 21.08.09.png
「DebugとかReleaseとかついてるやんけ!わからんわ!」となってしまった方はとりあえずDebugが付いてるのを選びましょう
このDebugとかReleaseというのは「Build Type」というものなんですが、これについてはまた今度説明することにして、ここではだまってDebugを選びましょう

ではFlavor「development」(developmentDebug)を選んでRun!
スクリーンショット 0400665f-20d3-3f89-c5a0-2a03dc4fe929.png

続いてFlavor「production」(productionDebug)を選んでRun!
スクリーンショット 0400665f-20d3-3f89-c5a0-2a03dc4fe929.png

どうでしょう?
見事にURLの中身が変わったでしょうか?

まとめ

こんな感じでFlavorを使うと簡単になにかの値を切り替えることができます
今回はURLでしたが、クラス自体の中身を変えてmock用のFlavorを作ったり、SDKのバージョンを切り替えてテストするのに使用できたりと、あなた好みの味付けでビルドをすることができるようになります

ちなみに、アプリが大方出来上がってきてからFlavorで切り分けしようとすると変えたい情報が散らばってしまっていたりしてけっこう大変なので、Flavorはアプリの開発初期段階で作成してしまうのをおすすめします

では、すてきなAndoridライフを!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away