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

- システム
エンジニア - kotlinというプログラム言語について教えてください。
- プロジェクト
マネージャー - 主に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ではString
とString?
の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で設定したボタンやテキストをbutton
やtextView
として読み込むためにしています。
- システム
エンジニア - 関数の定義もできて、簡潔なのでAndroid開発が楽にできるなんて便利ですね。
- プロジェクト
マネージャー - 簡潔ですが堅牢なコードです。ぜひ実際書いてみてより理解を深めてください。
kotlinを使ってAndroid開発をしよう!
この記事では、kotlinの入門編として、入門するためにkotlinを使用するメリットをC#やJavaと比較し、またAndroid Studioでの入門のための導入方法、そして入門用プログラムを紹介しました。
Kotlinを知ると、Javaと比べ非常に簡潔かつ堅牢なコードが書けるようになり、Android開発が楽になります。ぜひkotlinをマスターしましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。


新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)