【環境構築編】 2022年だしそろそろAndroidアプリ開発を始めてみる (1/4)

この記事は、Android開発の難しい部分を端折ったゆる〜いチュートリアル記事です。
この記事でAndroid開発に興味を持ってもらえたら泣いて喜びます。
この記事はPart1です。Part1では、Androidアプリを開発するための環境構築をします。

## 対象者

この記事は「Androidアプリ作りたいけど難しそうだな〜」と感じている人向けです。
多少のプログラミング経験と、JavaやKotlinをある程度理解していると進めやすいと思います。

## ゴール

この記事では、MediaWiki APIを使用して、Wikipediaの記事一覧を表示するアプリを作成します。

この記事で作成するアプリのコードはGitHubで公開しています。
https://github.com/tkhskt/WikiClient

> 記事内で登場するコードではimport文などは記載していないので、各ファイルのimport文はGitHubに公開しているサンプルを参考にしてください。

実装する機能はざっくりこんな感じです。シンプルですね。

- 記事のリスト表示
- 記事の検索

技術的なポイントは

- Web APIからのデータ取得
- リスト表示
- 画像読み込み
- 画面遷移

あたりですかね〜

## 注意

この記事では、**Androidアプリのライフサイクル**や**Fragment**、**DI**、**アーキテクチャ**などの超絶重要概念の説明をかなり端折っているので、今後もAndroid開発するぞ！という方は、**[Google公式の学習ページ](https://developer.android.com/courses/kotlin-android-fundamentals/overview?hl=ja)や市販の本などで基礎を学習した方が良いと思います。**

## 環境構築

まずは、Androidアプリを開発するために必要なソフトウェアをインストールしましょう。

### Android Studioのインストール

Androidアプリの開発は[Android Studio](https://developer.android.com/studio)で行います。Android StudioはGoogleが提供しているAndroid開発用のIDE(統合開発環境)です。
[ダウンロードページ](https://developer.android.com/studio)

#### 使用する言語について

Android開発は基本的にJavaか[Kotlin](https://kotlinlang.org/)というプログラミング言語で開発します。
この記事ではKotlinを使用します。

##### Kotlin

KotlinはJetBrainsという会社によって開発されているプログラミング言語で、2019年にはGoogleによってAndroidアプリ開発の[推奨言語に指定](https://techcrunch.com/2019/05/07/kotlin-is-now-googles-preferred-language-for-android-app-development/)されました。
Javaとの互換性があり、Javaよりもスッキリ書くことができるので、最近のAndroidアプリ開発ではKotlinが使用されることが多いです。
個人的には、これからAndroidアプリ開発を始める方はKotlinで開発するのがオススメです。
KotlinがわかってくればJavaもわかるようになる...はず（逆も然り）

## 何はともあれ作り始める

Android Studioのインストールが終わったら、早速アプリを作り始めましょう。

### プロジェクトの作成

Android Studioを起動し、↓のような画面が表示されたら「New Project」をクリックして新規プロジェクトを作成しますしょう。

![スクリーンショット 2022-03-28 0.34.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/63240cb1-d05e-0c42-2545-c61f237f2e2e.png)

「New Project」をクリックすると、↓のようにアプリのテンプレート選択画面が表示されます。
今回は「Empty Activity」を選択しましょう。

![スクリーンショット 2022-03-28 0.37.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/b42eec0c-137d-1971-92cc-ab34b15dcc55.png)

テンプレートを選択すると、プロジェクト名とパッケージ名の入力が求められます。適当な名前を入力しましょう。
ここは別に何でもいいんですが、今回は`Name(プロジェクト名)`を`WikiClient`に、`Package Name`は`com.example.wikiclient`にします。

![スクリーンショット 2022-03-28 0.46.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/913bd77f-daed-295f-2473-e71a78a5bf7d.png)

### Android Studioの使い方

#### パッケージ作成

パッケージを作成したいディレクトリを右クリックし、New→Packageでパッケージ(ディレクトリ)を作成できます

![スクリーンショット 2022-03-31 14.26.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/384a7698-071b-f8a8-f8cb-d1c3c471cc48.png)

#### ファイル作成

ファイルを作成したいディレクトリを右クリックし、Newから様々な種類のファイルを作成できます

![スクリーンショット 2022-03-31 14.27.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/d0b36bcd-76bb-8f76-94a9-8a9682def3f1.png)

#### ログの見方

Android Studioの下部にある、「Logcat」というタブを選択すると、接続中の端末のログを表示できます。

![スクリーンショット 2022-03-31 14.29.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/2059ea40-5d53-28a2-4d7a-f8e3a773d268.png)

ログにはVerbose、Debug、Errorなどのレベルが存在します。

とりあえず全てのログを表示したいときはVerboseを選択し、エラーだけを表示したい場合はErrorを選択するということだけ覚えておきましょう。

**アプリがうまく動かない！と思ったらLogcatに表示されているログでググりましょう。**
**アプリがうまく動かない！と思ったらLogcatに表示されているログでググりましょう。**
**アプリがうまく動かない！と思ったらLogcatに表示されているログでググりましょう。**

大事なことなので3回言いました。

### エミュレータ/開発端末の設定

開発中のAndroidアプリの動作確認は、PC上で動作するAndroidのエミューレータ(仮装デバイス)か、お手持ちのAndroid端末で行います。
それぞれの設定方法を記載するので、お好きな方を実践してみてしてください。

#### エミュレータを利用する場合の設定

Android Studioの右上に表示されている`Device Manager`をクリックし、表示されたDevice Manager上にある`Create Device`をクリックします。

![68747470733a2f2f692e696d6775722e636f6d2f323036414e36452e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/61a694c1-544f-9824-5b1c-ccce7beed5b0.png)

そうすると、端末の選択画面が表示されるので、任意の端末を選択し、`Next`をクリックします。
今回はPixel 5にします。

![スクリーンショット 2022-03-28 1.08.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/b5197f28-d86b-fe84-d33c-a35196a937cc.png)

次に、エミュレータで利用するAndroidのバージョンを選択する画面が表示されるので、任意のバージョンを選択します。
今回はS(Android 12)にします。選択できないよ〜という場合は、`Download`をクリックしてから、再度バージョンを選択します。

![スクリーンショット 2022-03-28 1.12.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/afd14a39-81ff-2470-0e49-014877afc621.png)

次に、エミュレータの名前などを入力する画面が表示されますが、ここはひとまず何もせず`Finish`しちゃって大丈夫です。
ここまで終わると、Android Studioからエミュレータを利用できるようになります。やったぜ。

![スクリーンショット 2022-03-28 1.16.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/8b6ee4e0-815e-29cb-7c21-679b3785406e.png)

#### お手持ちの端末を利用する場合の設定

まず、端末の「設定」アプリから「デバイス情報」ページを開きます。
「デバイス情報」ページに表示されている「ビルド番号」を7回程連続タップすると、開発者向けオプションが有効になります。

![Screenshot_20220328-012434.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/fcddc5bb-5453-f684-9717-61d217225f1e.png)

次に、「設定」アプリのトップ→「システム」から「開発者向けオプション」ページに移動します。
「開発者向けオプション」ページを開いた後、「USBデバッグ」をONにします。

![Screenshot_20220328-192624.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/1f4de45d-a1b3-7d1e-babc-eea9efde31bc.png)

> Android 11以降では、Wi-Fiデバッグという便利機能が利用できるようになっているので、そちらを使っても大丈夫です。
> https://zenn.dev/ik11235/articles/android-wireless-debug

端末と開発用PCを接続し、Android Studioの上部に、接続した端末が表示されていれば準備完了です🎉

![スクリーンショット 2022-03-28 19.33.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/f62bd31d-0676-960c-044f-57367cbfcc94.png)

## 動かしてみる

ここまで出来たら、一旦アプリを動かしてみましょう。
端末の設定完了後、Android Studioの上部にある再生ボタンみたいなのをクリックします。

![スクリーンショット 2022-03-28 19.42.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/4879a95d-ab7b-0c05-5103-884c69e03a44.png)

そうすると、「Hello World!」と表示されたアプリが起動します。うおおおお

![Screenshot_20220328_194410.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155135/c7a26a92-821e-c9c9-2d8d-3005b9b0524d.png)

[次のパート](https://qiita.com/tkhskt/items/f354a7da6c6270107f62)からは、このアプリをガシガシ開発していきます。