Android Studioで、一つのプロジェクトから複数のアプリを作成する方法
プログラムを変更せずに複数のアプリを作りたい
アプリを作っていると、無料版と有料版をリリースしたいことがあります。あるいはコンテンツとなるリソースだけを入れ替えて複数のアプリを作りたいことがあります。
こうした場合、それぞれにプロジェクトを作成すると、管理が煩雑になります。また、プログラムに変更が生じた場合、それぞれのプロジェクトを開いて同じ作業を繰り返すことになり、時間と手間がかかると同時に作業ミスを起こしやすくなります。
それならば共通クラスを作るなり自作でフレームワークを作るなりすればいいじゃないか、という話なんですが、そうするよりももっと簡単に一つのプロジェクトから複数のアプリを作成する方法があるので紹介したいと思います。
完成イメージ
[Switching] というアプリの無料版(free)と有料版(charge)を作成したいと思います。
無料版を実行した時
有料版を実行した時
メニュー画面
build.gradle に無料版と有料版の設定を追加する
プロジェクトの appフォルダ内にある build.gradle に productFlavors を追加します。packageName をそれぞれ指定することにより、別アプリ(パッケージ)としてアプリを作ることができます。
apply plugin: 'com.android.application' android { compileSdkVersion 20 buildToolsVersion "20.0.0" defaultConfig { applicationId "com.example.switching" minSdkVersion 19 targetSdkVersion 20 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } // 無料版と有料版の設定 productFlavors { // 無料版 free { packageName = 'com.example.switching.free' } // 有料版 charge { packageName = 'com.example.switching.charge' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
無料版、有料版それぞれのビルド方法
メニューの [表示] - [ツールウィンドウ] - [Build Variants] でビルド選択画面を開きます。
ここから無料版、有料版それぞれのビルド方法を選択することができます。
無料版と有料版のリソースを追加する
このままですと無料版も有料版も違いがありませんので、それぞれにリソースを追加して違う見た目と動きにしてみたいと思います。
プロジェクトの main フォルダと同列に free と charge フォルダを作り、その中に main の res フォルダをコピーします。
こうすることで、ビルド時に free と charge それぞれのリソースを読み込んでくれるようになります。
試しに free/res/values/strings.xml を変更してみます。
アプリ名とTextViewの文字列を変更してみました。
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">Switching free</string> <string name="hello_world">これは無料版です。</string> <string name="action_settings">Settings</string> </resources>
[Build Variants] を freeDebug にして実行した結果がこちらです。
さらに、charge/res/values/strings.xml の変更と、free、charge それぞれのアイコンを設定したものが冒頭に紹介した完成イメージになります。(アイコンを追加する方法は、Android Studioでアプリのアイコンを設定する方法 - Android Studioでアプリ開発!を参照してください)
まとめ
一つのプロジェクトから複数のアプリを作成してみました。build.gradle に作成したいアプリごとの設定を追加し、packageName を指定することで同一プログラムで別のアプリを作ることができました。それぞれにリソースを追加・設定することで見た目やコンテンツを変えることができました。
無料・有料アプリやリソースを入れ替えて別アプリを作りたい場合、最も運用コストを抑えられる方法だと思います。
Android StudioではじめるAndroidプログラミング入門
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2014/04
- メディア: 単行本
- この商品を含むブログ (1件) を見る
- 作者: 柴田文彦,川口仁
- 出版社/メーカー: インプレス
- 発売日: 2014/01/16
- メディア: Kindle版
- この商品を含むブログ (1件) を見る