.net column
.NET開発者のためのブログメディア

kotlin入門!kotlinのメリットや実行方法をご紹介!

2020年08月20日


SE
kotlinというプログラム言語について教えてください。
PM
主にAndroid開発に使われるプログラム言語のことです。

kotlinとは?

kotlinとは、Android開発に使われるプログラミング言語で、「コトリン」と読みます。JavaやC#を使ったことのある方には、なじみのある静的型付けのオブジェクト指向言語であるため、それらの記述経験がある方は楽に習得できます。

Javaの後継として開発された言語で、Java VMという仮想マシン上で動作するため、これまでに作ったJavaのクラスなどをそのまま流用でき、そのうえでJavaより新しい文法を用いることができる優れた言語です。

kotlinを利用するメリット

この項目では、kotlinを利用するメリットや、kotlinを使用してできることやメリットを、類似した言語であるJavaなどと比較しつつ紹介します。

セミコロンが省略できる

C#やJava、そのもととなるCやC++でも行末にセミコロンは必須ですが、このkotlinはなくても大丈夫です。定型作業である行末のセミコロンがなくなることに最初は戸惑いますが、慣れると記述が楽になります。

クラスメソッドではない関数を定義できる

JavaやC#では、どんな関数もクラスに所属している必要があり、インスタンス生成の必要ない純関数でもわざわざstatic classの中にstatic関数を定義する形で実装しなければなりませんでした。

しかしkotlinの場合、CやC++のようにクラス内外を問わず関数を定義できるため、自由度が高いといえます。

nullable/non-null変数宣言

後で詳しく取り上げますが、例えばC#やJavaに存在する文字列を示すstring型の変数は、kotlinではStringString?の2種が存在しています。

?がついていればnullを許容するnullalbe変数、ついていなければnullを代入できず必ず中には文字列が入っていることが保証されるnon-null変数となります。

これにより、以下のようなnullチェックを随所で省略できるようになります。(例はC#で記述しています)

using System;
using System.ComponentModel.DataAnnotations;

public class Human // Humanクラスを定義
{
public void SayHello() // SayHello関数を定義
{
Console.WriteLine("Hello!");
}
}

public class Program
{
static void Main()
{
Human human = null; // Human型のhumanを定義(インスタンスを代入しない)
if (human != null)
human.SayHello(); // インスタンスから関数を呼び出す
}
}

この例ではHuman型の変数にnullを代入していて、このようにnullが代入されている可能性がある場合はメソッドにアクセスする前にnullチェックをする必要性が出てきます。しかしKotlinでは、以下のように記述できます。

// Humanクラスの定義
class Human(){
fun sayHello(){
println("Hello!")
}
}

//main関数 関数定義はfunを使う
fun main(args:Array) {
// Error : Null can not be a value of a non-null type Human
// var human : Human = null

// human変数にHumanクラスのインスタンスを格納
val human : Human = Human()
human.sayHello()
}

ここではHuman型の変数にnullを代入しようとしています。その結果、プログラムのコンパイル時にエラーとして弾かれています。

このようにnon-null変数のnull代入はコンパイル時から禁止されているため、nullチェックをしなくても安全に関数を実行できます。

var, val型変数

先ほどのプログラムにも出現していましたが、定数にconstなどの修飾子を付ける必要はありません。kotlinではvalは定数、varは可変数と決まっているため、あまり悩まずに定数や変数を使い分けできます。

kotlinの導入方法

この項では、kotlin入門に向けての導入方法を紹介します。導入方法には2種類あり、コンソールから実行する方法とAndroid StudioというAndroidアプリを製作するIDEから実行する方法です。

コンソールから実行する方法は、コードを少し書いて試すことには充分ですが本格的に大きいアプリ開発には向いていないため、ここではAndroid Studioの導入を説明します。環境はWindows 10 Homeです。

コンソールからの実行方法については、以下のURLにある公式ドキュメントに書いてあるため、興味のある方は挑戦してみてください。

Android Studioのダウンロード

まずは、Android Studioのインストーラをダウンロードします。以下のURLにアクセスし、「DOWNLOAD ANDROID STUDIO」と書いてあるボタンをクリックしましょう。
ボタンを押すと利用契約が表示されるので、同意してダウンロードしてください。

Android Studioのインストール

次にインストーラを用いてAndriod Stuioをインストールしていきます。起動したら、「Install Locations」の画面が表示されるまでは「Next >」や「I Agree」をクリックして進めていって構いません。

「Install Locations」は、Android Studioとsdkのインストール場所の指定画面です。Android Studio自体が3GB、SDKに至っては開発が進行すると15GBやそれ以上の容量になるため、Cドライブ以外の場所に置くことを検討してみてください。

以降は「Finish」をクリックするまで進めていって大丈夫です。「Finish」をクリックするとAndroid Studioが起動します。

Andriod Studioの初期の設定

次に初期設定画面が表示されます。しかし、ここでは特に変更すべき箇所はないため、基本的に決定ボタンを押すだけで大丈夫です。「Select UI Theme」でダークモードにするかを選べるので、好きな方を選びましょう。

プロジェクトの作成

いよいよkotlin入門のため実行環境を整えましょう。プロジェクトを作成することで、その中でkotlinのデバックやアプリ作成ができるようになります。「Start a new Android Studio Project」をクリックしてください。

次に「Empty Activity」を選択し、プロジェクトの名前や保存ディレクトリを決定したら「Finish」をクリックして作成できます。以下のソースコードが表示されれば完了です(バージョンによって多少の差異があるかもしれません)。

package com.example.testkotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}

package com.example.testkotlinとなっているところは各自が決めたプロジェクト名によって変わるため、少し違っても問題ありません。

プロジェクトのコンパイル・実行

プロジェクトをコンパイルし、実行してみましょう。まず画面右上から左方向に連なっているアイコン郡の一番左側にある、緑色のカナヅチマークをクリックします。Buildが行われ、以下のように表示されれば成功です。

BUILD SUCCESSFUL in 1s
24 actionable tasks: 24 executed

こちらの数字は人によって多少の違いがあります。これが終わったら、先ほどのカナヅチマークの二つ右にある緑色の再生ボタンをクリックします。Androidの機器の画面が表示され、「Hello, World!」と出ていたら成功です。

ソースコードを書き換えてみよう

では、入門編として先ほど生成されたファイルを書き換え、自分のしたい処理を実際に記述してみましょう。ここでは、「ボタンを押すとテキストが変更される」ことを目標に記述をしていきます。

ボタンを描画する

Android Studioでは、アプリのデザインやレイアウトはxmlファイルに、内側でどのような処理をするかをkotlinやjavaのファイルで記述していきます。まずはxmlファイルを編集してボタンを追加しましょう。

上側のタブからactivity_main.xmlを選択し、「Pallete」の中にある「Button」を画面にドラック&ドロップして持っていきます。このままでは位置が定まらないため、ボタンの上の青丸からテキストの下側へ、ボタンの下の青丸から画面下へ線をつないでおきましょう。

クリックを検知する

では、kotlinファイルを書き換えてボタンのクリックに対してテキストを変更する処理を実装しましょう。以下のようにMainActivity.ktを書き換えてください。

package com.example.testkotlin

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.* // 追加

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

button.setOnClickListener{ v-> // 追加
textView.text = "Button Clicked." // 追加
} // 追加
}
}

この状態で実行すると、ボタンが押されたことを検知してテキストを変更します。

button.setOnClickListener関数でbuttonが押された時の処理を登録していて、そこでテキストを変更しています。

import kotlinx.android.synthetic.main.activity_main.*の部分は、先ほどactivity_mainで設定したボタンやテキストをbuttontextViewとして読み込むためにしています。

SE
関数の定義もできて、簡潔なのでAndroid開発が楽にできるなんて便利ですね。

PM
簡潔ですが堅牢なコードです。ぜひ実際書いてみてより理解を深めてください。

kotlinを使ってAndroid開発をしよう!

この記事では、kotlinの入門編として、入門するためにkotlinを使用するメリットをC#やJavaと比較し、またAndroid Studioでの入門のための導入方法、そして入門用プログラムを紹介しました。

Kotlinを知ると、Javaと比べ非常に簡潔かつ堅牢なコードが書けるようになり、Android開発が楽になります。ぜひkotlinをマスターしましょう。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags