この Codelab は、Android Kotlin の基礎コースの一部です。このコースを最大限に活用するには、Codelab を順番に進めることをおすすめします。コースのすべての Codelab は、Android Kotlin の基礎の Codelab のランディング ページに一覧表示されています。
はじめに
この Codelab では、初めての Android アプリ「HelloWorld」を作成し、エミュレータと実機で実行します。また、Android プロジェクトの概要についても学習します。
前提となる知識
- Android Studio などの IDE(統合開発環境)を使用してオブジェクト指向アプリを開発する一般的なソフトウェア開発プロセスを理解している必要があります。
- オブジェクト指向プログラミングの経験が 1 年以上あり、Java と Kotlin を理解していることが望ましいです。
学習内容
- Android Studio で基本的な Android アプリをビルドする方法。
- テンプレートから Android プロジェクトを作成する方法。
- Android プロジェクトの主要コンポーネントを見つける方法。
- エミュレータまたは実機で Android アプリを実行する方法。
演習内容
- 新しい Android プロジェクトと、HelloWorld というデフォルトのアプリを作成します。
- エミュレータ(仮想デバイス)を作成して、パソコンでアプリを実行できるようにします。
- 仮想デバイスと物理デバイスで HelloWorld アプリを実行します。
- プロジェクトのレイアウトを確認します。
AndroidManifest.xml
ファイルを調べます。
HelloWorld アプリは、Android 仮想デバイスまたは物理デバイスの画面に文字列「Hello World」を表示します。アプリの外観は次のようになります。
このタスクでは、Android Studio が正しくインストールされていることを確認するために、新しいアプリ プロジェクトを作成します。
- Android Studio がまだ開いていない場合は開きます。
- メインの [Welcome to Android Studio] ダイアログで、[Start a new Android Studio project] をクリックします。
- [ Choose your project ] ダイアログが表示されます。下図のように [Empty Activity] を選択して、[Next] をクリックします。
Activity
は、ユーザーが実行できる単一の集中したものです。すべてのアプリには、エントリ ポイントとして少なくとも 1 つのアクティビティが必要です。このエントリ ポイント アクティビティは、他のプログラムのmain()
関数と考えることができます。通常、アクティビティには、ユーザー インターフェース(UI)要素が画面にどのように表示されるかを定義するレイアウトが関連付けられています。Android Studio には、簡単に作業を開始できるように、複数のActivity
テンプレートが用意されています。 - [Configure your project] ダイアログで、[Name] に「HelloWorld」と入力します。
- [会社のドメイン] にデフォルトの android.example.com を使用するか、会社固有のドメインを作成します。この値とアプリの名前を組み合わせたものが、アプリのパッケージ名になります。アプリを公開する予定がない場合は、デフォルトの値をそのまま使用します。アプリのパッケージ名は後で変更できますが、余分な作業が必要になります。
- デフォルトの [Save location] がアプリの保存先として適切であることを確認します。適切でない場合は、目的のディレクトリに変更します。
- [言語] が Kotlin になっていることを確認します。
- 最小 API レベルが API 19: Android 4.4(KitKat)になっていることを確認します。この Codelab の作成時点では、この API レベルでアプリが実行されるデバイスの割合は約 95.3% であると Android Studio に表示されていました。
(最小 API レベルについては、後の Codelab で詳しく説明します。詳細については、[Help me choose] をクリックしてください。API レベルに関する情報が記載されたウィンドウが開きます。) - [Use AndroidX artifacts] チェックボックスをオンにします。
- 他のチェックボックスはすべてオフのままにして、[完了] をクリックします。選択したターゲット SDK に必要なコンポーネントがプロジェクトに不足している場合は、Android Studio が自動的にインストールします。これには時間がかかることがあります。プロンプトに沿って操作し、デフォルト オプションを受け入れます。
Android Studio でプロジェクトが作成されます。この処理には時間がかかることがあります。エラーは発生しません。警告が表示された場合は、無視してください。
このタスクでは、Android Studio で HelloWorld プロジェクトを調べ、Android Studio での開発の基本を学びます。
ステップ 1: [プロジェクト] ペインを確認する
- [プロジェクト] タブが選択されていない場合は、選択します。[Project] タブは、Android Studio ウィンドウの左側にある垂直タブ列にあります。[プロジェクト] ペインが開きます。
- プロジェクトを標準の Android プロジェクト階層として表示するには、[Project] ペインの上部にあるプルダウン メニューから [Android] を選択します。(デフォルトは Android です)。プロジェクト ファイルは、ファイル システム階層での表示方法など、さまざまな方法で表示できます。ただし、Android ビューを使用すると、プロジェクトの操作が簡単になります。
ステップ 2: アプリ フォルダを確認する
アプリのすべてのコードとリソースは app
フォルダにあります。
- [Project] > [Android] ペインで、[app] フォルダを開きます。
app
フォルダ内には、manifests
、java
、generatedJava
、res
の 4 つのサブフォルダがあります。 - [java] フォルダを開き、[com.example.android.HelloWorld] フォルダを開いて、MainActivity Kotlin ファイルを表示します。
[java] フォルダには、Android アプリのすべてのメイン Kotlin コードが含まれています。Kotlin コードが java フォルダに表示されるのは、歴史的な理由があります。この規約により、Kotlin は同じプロジェクトやアプリ内でも、Java プログラミング言語で記述されたコードとシームレスに相互運用できます。
アプリのクラスファイルは、上の図に示すように、3 つのサブフォルダに格納されています。com.example.hello.helloworld フォルダ(または指定したドメイン名)には、アプリ パッケージのすべてのファイルが含まれています。特に、MainActivity
クラスはアプリのメイン エントリ ポイントです。MainActivity
については、次の Codelab で詳しく説明します。java
フォルダ内の他の 2 つのフォルダは、単体テストなどのテスト関連のコードに使用されます。
- generatedJava フォルダをメモします。このフォルダには、Android Studio がアプリをビルドするときに生成するファイルが含まれています。このフォルダ内のファイルは編集しないでください。アプリを再ビルドするときに、変更がオーバーライドされる可能性があります。ただし、デバッグ中にこれらのファイルを確認する必要がある場合は、このフォルダについて知っておくと便利です。
ステップ 3: res フォルダを確認する
- [Project] > [Android] ペインで、[res] フォルダを開きます。
[res] フォルダにはリソースが格納されています。Android のリソースは、アプリで使用される静的コンテンツです。リソースには、画像、テキスト文字列、画面レイアウト、スタイル、16 進数の色や標準の寸法などの値が含まれます。
Android アプリでは、Kotlin コードとリソースをできるだけ分離します。これにより、アプリの UI で使用されているすべての文字列やアイコンを簡単に見つけることができます。また、これらのリソース ファイルのいずれかを変更すると、アプリ内でそのファイルが使用されているすべての場所で変更が有効になります。 - [res] フォルダ内で、[layout] フォルダを開いて
activity_main.xml
ファイルを表示します。
通常、Activity
は UI レイアウト ファイルに関連付けられています。これは、res/layout
ディレクトリの XML ファイルとして定義されます。通常、そのレイアウト ファイルにはアクティビティの名前が付けられます。この場合、アクティビティ名は MainActivity
なので、関連するレイアウトは activity_main
です。
ステップ 4: manifests フォルダと AndroidManifest.xml を調べる
manifests
フォルダには、アプリに関する重要な情報を Android システムに提供するファイルが含まれています。
- manifests フォルダを開き、AndroidManifest.xml をダブルクリックして開きます。
AndroidManifest.xml
ファイルには、アプリを構成するアクティビティなど、Android システムがアプリを実行するために必要な詳細が含まれています。 MainActivity
は<activity>
要素で参照されます。アプリ内のActivity
はすべてマニフェストで宣言する必要があります。MainActivity
の例を次に示します。
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity>
内の<intent-filter>
要素に注目してください。このインテント フィルタの<action>
要素と<category>
要素は、ユーザーがランチャー アイコンをクリックしたときにアプリを起動する場所を Android に伝えます。インテント フィルタについては、後の Codelab で詳しく説明します。
AndroidManifest.xml
ファイルは、アプリに必要な権限を定義する場所でもあります。権限には、アプリが電話の連絡先を読み取る機能、インターネット経由でデータを送信する機能、デバイスのカメラなどのハードウェアにアクセスする機能が含まれます。
Gradle は、ドメイン固有の言語を使ってアプリのプロジェクトの構造、構成、依存関係を記述するビルド自動化システムです。アプリをコンパイルして実行すると、Gradle のビルドが実行中であるという情報が表示されます。インストールされる Android Package Kit(APK)に関する情報も表示されます。(APK は、Android オペレーティング システムがモバイルアプリの配信とインストールに使用するパッケージ ファイル形式です)。
Gradle システムを調べます。
- [Gradle Scripts] フォルダを開きます。[Project] > [Android] ペインで、このフォルダにはビルドシステムに必要なすべてのファイルが含まれています。
- build.gradle(Project: HelloWorld)ファイルを探します。
このファイルには、プロジェクトを構成するすべてのモジュールに共通の構成オプションが含まれています。すべての Android Studio プロジェクトには、単一のトップレベルの Gradle ビルドファイルが含まれています。このファイルは、プロジェクト内のすべてのモジュールに共通する Gradle リポジトリと依存関係を定義します。 - build.gradle(Module:app)ファイルを探します。
プロジェクト レベルのbuild.gradle
ファイルに加えて、各モジュールには独自のbuild.gradle
ファイルがあります。モジュール レベルのbuild.gradle
ファイルを使用すると、各モジュールのビルド設定を指定できます。(HelloWorld アプリには、アプリ自体のモジュールが 1 つだけあります)。このbuild.gradle
ファイルは、アプリレベルのビルド構成を変更するときに最も頻繁に編集するファイルです。たとえば、アプリがサポートする SDK レベルを変更する場合や、dependencies
セクションで新しい依存関係を宣言する場合は、このbuild.gradle
ファイルを編集します。これらについては、後の Codelab で詳しく説明します。
このタスクでは、Android Virtual Device(AVD)Manager を使用して仮想デバイス(エミュレータ)を作成します。仮想デバイスは、特定の種類の Android デバイスの構成をシミュレートします。その後、その仮想デバイスを使用してアプリを実行します。
Android Emulator は独立したアプリケーションであり、独自のシステム要件があります。仮想デバイスは、ディスク容量を大量に消費する可能性があります。問題が発生した場合は、Android Emulator 上でアプリを実行するをご覧ください。
ステップ 1: Android Virtual Device(AVD)を作成する
パソコンでエミュレータを実行するには、仮想デバイスを記述する構成を作成する必要があります。
- Android Studio で、[Tools] > [AVD Manager] を選択するか、ツールバーの AVD Manager アイコン
をクリックします。[Your Virtual Devices ] ダイアログが表示されます。仮想デバイスをすでに作成している場合は、ダイアログに表示されます(下の図を参照)。作成していない場合は、空のリストが表示されます。
- ダイアログの左下にある [+Create Virtual Device] をクリックします。[Select Hardware] ダイアログが表示され、事前設定済みのハードウェア デバイスのリストが表示されます。デバイスごとに、対角ディスプレイ サイズ [Size]、ピクセル単位の画面解像度 [Resolution]、ピクセル密度 [Density] の列が表に表示されます。
- Nexus 5x や Pixel XL などのデバイスを選択し、[Next] をクリックします。[System Image ] ダイアログが表示されます。
- [Recommended] タブをクリックし、仮想デバイスで実行する Android システムのバージョン(Pie など)を選択します。
- システム イメージを選択したら、[Next] をクリックします。[Android Virtual Device(AVD)] ダイアログが開きます。構成を確認して、[完了] をクリックします。
ステップ 2: 仮想デバイスでアプリを実行する
このタスクでは、新しいアプリを実行します。
- Android Studio で、[Run] > [Run app] を選択するか、ツールバーの実行アイコン [アイコンをここに表示] をクリックします。[IMAGEINFO]: ic_run.png、Android Studio の実行アイコン" style="width: 24.00px" src="img/6c65750f2ce7f651.png"> ツールバーの [Select Deployment Target] ダイアログが表示され、利用可能なデバイスがないという警告が表示されます。この警告は、開発用パソコンに物理デバイスが接続されていない場合、または仮想デバイスをまだ起動していない場合に表示されます。
- [Select Deployment Target] ダイアログの [Available Virtual Devices] で、作成した仮想デバイスを選択します。[OK] をクリックします。
エミュレータは、物理的なデバイスと同じように起動する必要があります。パソコンの処理速度によっては、この処理に時間がかかることがあります。アプリがビルドされ、エミュレータの準備が整うと、Android Studio によってアプリの APK がエミュレータにアップロードされて実行されます。
次の図に示すように、HelloWorld アプリが表示されます。
このタスクでは、スマートフォンやタブレットなどの実機でアプリを実行します(お持ちの場合)。アプリは必ず仮想デバイスと実機でテストしてください。
必要なもの:
- スマートフォンやタブレットなどの Android デバイス。
- USB ポートを介して Android デバイスをパソコンに接続するための USB データケーブル。
- Linux または Windows システムを使用している場合は、追加の手順が必要になることがあります。ハードウェア デバイス上でのアプリの実行をご覧ください。デバイスに適した USB ドライバのインストールが必要になることもあります。Windows ベースの USB ドライバについては、OEM USB ドライバをインストールするをご覧ください。
ステップ 1: USB デバッグをオンにする
Android Studio が Android デバイスと通信できるようにするには、デバイスの [開発者向けオプション] の設定で [USB デバッグ] を有効にする必要があります。
Android 4.2(Jellybean)以降の場合、[開発者向けオプション] の設定はデフォルトで非表示になっています。開発者向けオプションを表示して USB デバッグを有効にするには:
- デバイスで [設定] を開き、[デバイス情報] を検索して、[デバイス情報] をタップし、[ビルド番号] を 7 回タップします。
- 前のページ([設定] / [システム])に戻ります。リストに [開発者向けオプション] が表示されます。[開発者向けオプション] をタップします。
- [USB デバッグ] を選択します。
ステップ 2: Android デバイスでアプリを実行する
デバイスを接続して、Android Studio からアプリを実行できるようになりました。
- USB ケーブルで開発マシンに Android デバイスを接続します。デバイスに、USB デバッグの許可を求めるダイアログが表示されます。
- [常に許可する] を選択すると、このパソコンの情報が保存されます。[OK] をタップします。
- パソコンの [Android Studio] ツールバーで、[Run] ボタン
をクリックします。[Select Deployment Target] ダイアログが開き、利用可能なエミュレータと接続済みデバイスのリストが表示されます。エミュレータとお使いの実機が表示されます。
- お使いのデバイスを選択して、[OK] をクリックします。Android Studio によってそのデバイスにアプリがインストールされて実行されます。
トラブルシューティング
Android Studio がお使いのデバイスを認識しない場合は、以下の手順をお試しください。
- USB ケーブルを外し、接続し直します。
- Android Studio を再起動します。
上記の手順を行ってもパソコンでデバイスが検出されない場合や「unauthorized(不正)」と宣言される場合は、以下の手順を行ってください。
- USB ケーブルを外します。
- デバイスの設定アプリで [開発者向けオプション] を開きます。
- [USB デバッグの許可の取り消し] をタップします。
- パソコンにデバイスを再接続します。
- 許可を求めるメッセージが表示されたら、許可します。
デバイスに適した USB ドライバのインストールが必要になることがあります。ハードウェア デバイス上でのアプリの実行をご覧ください。
課題: セットアップが完了し、基本的な開発ワークフローを理解できたので、次のことを行います。
- Android Studio で新しいプロジェクトを作成します。
- 「Hello World」という挨拶を「Happy Birthday to 」に変更し、最近誕生日を迎えた人の名前を追加します。
- Android Studio をインストールするには、Android Studio にアクセスし、手順に沿ってダウンロードしてインストールします。
- [Project] ペインでアプリの Android 階層を表示するには、垂直タブ列の [Project] タブをクリックします。次に、上部のプルダウン メニューで [Android] を選択します。
- プロジェクトに新しい依存関係を追加したり、依存関係のバージョンを変更したりする必要がある場合は、
build.gradle(Module:app)
ファイルを編集します。 - アプリのすべてのコードとリソースは、
app
フォルダとres
フォルダにあります。java
フォルダには、Kotlin または Java のソースコード(またはその両方)のアクティビティ、テスト、その他のコンポーネントが含まれています。res
フォルダには、レイアウト、文字列、画像などのリソースが格納されています。 - Android アプリに機能、コンポーネント、権限を追加するには、
AndroidManifest.xml
ファイルを編集します。追加のアクティビティなど、すべてのアプリ コンポーネントはこの XML ファイルで宣言する必要があります。 - アプリを実行する Android 仮想デバイス(エミュレータ)を作成するには、AVD Manager を使用します。
- Android Studio を使用して実際の Android デバイスでアプリを実行するには、デバイスで USB デバッグを有効にします。これを行うには、[設定] > [デバイス情報] を開き、[ビルド番号] を 7 回タップします。次に、[設定] > [開発者向けオプション] を開き、[USB デバッグ] を選択します。
Udacity コース:
Android Studio のドキュメント:
- Android Studio のダウンロード ページ
- Android Studio リリースノート
- Android Studio の概要
- 仮想デバイスを作成して管理する
- アプリ マニフェストの概要
- ビルドを設定する
- 仮想デバイスを作成して管理する
その他:
このセクションでは、インストラクター主導のコースの一環として、この Codelab に取り組んでいる生徒向けに考えられる宿題をいくつか示します。インストラクターは、以下のようなことを行えます。
- 必要に応じて宿題を与える
- 宿題の提出方法を生徒に伝える
- 宿題を採点する
インストラクターは、これらの提案を必要なだけ使用し、必要に応じて他の宿題も自由に与えることができます。
この Codelab に独力で取り組む場合は、これらの宿題を自由に使用して知識をテストしてください。
アプリをビルドして実行する
- 空のテンプレートから新しい Android プロジェクトを作成します。
res/strings.xml
ファイルを開きます。app_name
文字列の値を「My Dice Roller」に変更します。この名前はタイトルバーに表示されます。- 任意のバージョンの Android をターゲットとするデバイスのエミュレータを作成し、アプリを実行します。アプリのタイトルがどのように変化したかを確認します。
以下の質問に回答してください
問題 1
メイン アクティビティのレイアウト ファイルの名前は何ですか?
MainActivity.java
AndroidManifest.xml
activity_main.xml
build.gradle
問題 2
アプリの名前を指定する文字列リソースの名前は何ですか?
app_name
xmlns:app
android:name
applicationId
問題 3
新しいエミュレータを作成するには、どのツールを使用しますか?
- Android Device Monitor
- AVD Manager
- SDK Manager
- テーマエディタ
採点のためアプリを送信する
アプリに以下の機能があることを確認します。
- 画面に「Hello World」と表示する
Activity
。 - 「My Dice Roller」と表示されたタイトルバー。
次のレッスンに進む:
このコースの他の Codelab へのリンクについては、Android Kotlin の基礎の Codelab のランディング ページをご覧ください。