Androidアプリの開発の流れを一通りためしてみた（失敗談）

# はじめに
Andoridアプリを以前から開発してみたいと思っていたのですが、どれくらいハードルがあるのかも手順も分かっていませんでした。
しかし、最近生成AIでできることが増えてきてもしかしてAndroidアプリ開発もサクッと出来るようになってるんじゃないか、という思い付きで試してみました。
最初に結論を言うと、理解が浅いまま進めたゆえ、エラーにぶち当たって先に進めなくなりました。
なので最後まで開発手順をお見せできていないものになりますので、その点ご了承ください。

# １.Androidアプリ開発手順の調査
まず、Geminiを使って雑にAndroidアプリ開発の流れを確認してみました。



#### プロンプト
```
WindowsPC上でAndroidアプリを作成してリリースするまでの手順と手法を教えてください
対象者はAndroid開発を初めて行う初学者なのでステップバイステップで丁寧に教えてください
```


<details><summary>GeminiによるAndroid開発手順の説明</summary>

:::note warn
以下の文章は、生成AIの出力そのままなので注意して下さい
:::

---

## Windows PCでAndroidアプリを作成しリリースする手順（初心者向け）

### 1. 開発環境の準備

#### ステップ 1-1: Java Development Kit (JDK) のインストール
Androidアプリの開発にはJavaが必須です。JDKをインストールしましょう。

1.  **Oracle JDKのダウンロードページにアクセスします。**
通常は最新のLTS (Long Term Support) 版をダウンロードするのが良いでしょう。Windows x64 Installer (.exe) を選択し、ダウンロードしてください。
2.  **ダウンロードしたインストーラーを実行します。**
    指示に従ってインストールを進めます。特に設定を変更する必要はありませんが、インストール先フォルダは覚えておきましょう。
3.  **環境変数の設定（重要！）**
    JDKのインストール後、システムがJavaのコマンドを認識できるように環境変数を設定する必要があります。
    * コントロールパネルを開き、「システムとセキュリティ」→「システム」→「システムの詳細設定」をクリックします。
    * 「詳細設定」タブの「環境変数」ボタンをクリックします。
    * 「システム環境変数」の「Path」を選択し、「編集」をクリックします。
    * 「新規」をクリックし、JDKの`bin`フォルダのパスを追加します。（例: `C:\Program Files\Java\jdk-xx.x.x\bin`）
    * 追加後、すべてのダイアログを「OK」で閉じます。
    * **確認:** コマンドプロンプトを開き、「`java -version`」と入力してEnterキーを押します。Javaのバージョン情報が表示されれば成功です。

#### ステップ 1-2: Android Studioのインストール
Androidアプリ開発の統合開発環境（IDE）であるAndroid Studioをインストールします。

1.  **Android Studioの公式ダウンロードページにアクセスします。**
「Download Android Studio」ボタンをクリックし、利用規約に同意してダウンロードします。
2.  **ダウンロードしたインストーラーを実行します。**
    指示に従ってインストールを進めます。
    * **"Android Virtual Device" (AVD) にチェックが入っていることを確認してください。** これにより、エミュレータ（仮想Android端末）がインストールされます。
    * インストール先はデフォルトで問題ありませんが、十分なディスク容量があることを確認してください。
3.  **Android Studioの初回起動とSDKコンポーネントのダウンロード**
    * インストール完了後、Android Studioを起動します。
    * 初回起動時に、Android SDK Platform-Tools、SDK Platformなどの必要なコンポーネントが自動的にダウンロード・インストールされます。インターネット接続が必要です。
    * プロキシ設定などが必要な場合は、適宜設定してください。
    * **確認:** Android Studioの画面上部のメニューから「File」→「Settings」（Macの場合は「Android Studio」→「Preferences」）を選択し、「Appearance & Behavior」→「System Settings」→「Android SDK」を開きます。「SDK Platforms」タブで、最新のAndroidバージョンにチェックが入っていること、「SDK Tools」タブで「Android SDK Build-Tools」「Android SDK Platform-Tools」「Android SDK Command-line Tools」などにチェックが入っていることを確認します。

### 2. Androidアプリの作成（プロジェクトの開始）

#### ステップ 2-1: 新しいプロジェクトの作成

1.  **Android Studioを起動します。**
2.  スタート画面が表示されたら、「**New Project**」をクリックします。
3.  「**Phone and Tablet**」タブを選択し、テンプレートの中から「**Empty Activity**」を選択して「Next」をクリックします。
    * **Empty Activity:** 最も基本的なアプリのテンプレートで、画面とそれに付随するコードが最小限で作成されます。初心者には最適です。
4.  「**Configure Your Project**」画面で以下の情報を入力します。
    * **Name:** アプリケーションの名前（例: MyFirstApp）
    * **Package name:** アプリの一意の識別子。（例: `com.yourcompany.myfirstapp`）。通常は自動生成されますが、`yourcompany`の部分を自分の組織名などに変更すると良いでしょう。
    * **Save location:** プロジェクトを保存するフォルダ。
    * **Language:** Kotlin（推奨）またはJavaを選択します。**現在はKotlinが主流であり、GoogleもKotlinを推奨しています。** ここでは**Kotlin**を選択しましょう。
    * **Minimum SDK:** アプリが動作するAndroidの最小バージョン。古いバージョンを指定するとより多くのデバイスで動作しますが、使える機能が制限されます。最初はデフォルト（最新版から少し前のバージョン）で問題ありません。
5.  「**Finish**」をクリックします。

Android Studioがプロジェクトファイルを生成し、表示するまでに時間がかかります。初回は必要なコンポーネントのダウンロードも行われるため、さらに時間がかかることがあります。

#### ステップ 2-2: プロジェクトの構成理解

プロジェクトがロードされると、Android Studioの画面が表示されます。主に以下の部分を意識しましょう。

* **Project Explorer (左側):** プロジェクトのファイル構造が表示されます。
    * `app`フォルダ: アプリケーションのソースコードとリソースファイルが含まれます。
        * `java`フォルダ: Kotlin（またはJava）のソースコードファイル。
            * `com.yourcompany.myfirstapp` (パッケージ名): 主要なKotlinファイル（例: `MainActivity.kt`）が含まれます。
        * `res`フォルダ: アプリのリソースファイル。
            * `drawable`: 画像ファイル
            * `layout`: ユーザーインターフェース（画面）のレイアウトファイル（XML形式）
                * `activity_main.xml`: メイン画面のレイアウトファイル。
            * `mipmap`: アプリのアイコン
            * `values`: 文字列、色、スタイルなどの定義ファイル
                * `strings.xml`: アプリ内で表示するテキストを定義します。
* **Editor (中央):** 選択したファイルのコードが表示されます。
    * `.kt`ファイル（Kotlinコード）
    * `.xml`ファイル（レイアウトコード）
* **Palette, Component Tree, Attributes (右側):** レイアウトファイルを開いているときに表示される、UI部品の選択、階層表示、プロパティ設定を行うためのツールウィンドウです。

#### ステップ 2-3: UIの編集（XMLレイアウト）

1.  `app` > `res` > `layout` > `activity_main.xml` をダブルクリックして開きます。
2.  画面中央にレイアウトエディタが表示されます。「Design」「Split」「Code」の3つのタブがあります。
    * **Design:** ビジュアルエディタでUIをドラッグ＆ドロップで配置できます。
    * **Split:** デザインビューとコードビューが同時に表示されます。
    * **Code:** XMLコードを直接編集します。
    初心者の方は「Split」または「Design」ビューから始めるのがおすすめです。
3.  デフォルトで「Hello World!」という`TextView`が配置されているはずです。
4.  **TextViewのテキストを変更してみましょう。**
    * `TextView`を選択し、右側の「Attributes」ウィンドウを開きます。
    * 「text」プロパティを見つけ、「Hello World!」を「はじめてのAndroidアプリ！」などに変更します。
    * テキストを直接入力するのではなく、`strings.xml`に定義するのが良い習慣です。
        * 「text」プロパティの右側にある四角いアイコン（`...`）をクリックします。
        * 「Resource」ダイアログで「Add new resource」→「New String Value」を選択します。
        * **Resource name:** `hello_message` （変数名のようなもの）
        * **Resource value:** `はじめてのAndroidアプリ！`
        * 「OK」をクリックします。`activity_main.xml`のtextプロパティが`@string/hello_message`に変わります。これで`strings.xml`に定義された文字列が使われるようになります。

#### ステップ 2-4: コードの編集（Kotlin）

1.  `app` > `java` > `com.yourcompany.myfirstapp` > `MainActivity.kt` をダブルクリックして開きます。
2.  これはアプリのメイン画面のロジックを記述するKotlinファイルです。
3.  今は特に変更する必要はありませんが、簡単にコードを見てみましょう。
    ```kotlin
    package com.yourcompany.myfirstapp

    import android.os.Bundle
    import androidx.activity.enableEdgeToEdge
    import androidx.appcompat.app.AppCompatActivity
    import androidx.core.view.ViewCompat
    import androidx.core.view.WindowInsetsCompat
    import com.yourcompany.myfirstapp.R // R.layout.activity_main などを使うために必要

    class MainActivity : AppCompatActivity() {
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            enableEdgeToEdge() // 最近のテンプレートで追加されるエッジツーエッジ表示の設定
            setContentView(R.layout.activity_main) // activity_main.xml を画面として設定

            // ここにコードを書いてアプリの動作を記述します
            ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
                val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
                v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
                insets
            }
        }
    }
    ```
    * `onCreate`メソッドは、アプリが起動したときに最初に実行される部分です。
    * `setContentView(R.layout.activity_main)`は、`activity_main.xml`で定義されたレイアウトをこのアクティビティの画面として設定する指示です。`R`はリソースファイルへのアクセスを提供するクラスです。

### 3. アプリの実行とデバッグ

#### ステップ 3-1: エミュレータ（AVD）の作成と起動

1.  Android Studioのツールバーから、スマホのアイコンのような「**Device Manager**」アイコンをクリックします。
2.  「**Create Device**」をクリックします。
3.  「**Phone**」カテゴリで好きなデバイス（例: Pixel 8）を選択し、「Next」をクリックします。
4.  「**System Image**」画面で、Androidのバージョン（APIレベル）を選択します。安定版の「**Recommended**」タブから、最新のAPIレベル（例: `UpsideDownCake` (API 34) や `VanillaIceCream` (API 35) など）をダウンロード（ダウンロードアイコンをクリック）し、「Next」をクリックします。
5.  AVDの名前などを確認し、「Finish」をクリックします。
6.  Device Managerに戻り、作成したエミュレータの「Actions」列にある「▶」アイコンをクリックしてエミュレータを起動します。初回は起動に時間がかかります。

#### ステップ 3-2: アプリの実行

1.  Android Studioのツールバーにある「**Run 'app'**」（緑色の再生ボタンのようなアイコン）をクリックします。
2.  もし複数のエミュレータや実機が接続されている場合、「Select Deployment Target」ダイアログが表示されるので、起動中のエミュレータを選択し「OK」をクリックします。
3.  アプリがビルドされ、エミュレータ上で起動します。「はじめてのAndroidアプリ！」と表示されれば成功です。

#### ステップ 3-3: 実機での実行（オプション）

PCとAndroid端末をUSBケーブルで接続して実機でテストすることもできます。

1.  **Android端末の設定:**
    * 端末の「設定」アプリを開きます。
    * 「端末情報」→「ビルド番号」を7回連続でタップします。「これでデベロッパーになりました！」というメッセージが表示されます。
    * 「設定」に戻り、「システム」→「開発者向けオプション」を開きます。
    * 「USBデバッグ」を有効にします。
2.  **PCでの操作:**
    * USBケーブルでPCと端末を接続します。
    * 端末に「USBデバッグを許可しますか？」のようなダイアログが表示されたら「常にこのコンピュータからの接続を許可する」にチェックを入れて「OK」をタップします。
    * Android Studioのツールバーにあるデバイス選択ドロップダウンメニューに、接続した実機の名前が表示されるようになります。それを選択し、「Run 'app'」をクリックします。

### 4. アプリのリリース準備

アプリをGoogle Playストアにリリースするためには、いくつかの準備が必要です。

#### ステップ 4-1: アプリケーションアイコンの準備

アプリを識別するためのアイコンが必要です。

1.  `app` > `res` を右クリックし、「New」→「Image Asset」を選択します。
2.  Asset Studioが開きます。
    * **Icon Type:** 「Launcher Icons (Adaptive and Legacy)」を選択します。
    * **Foreground Layer:** アイコンのメイン部分。Pathに画像ファイル（PNG推奨）を指定するか、Clip Artから選択します。
    * **Background Layer:** アイコンの背景部分。ColorまたはImageを選択します。
    * Previewでアイコンの表示を確認し、「Next」→「Finish」をクリックします。
    これにより、様々な解像度に対応したアイコンファイルが自動的に生成され、`mipmap`フォルダに配置されます。

#### ステップ 4-2: リリース用の署名付きAPK/AABの生成

Google Playストアにアップロードするには、アプリをデジタル署名する必要があります。通常はAndroid App Bundle (AAB) 形式でアップロードします。

1.  Android Studioのメニューから「**Build**」→「**Generate Signed Bundle / APK...**」を選択します。
2.  「Generate Signed Bundle or APK」ダイアログで「**Android App Bundle**」を選択し、「Next」をクリックします。
3.  **Key store path:**
    * 初めての場合は「**Create new...**」をクリックします。
    * **Key store path:** キーストアファイルの保存場所とファイル名（例: `C:\Users\YourUser\AndroidKeys\my_release_key.jks`）。
    * **Password:** キーストアのパスワード。**忘れないように厳重に管理してください。**
    * **Key:**
        * **Alias:** キーの別名（例: `my_app_key`）。
        * **Password:** キーのパスワード。**キーストアのパスワードと同じでも、別のものでも構いません。**
        * **Validity (years):** 有効期限。25年以上にしておくのが一般的です。
        * **Certificate:** アプリ開発者情報。必須ではありませんが、入力しておくと良いでしょう。
            * First and Last Name (必須)
            * Organizational Unit
            * Organization
            * City or Locality
            * State or Province
            * Country Code (JPなど)
    * 入力後、「OK」をクリックします。
    * すでにキーストアを作成済みの場合は、「Choose existing...」で既存のキーストアを選択します。
4.  キーストアのパスワードとキーのパスワードを入力し、「Next」をクリックします。
5.  **Build Variants:**
    * 「**release**」にチェックが入っていることを確認します。
    * 「**V1 (Jar Signature)**」と「**V2 (Full APK Signature)**」の両方にチェックを入れることを推奨します。
6.  「**Create**」をクリックします。

ビルドが完了すると、AABファイル（`.aab`）が指定された出力フォルダに生成されます。

### 5. Google Playストアへのリリース

アプリを世界中のユーザーに公開するには、Google Playストアを利用します。

#### ステップ 5-1: Google Play Consoleアカウントの作成

1.  **Google Play Consoleにアクセスします。**
開発者登録料（25米ドル、一回のみ）を支払い、アカウントを作成します。

#### ステップ 5-2: アプリの登録と情報入力

1.  Google Play Consoleにログインします。
2.  「**アプリを作成**」ボタンをクリックします。
3.  アプリの基本情報を入力します。
    * アプリ名
    * カテゴリ（ゲームかアプリか）
    * デフォルトの言語
4.  アプリのダッシュボードに移動します。ここから様々な情報を設定していきます。

#### ステップ 5-3: ストアの掲載情報の設定

ユーザーがGoogle Playストアでアプリを見つけるための情報です。

* **アプリ名、簡単な説明、詳しい説明:** アプリの機能や魅力を伝える文章です。
* **グラフィックアセット:** スクリーンショット、フィーチャーグラフィック（バナー画像）、プロモーション動画などをアップロードします。
* **カテゴリ:** アプリのカテゴリとタグを選択します。
* **連絡先情報:** ウェブサイト、メールアドレス、電話番号など。

#### ステップ 5-4: リリース設定

* **App Bundleのアップロード:**
    * 左側のメニューから「リリース」→「**製品版**」または「**テスト版**」を選択します。（最初は内部テストやクローズドテストから始めるのがおすすめです）
    * 「リリースを作成」をクリックし、生成した`.aab`ファイルをアップロードします。
* **リリースノート:** アプリの今回のバージョンでの変更点や新機能などを記述します。
* **国 / 地域:** アプリを公開する国や地域を選択します。
* **アプリのコンテンツ:**
    * **プライバシーポリシー:** アプリがユーザーデータをどのように扱うかを説明するプライバシーポリシーのURLを提供します。**必須です。**
    * **広告:** アプリに広告が含まれるかを選択します。
    * **コンテンツのレーティング:** アプリの内容に応じたレーティングを設定します。（アンケート形式で回答）
    * **ターゲットユーザーとコンテンツ:** ターゲットとなる年齢層を設定します。
    * **ニュースアプリ:** ニュースアプリかどうかを設定します。
    * **新型コロナウイルス感染症（COVID-19）の接触追跡またはステータスアプリ:** 該当するかどうかを設定します。
    * **データセーフティ:** アプリがどのようなユーザーデータを収集し、どのように扱うかを詳細に説明します。**2024年以降必須項目であり、非常に重要です。**

#### ステップ 5-5: レビューと公開

すべての情報が入力され、緑色のチェックマークが表示されたら、アプリをレビューに提出できます。

1.  「**製品版に公開**」（または選択したテストトラックの公開ボタン）をクリックします。
2.  Googleの審査が開始されます。審査には数時間から数日かかる場合があります。
3.  審査が承認されると、アプリがGoogle Playストアで公開されます。

### その他のヒントと学習リソース

* **定期的なアップデート:** アプリを公開したら、バグ修正、機能追加、パフォーマンス改善などのために定期的にアップデートを行いましょう。
* **ユーザーフィードバックの活用:** Google Play Consoleでユーザーからのレビューやフィードバックを確認し、アプリの改善に役立てましょう。
* **Android Developers公式ドキュメント:** Android開発の公式ドキュメントは最も信頼できる情報源です。困ったときにはまずここを参照しましょう。
    * [Android Developers (日本語)](https://developer.android.com/index.html?hl=ja)
* **Kotlinの学習:** Android開発の学習リソースは、Kotlinに特化したものが増えています。Kotlinの基礎をしっかり学ぶことをお勧めします。
    * [Kotlin の概要 | Android デベロッパー](https://developer.android.com/kotlin?hl=ja)
* **CourseraやUdemyなどのオンライン講座:** 体系的に学びたい場合は、オンライン学習プラットフォームの講座も有効です。
* **GitHubのサンプルコード:** 多くのオープンソースのAndroidアプリやGoogleが提供するサンプルコードを参考にすると良いでしょう。

---
</details>

# 2.環境構築

Android Studio 公式サイトからインストーラーをダウンロード
https://developer.android.com/studio?hl=ja
インスト―ル完了すると以下の画面が立ち上がります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/305763/3f1d9c3a-7d39-41f4-8872-009617f942e2.png)

# 3.プロジェクト作成 
Android Studioを起動し、「New Project」をクリックしてテンプレートの中から「Empty Activity」を選択して「Next」をクリック。
色々、アプリ名など聞かれるので入力後そのまま進める。
コードなどが一式入ったプロジェクトが作成される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/305763/dbb71983-1cb9-4e8e-a8b4-f6e1a2e589ff.png)

# 4.エミュレーター（AVD）での実行
 [Tools] > [Device Manager] で対象のデバイスを選択し、インストールする。

 ただ、自分の環境ではディスクの容量不足によりエミュレート機能は実行できませんでした(下図エラー画面ご参照ください)
 以下の方の記事を参考にエラー原因にはたどり着けました。
[エミュレータ起動時に「The emulator process for AVD Pixel_2_API_28 has terminated.」と表示される](https://qiita.com/AKARI-I/items/6af9863969151f120feb)

![image (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/305763/ef0a5bd3-dfcf-48ab-9091-7e999d85b205.png)

# 5.実機での実行
Androidデバイス上で開発者モードを有効にし、
Android Studio上でデバイスと接続するのですが、以下のエラーにより前に進めなくなりました。
（USB接続も同様）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/305763/3b474576-325d-4a1e-a040-5c1230a7cc9c.png)

[Android デバイスを接続する方法](https://developer.android.com/codelabs/basic-android-kotlin-compose-connect-device?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-basics-compose-unit-1-pathway-2%3F_gl%3D1*1nl4yk1*_up*MQ..*_ga*MTkzMDAxMDg1OC4xNzUwNjgzNzQx*_ga_6HH9YJMN9M*czE3NTA2ODM3NDEkbzEkZzAkdDE3NTA2ODM3NDEkajYwJGwwJGgxODIyNjM3MTgx&hl=ja#6)

# 6.最後に 
生成AIに最初の手順を出させたときはハードルの低さに驚き、簡単に進められると思っていました。
ただ、入り口の簡単さとは裏腹に障害にあたったときにはやはり生成AIでは状況説明等に限界があり、自分で色々調べる必要があることを思い知りました。
本記事は中途半端になっておりますので、また機会があれば今回起きたエラーの解決方法についても追記したいと思います。

#　参考サイト
[Andorid デベロッパー向けサイト](https://developer.android.com/courses/android-basics-compose/unit-1?hl=ja)