正式採用の「Kotlin」で挑戦! 初めてのAndroidアプリ開発 ~ストップウォッチを作ってみよう~

Kotlin入門者に向け、手を動かして学べるテキストをお届けします。Kotlinは、2011年7月に登場したモダンなプログラミング言語ですが、Androidアプリの開発言語として、Google I/O 2017で正式採用され、一挙に浸透してきました。本稿では、Kotlinの特徴を紹介し、簡単なAndroidアプリとしてストップウォッチを作ってみます。

正式採用の「Kotlin」で挑戦! 初めてのAndroidアプリ開発 ~ストップウォッチを作ってみよう~

アプリエンジニアの池田惇です。Google I/O 2017で、Androidの開発言語としてKotilnが正式に採用されました。少し前から業務でもKotlinを採用していたのでとても嬉しいです!

1Android Developers Blog: Android Announces Support for Kotlin2

Kotlinは、2011年7月に登場したモダンな言語です。モダンな言語を開発に使用すると、得られる知識の質が上がります。これからAndroidアプリ開発を始める方は、Kotlinを採用するのが良いでしょう。

本稿では、Kotlinの特徴を紹介し、簡単なAndroidアプリとしてストップウォッチを作ってみます。開発環境の構築から行いますので、Androidアプリ開発の経験がない方も手を動かしながら挑戦してみてください。

Kotlinの特徴

Kotlinは、JetBrainsが開発したプログラミング言語です。

3Kotlin Programming Language45

  • 行末のセミコロンが不要
  • 静的型付け
  • 型記述が省略可能(型推論)
  • JVM(Java Virtual Machine、Java仮想マシン)上で動作する
  • Javaコードと相互運用ができるため、Javaからの移行が容易

といった特徴があり、Javaよりも簡潔に記述できます。今後はAndroidアプリに限らず、サーバサイドのJavaも置き換えていくかもしれません。

開発に役立つ特徴をさらにいくつか紹介します。

valとvar

変数の定義には、valvarの2つを使い分けます。valは再代入ができず、varは再代入可能です。

val a: String = "foo"
a = "bar" // エラーになる
var b: String = "foo"
b = "bar" // エラーにならない

見通しの良いコードを書くには、可能な限りvalを使い、必要な場合のみvarを使うのが良いでしょう。

nullable

nullを代入できる変数とできない変数は、別の型として区別されます。例えば、String型であれば最後に?をつけてString?型として宣言しない限り、nullを代入することはできません。

val a: String = null // エラーになる
val b: String? = null // エラーにならない

このように、意図しないnullの代入はコンパイル時にエラーとなるため、NullPointerExceptionを防ぐ効果があります。

値を返すif式

Kotlinのifはif文としてだけでなくif式としても使えます。つまり、値を返すことができます。

下記の例のように、簡潔に書ける場面が多くて便利です。

// Javaだとこうなる
String a;
if(b) {
  a = "foo";
} else {
  a = "bar";
}
// Kotlinならこのように書ける
val a = if(b) "foo" else "bar"

名前付き引数、デフォルト引数

Kotlinでは、引数に名前をつけたり、デフォルト値を与えることができます。このため、オーバーロード(多重定義、引数や戻り値が異なる同一名称のメソッドを複数定義すること)を使わずに済みます。

// middleNameにはデフォルト値を設定
fun fullName(firstName: String, middleName: String = "", lastName: String)

// 必要な引数のみ指定して渡すことができる
val name = fullName(firstName = "Jun", lastName = "Ikeda")

開発環境を整えよう

この記事の執筆に使用した環境は、macOS Sierra 10.12.5、Android Studio 3.0 canary 3です。

ダウンロードとインストール

Androidアプリの開発環境「Android Studio」は、3.0から正式にKotlinに対応しています。

6Android Studio と SDK ツールをダウンロードする | Android Studio7

本稿執筆時点で3.0はまだプレビューバージョンでした。Kotlinのプレビュー版は、専用のページからダウンロードできます。

ダウンロードしたZIPファイルを解凍してインストールしましょう。

Android Studioを起動すると、ウィザードが開始されるので、SDKのダウンロードなど初期設定を進めます。少し時間がかかるので、気長に待ちましょう。既に別バージョンのAndroid Studioをインストールしてあれば、設定を引き継ぐこともできます。

ウィザードを開始

初期設定が終わると、次のようなウィンドウが表示されます。[Start a new Android Studio project]を選択します。

8
プロジェクト名など

選択すると、ウィザードが現れます。

9

[Application name]はプロジェクト名、[Company domain]はパッケージの階層を示します。他のアプリとの重複を防ぐため、ストアに公開する場合は、自前のドメインを入力してください。

Kotlinで開発しますので、[include Kotlin support]をチェックします。

対象のプラットフォーム

次に、対象のプラットフォームを設定します。

10

スマートフォン用のアプリを開発するときは、[Phone and Tablet]のみ選択します。[Minimum SDK]で、対象とする下限のOSバージョンを選択しましょう。今回は、安定性が高く開発しやすい環境としてOS 5.0以上を対象とし、API 21を選びます。

コンポーネント

Androidの画面は、Activityというコンポーネントで構成されます(実際のアプリでは、FragmentやViewと組み合わせて画面を構成します)

11

今回は、[Empty Activity]を選択します。

次画面のActivity名設定は、デフォルトの「MainActivity」のままでOKです。

ここまででプロジェクトの作成は完了です。

ビルドしてみると

ビルドすると、以下のようなエラーが出るかもしれません。

12

この場合は必要なSDKが不足しているので、[Install missing platform(s) and sync project]をクリックし、表示された内容にしたがってインストールしましょう。

エミュレーターの準備

上部のツールバーからAVD Managerを起動します。

13

[Create Virtual Device]を選択して、新しくエミュレーターを作成します。

14

今回は[Phone]の[Nexus 5X]を準備します。[System Image]の選択により、OSが決まります。ここではAndroid 7.0 Nougatにします。

アプリを実行する

上部のツールバーからアプリを実行します。

15

先程作成したエミュレーターを選択しましょう。

16

アプリが起動できました。

17

以上で、開発環境の構築は完了です。

ストップウォッチアプリを作ってみよう

エンジニアHubに会員登録すると
続きをお読みいただけます(無料)。
登録のメリット
  • すべての過去記事を読める
  • 過去のウェビナー動画を
    視聴できる
  • 企業やエージェントから
    スカウトが届く