カテゴリ: Kotlin 更新日: 2025/11/30

Kotlinのビルド設定を完全ガイド!buildTypesとproductFlavorsの基本を初心者向けに解説

Kotlinのビルド設定(buildTypes・productFlavors)の基本
Kotlinのビルド設定(buildTypes・productFlavors)の基本

先生と生徒の会話形式で理解しよう

生徒

「Kotlinでアプリを作るときに、buildTypesとかproductFlavorsっていうのを見かけたんですけど、これって何ですか?」

先生

「いいところに気づきましたね。Kotlinでは、アプリを開発・ビルド(組み立て)する際に、環境ごとの設定を切り替えるためにbuildTypesproductFlavorsという便利な仕組みがあります。」

生徒

「名前が難しそうだけど…何ができるようになるんですか?」

先生

「簡単に言えば、アプリを開発用と本番用で分けて設定できるようになったり、複数のブランドやサービス向けにアプリを出し分けるときに使えるんですよ。では、具体的に見ていきましょう!」

1. Kotlinのビルドとは?

1. Kotlinのビルドとは?
1. Kotlinのビルドとは?

ビルドとは、Kotlinのコードを実際にスマートフォンなどで動かせるアプリの形に変換する作業のことです。このとき、設定や条件に応じて「どういうアプリを作るか」を切り替えることができます。

たとえば、開発用にはログをたくさん出すけど、本番用には表示しないなど、細かな違いを分けて管理できます。

2. buildTypesとは?

2. buildTypesとは?
2. buildTypesとは?

buildTypes(ビルドタイプ)は、同じアプリの中で開発・テスト・本番など、用途に応じたビルドの種類を作るための設定です。

代表的な種類は以下の2つです。

  • debug:開発者が動作確認やデバッグをするためのモード
  • release:実際に公開する本番用のモード

それぞれに異なる設定(例:暗号化・ログ出力・署名など)を持たせることができます。

3. build.gradle.ktsでのbuildTypesの書き方

3. build.gradle.ktsでのbuildTypesの書き方
3. build.gradle.ktsでのbuildTypesの書き方

設定ファイルbuild.gradle.ktsに以下のように書きます。


android {
    buildTypes {
        getByName("debug") {
            isDebuggable = true
            applicationIdSuffix = ".debug"
        }
        getByName("release") {
            isMinifyEnabled = true
            proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"))
        }
    }
}

debuggableはデバッグできるかどうか、applicationIdSuffixはアプリのIDに「.debug」などの文字を追加するものです。

4. productFlavorsとは?

4. productFlavorsとは?
4. productFlavorsとは?

productFlavors(プロダクトフレーバー)は、同じアプリの中で機能や見た目を少し変えて、複数のバリエーションを作りたいときに使う機能です。

たとえば、無料版と有料版を同じソースコードから作り分けるときに便利です。

5. productFlavorsの具体的な書き方

5. productFlavorsの具体的な書き方
5. productFlavorsの具体的な書き方

こちらもbuild.gradle.ktsに以下のように設定します。


android {
    flavorDimensions += "version"
    productFlavors {
        create("free") {
            dimension = "version"
            applicationIdSuffix = ".free"
            versionNameSuffix = "-free"
        }
        create("paid") {
            dimension = "version"
            applicationIdSuffix = ".paid"
            versionNameSuffix = "-paid"
        }
    }
}

freepaidという2種類のアプリが、同じソースコードから作れるようになります。

6. buildTypesとproductFlavorsを組み合わせると?

6. buildTypesとproductFlavorsを組み合わせると?
6. buildTypesとproductFlavorsを組み合わせると?

この2つを組み合わせると、アプリの種類は掛け算で増えます。

  • freeDebug
  • freeRelease
  • paidDebug
  • paidRelease

このように、開発用・本番用・無料版・有料版などを自由に組み合わせて、それぞれのバージョンを自動でビルドできるのが強みです。

7. アプリごとのリソースを分けたいときは?

7. アプリごとのリソースを分けたいときは?
7. アプリごとのリソースを分けたいときは?

無料版と有料版でアプリアイコンや色、文言などを変えたい場合は、以下のようにフォルダを分けて配置できます。


src/
├── free/
│   └── res/
│       └── values/strings.xml
├── paid/
│   └── res/
│       └── values/strings.xml

同じファイル名でも、フレーバーによって異なる内容を使い分けることができます。

8. 実行時の選択とビルドの流れ

8. 実行時の選択とビルドの流れ
8. 実行時の選択とビルドの流れ

実際にアプリを実行するとき、Android Studioのビルド構成(Build Variant)から「freeDebug」などを選べば、目的の組み合わせでアプリを起動できます。

これにより、環境ごとに切り替えてテストや確認が簡単に行えるようになります。

9. Kotlinのビルド設定のメリット

9. Kotlinのビルド設定のメリット
9. Kotlinのビルド設定のメリット
  • 開発と本番を明確に分けて安全に管理できる
  • アプリの種類が増えても同じプロジェクトで対応できる
  • 設定はbuild.gradle.ktsファイルに集中して管理
  • アプリの見た目や機能の切り替えが簡単になる
  • 作業を自動化できるのでミスが減る

はじめて見ると難しそうに感じるかもしれませんが、使っていくうちにどんどん便利さを実感できます。ぜひ自分のアプリで試してみましょう。

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
New2
Kotlin
Kotlinのコーディング規約(公式スタイルガイド)とは?読みやすいコードを書くための基本ルール
New3
Kotlin
Kotlinの関数型を整理するパッケージ・ファイル構造の例を初心者向けにやさしく解説!
New4
Swift
Swiftデータ型まとめ|String・Int・Bool・Arrayの基本を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.4
Java&Spring記事人気No4
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.5
Java&Spring記事人気No5
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.6
Java&Spring記事人気No6
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.7
Java&Spring記事人気No7
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!