【モバイルアプリ2026 #9】Kotlinとは

💡
この章で話すこと
  • Kotlinの特徴
  • Kotinの基本的な記法

概要

「Kotlin」とはプログラミング言語であり、Androidアプリ・サーバサイドの開発などに用いられています。

JetBrainsを中心にオープンソースで開発されており、2017年にはGoogleによりAndroid開発の公式言語として採用されました。

採用事例

  • Google
    • Android公式言語として採用
    • 2019年に「Kotlin-first」を宣言
  • Netflix
    • Androidアプリ開発
    • バックエンドアーキテクチャの構築に活用
  • マイ ニフティ
    • Kotlin + Jetpack Composeで実装

Kotlinの特徴

  • 静的型付け(型推論もある)
  • NULL安全
  • JVM, Nativeなど複数の動作環境
  • Coroutinesなどの非同期処理
  • オブジェクト指向
  • 関数型

よく使う文法

基本文法

  • 関数
  • 変数(val, var)
  • クラス
  • コメント
valとvarの違いは?

valは再代入不可ですが、varは再代入が可能です。

val x: Int = 5
x += 1 // エラー: Val cannot be reassigned

var count: Int = 5
count += 1 // count = 6

制御系

  • if文、if式
  • when文、when式
  • for文
  • while文
  • do-while文
  • break・continue

データクラス

  • データを保持するためのクラスで、定型的なメソッドが自動生成される
    • equals() / hashCode() : 同等比較
    • toString() : "User(name=John, age=42)" 形式
    • componentN() : 分解宣言に使用
    • copy() : 一部のプロパティを変えたコピーを生成

Null

  • safe call (?.)
    コード例
    val a: String? = "Kotlin"
    val b: String? = null
    
    // safe call: nullでなければ length を返す。nullなら null を返す
    println(a?.length) // 6
    println(b?.length) // null
  • elvis (?:) // エルビス
    コード例
    val b: String? = null
    
    // 左辺がnullでなければその値を、nullなら右辺の値を返す
    val l = b?.length ?: 0
    println(l) // 0

コレクション

  • List, Mutable List
    コード例
    val numbers = listOf("one", "two", "three", "four")
    println("${numbers.size}") // 4
    println("${numbers.get(2)}") // three
  • Set, Mutable Set
    コード例
    val numbers = setOf(1, 2, 3, 4)
    println(numbers.size)        // 4
    println(numbers.contains(1)) // true
    println(numbers.contains(5)) // false
  • Map, Mutable Map
    コード例
    val numbersMap = mapOf("key1" to 1, "key2" to 2, "key3" to 3)
    println(numbersMap.keys)    // [key1, key2, key3]
    println(numbersMap["key2"]) // 2
  • ArrayDeque
    コード例
    val deque = ArrayDeque(listOf(1, 2, 3))
    deque.addFirst(0)
    deque.addLast(4)
    println(deque) // [0, 1, 2, 3, 4]
Mutable[ミュータブル]とは?

読み取り専用(read-only)と変更可能(mutable)の2種類があります。
listOf(), setOf(), mapOf()みたいな読み取り専用は要素の追加・削除・変更ができません。

Kotlin Koans

Kotlin公式が提供している、段階的に問題を解いていく形式のサイトです。
ブラウザですぐに解けるので、Kotlinについてもっと詳しく知りたい方はチャレンジしてみてください!