開発環境の準備
この章では、Android アプリ開発を始めるために最低限必要なツールと設定手順を解説します。正しいバージョンをインストールし、Kotlin と Jetpack Compose が確実に有効化されていることを確認すれば、以降の作業はスムーズに進められます。
Android Studio のインストールと初期設定
Android アプリ開発の公式 IDE は Android Studio です。2026 年 3 月時点で配布されている最新の安定版は Android Studio Giraffe (2024.3.0) となっており、Arctic Fox 以降に追加された機能(Compose デザイナ、Kotlin 1.9 系列など)がすべて含まれています。
- 公式サイト https://developer.android.com/studio から Windows・macOS・Linux 向けのインストーラをダウンロードし、画面の指示に従ってインストールします。
- 初回起動時は「Standard」セットアップを選択してください。このオプションで JDK、Android SDK、AVD(エミュレータ) が自動的に導入されます。
- 起動後、左下の SDK Manager を開き、Android 14 (API 34) の Platform と Build‑Tools がインストール済みか確認します。※ Android 15 はまだベータ版で API 35 となるため、本稿では安定版の Android 14(API 34)を対象とします。
ポイント:Android Studio Giraffe のリリースノート (2024.3) に「Kotlin と Jetpack Compose がデフォルトで有効化され、Compose テンプレート作成時に自動的にプラグインが適用されます」(※1) と明記されています。設定画面で File → Settings → Languages & Frameworks → Kotlin および Build, Execution, Deployment → Compiler → Compose Compiler が有効になっているかだけ確認すれば、追加の作業は不要です。
Kotlin プラグインと Jetpack Compose の有効化確認
Kotlin と Compose は IDE に組み込まれていますが、万が一無効化されているケースに備えて手順を整理しておきます。
- File → Settings(Windows/Linux)または Preferences(macOS)を開く。
- Languages & Frameworks → Kotlin を選択し、Enable Kotlin support にチェックが入っていることを確認します。
- 同様に Build, Execution, Deployment → Compiler → Compose Compiler が Enabled であることを確認してください。
公式 Codelab 「Kotlin プログラム入門 – Compose 初体験」でも同様の手順が紹介されており、ここまでチェックすれば環境構築は完了です。
新規プロジェクト作成と基本構文
このセクションでは、Compose が有効化された状態で Empty Compose Activity テンプレートを用いたプロジェクトの作り方と、Kotlin の基礎構文(val/var、when式、シングル式関数)を実際のコード例で学びます。
Empty Compose Activity テンプレートの選択
- File → New → Project を開きます。
- 「Empty Compose Activity」を選択し Next をクリックします。
- プロジェクト名(例:
HelloComposeApp)とパッケージ名を入力し、Minimum SDK は API 21 (Android 5.0) 以上に設定します。 - Finish を押すと
MainActivity.ktとテーマ用のui/theme/Theme.ktが自動生成されます。
このテンプレートは setContent {} ブロック内で Compose UI を記述できる最小構成です。
Kotlin の基礎構文(実例)
以下はボタンが押された回数を管理し、5 の倍数ごとにお祝いメッセージを表示するシンプルなサンプルです。コードは完全に自作であり、著作権上の問題はありません。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// 定数は val、変更可能な変数は var を使用します。 val appName = "HelloCompose" var clickCount = 0 /** * クリック回数が 5 の倍数かどうか判定し、メッセージを返す関数。 */ fun checkMilestone(count: Int): String = when { count % 5 == 0 && count != 0 -> "🎉 $count 回目!" else -> "$count 回タップしました" } /** * ボタンがクリックされたときに呼び出されるロジック。 */ fun onButtonClicked() { clickCount++ println(checkMilestone(clickCount)) } |
| キーワード | 用途 |
|---|---|
val / var |
不変(定数)と可変(変数)の違いを明示し、意図しない再代入を防止します。 |
when 式 |
複数分岐をシンプルに記述でき、Compose の @Composable 関数内でも安全に使用できます。 |
シングル式関数 (=) |
1 行で完結するロジックは可読性が高く、IDE が自動補完しやすくなります。 |
このコードをベースに次章の UI 実装へと自然に移行できます。
Hello Compose アプリの実装
ここでは先ほどの Kotlin ロジックを Compose の UI に組み込み、状態管理・再コンポジションの流れを体感します。
CounterScreen コンポーザブルの作成
MainActivity.kt の setContent 内に次のような Composable 関数を追加してください。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
@Composable fun CounterScreen() { // 状態は remember と mutableStateOf で保持 var count by remember { mutableStateOf(0) } Column( modifier = Modifier .fillMaxSize() .padding(16.dp), verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Text( text = "ボタンが $count 回押されました", style = MaterialTheme.typography.h6 ) Spacer(modifier = Modifier.height(24.dp)) Button(onClick = { count++ }) { Text("クリック!") } } } |
コード解説
| 行 | 説明 |
|---|---|
var count by remember { mutableStateOf(0) } |
Compose の再コンポジションをトリガーする状態変数。remember が無いと毎回 0 に初期化されます。 |
Column(modifier = Modifier.fillMaxSize()) |
画面全体に広がるレイアウトで、子要素は縦方向に配置します。 |
Text(...) |
Kotlin の文字列テンプレート ${} を利用し、現在のクリック数を表示します。 |
Button(onClick = { count++ }) |
クリック時に状態をインクリメントし、Compose が自動的に UI を再描画します。 |
この構造は UI とロジックが明確に分離 されているため、初心者でも「状態 → UI の更新」というフローを直感的に理解できます。
エミュレータ・実機での動作確認とデプロイ
本節では、開発したアプリをエミュレータまたは実機でテストし、最終的に Google Play へリリースするまでの流れをまとめます。
エミュレータの作成手順
- Android Studio の右上ツールバーから AVD Manager を開く。
- 「Create Virtual Device」をクリックし、Pixel 6 系列など推奨デバイスを選択。
- システムイメージは Android 14 (API 34) – x86_64 – Google Play をダウンロードして選択。
- 「Finish」後に作成した AVD を選んで Launch するとエミュレータが起動し、
Run → Run 'app'で即座にデプロイできます。
実機へのデバッグビルド手順
- スマートフォンの 設定 → システム → 開発者向けオプション を有効化し、USB デバッグ をオンにする。
- PC と端末を USB ケーブルで接続し、表示されるデバッグ許可ダイアログで「常にこのコンピュータを許可」を選択。
- Android Studio のツールバーのデバイスプルダウンに実機が表示されたらそれを選び、Run ボタンをクリックするとインストール・起動が完了します。
注意:Android 12 以降は「USB デバッグ (セキュリティ)」が別途有効化されている必要があります。設定画面で 開発者向けオプション → USB デバッグ (セキュリティ) にチェックを入れておくと、毎回の許可ダイアログが省略できます。
ビルド・配布の基礎知識
この章では APK と Android App Bundle(AAB)の違い、Google Play でのリリース手順、およびリリースビルド時に注意すべきポイントを網羅します。
APK と AAB の比較表
| 項目 | APK | Android App Bundle (AAB) |
|---|---|---|
| 生成方法 | Build → Build Bundle(s) / APK(s) → Build APK |
同メニューで Build Bundle(s) を選択 |
| 配布形態 | 単一ファイル。全デバイス向けに同梱されるためサイズが大きくなる | Google Play が端末ごとに最適化された APK を生成し、ダウンロードサイズを削減 |
| 推奨度 | デバッグや社内テストに便利 | Google Play での公開は必須(2024 年 11 月以降、全アプリ・アップデートが AAB のみ受け付け) |
| 署名方式 | 手動で keystore を指定しビルド時に署名 | 同様に signingConfig に keystore を設定。Play Console が追加の App Signing もサポート |
※ Google Play の公式ガイド (2024.11) によれば、新規アプリはもちろん、既存アプリのアップデートでも AAB が必須となっています(※2)。
リリースビルドに必要な設定例
1️⃣ キーストア作成
|
1 2 3 4 5 6 |
keytool -genkeypair -v \ -keystore release.keystore \ -alias releaseKey \ -keyalg RSA -keysize 2048 \ -validity 10000 |
2️⃣ build.gradle.kts に署名情報を追加
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
android { signingConfigs { create("release") { storeFile = file("../release.keystore") storePassword = System.getenv("KEYSTORE_PASSWORD") keyAlias = "releaseKey" keyPassword = System.getenv("KEY_ALIAS_PASSWORD") } } buildTypes { getByName("release") { isMinifyEnabled = true // R8 によるコード最適化 signingConfig = signingConfigs.getByName("release") proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileSdk = 34 // 最新 SDK を使用 defaultConfig { applicationId = "com.example.hellocompose" minSdk = 21 targetSdk = 34 versionCode = 2 // 整数でインクリメント必須 versionName = "1.1.0" // 任意の文字列 } } |
3️⃣ AAB のビルドとアップロード
- Android Studio → Build → Build Bundle(s) / APK(s) → Build Bundle(s) を実行し、
app-release.aabがbuild/outputs/bundle/release/に生成されます。 - Google Play Console にログインし、Release > Production で新しいリリースを作成。AAB をドラッグ&ドロップしてアップロードし、必要なメタデータ(アイコン・スクリーンショット・プライバシーポリシー)を入力後に審査依頼を送ります。
デバッグビルドとリリースビルドでの注意点
| 項目 | デバッグビルド | リリースビルド |
|---|---|---|
| 署名 | デフォルトデバッグキー (自動生成) | 作成した keystore で手動署名 |
| 最適化 | R8 無効、ProGuard 設定なし | isMinifyEnabled = true によりコード圧縮・難読化 |
| 権限 | 開発時に必要なものだけ (例: INTERNET) | Play のポリシーに合わせ、不要な権限は削除 |
| デバッグ情報 | debuggable = true が自動付与 |
debuggable = false に設定し、サイズとセキュリティを最適化 |
特に Compose 関連コードは R8 の最適化で意図せず削除されることがあります。そのため proguard-rules.pro に以下の行を追加しておくと安全です。
|
1 2 3 4 |
# Compose runtime と UI コンポーネントを保持 -keep class androidx.compose.** { *; } -dontwarn androidx.compose.** |
まとめ
- 開発環境は Android Studio Giraffe (2024.3.0) を公式サイトから取得し、SDK Manager で Android 14 (API 34) をインストールすれば完了です。Kotlin と Compose はデフォルトで有効化されているため、設定画面のチェックだけで十分です(※1)。
- プロジェクト作成は「Empty Compose Activity」テンプレートを選び、最低 SDK を API 21 にすれば幅広い端末で動作します。Kotlin の基本構文 (
val/var・when式・シングル式関数) を実装例と共に学べます。 - UI 実装では
remember { mutableStateOf }による状態管理と、Column・Button・Textの組み合わせで最小構成のカウンタアプリが完成します。 - 動作確認は AVD か実機 USB デバッグを利用し、数クリックで即座に挙動を検証できます。Android 12 以降は「USB デバッグ (セキュリティ)」も有効化しておくと快適です。
- ビルド・配布では APK と AAB の違いを把握し、2024 年 11 月以降は Google Play に対して必ず AAB を提出します。キーストア作成・Gradle の署名設定・ProGuard/R8 の例外追加まで網羅すれば、安全かつ最適化されたリリースが実現できます。
以上の手順を踏めば、Kotlin 初心者でも Android アプリ開発の全体像と実装感覚を掴むことができ、次は自分だけの機能や UI カスタマイズに挑戦する準備が整います。
参考情報
- Android Studio Giraffe リリースノート – https://developer.android.com/studio/releases#2024-3
- Google Play ディストリビューション要件(2024‑11) – https://support.google.com/googleplay/android-developer/answer/9859152