Upload
-
View
373
Download
4
Embed Size (px)
Citation preview
Kotlin が公式サポートになったので Kotlin の話
2017/06/10
Google I/O 2017 報告会 四国会場 LT
Sansan株式会社 辰濱健一
Copyright © 2014 Sansan, Inc. All rights reserved.
自己紹介
1
Copyright © 2014 Sansan, Inc. All rights reserved.
> 自己紹介
2
• 辰濱健一
• 徳島生まれ、奈良育ち、徳島県在住
• 2回転職するも、いずれも徳島県内勤務
• Sansan株式会社所属
• 古民家を改修した神山ラボ勤務
• 名刺アプリ Eight Android 版の開発 を Kotlin で!
• リモートワーク
Copyright © 2014 Sansan, Inc. All rights reserved.
> 自己紹介
3
• 辰濱健一
• 徳島生まれ、奈良育ち、徳島県在住
• 2回転職するも、いずれも徳島県内勤務
• Sansan株式会社所属
• 古民家を改修した神山ラボ勤務
• 名刺アプリ Eight Android 版の開発 を Kotlin で!
• リモートワーク
Copyright © 2014 Sansan, Inc. All rights reserved.
> Sansan神山ラボ
4
Copyright © 2014 Sansan, Inc. All rights reserved.
> 趣味
5
• 楽器演奏(エレクトーン・トランペット)
• 徳島県内のイベントで、ちらほら演奏する機会を頂い
てます
Copyright © 2014 Sansan, Inc. All rights reserved. 6
本題へ…
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin を Android アプリ開発言語に選定!
7
Copyright © 2014 Sansan, Inc. All rights reserved. 8
ということで
Copyright © 2014 Sansan, Inc. All rights reserved. 9
ざっと
Kotlin のおさらい(&実務で使ったアドバイス)
※Eight では、2015/8 から Kotlin を導入しています
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
10
• JetBrains 社が作っている
• IDE サポートも充実
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
11
• JetBrains 社が作っている
• IDE サポートも充実
• JVM 上でも動作する言語
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
12
• JetBrains 社が作っている
• IDE サポートも充実
• JVM 上でも動作する言語
• Java コードと相互運用可能
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
13
• JetBrains 社が作っている
• IDE サポートも充実
• JVM 上でも動作する言語
• Java コードと相互運用可能
• Java → Kotlin の参照 OK
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
14
• JetBrains 社が作っている
• IDE サポートも充実
• JVM 上でも動作する言語
• Java コードと相互運用可能
• Java → Kotlin の参照 OK
• Kotlin → Java の参照 OK
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
15
• JetBrains 社が作っている
• IDE サポートも充実
• JVM 上でも動作する言語
• Java コードと相互運用可能
• Java → Kotlin の参照 OK
• Kotlin → Java の参照 OK
• → 既存プロジェクトに一部分から導入可能
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
16
• JetBrains 社が作っている
• IDE サポートも充実
• JVM 上でも動作する言語
• Java コードと相互運用可能
• Java → Kotlin の参照 OK
• Kotlin → Java の参照 OK
• → 既存プロジェクトに一部分から導入可能
• ライブラリが軽量
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin について
17
• JetBrains 社が作っている
• IDE サポートも充実
• JVM 上でも動作する言語
• Java コードと相互運用可能
• Java → Kotlin の参照 OK
• Kotlin → Java の参照 OK
• → 既存プロジェクトに一部分から導入可能
• ライブラリが軽量
• Java よりも少ない記述量で実現できる
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin の代表的な言語的特徴
18
• Null 安全
• 型の省略
• ラムダ式
• data class
• 拡張関数
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin の代表的な言語的特徴
19
• Null 安全
• 型の省略
• ラムダ式
• data class
• 拡張関数
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
20
• 型で 「null 不許容型」「null 許容型」が分かれる
• Java の String は null 許容型
• → 「 null でない」という状態が型ではわからない
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
21
• 型で 「null 不許容型」「null 許容型」が分かれる
• Java の String は null 許容型
• → 「 null でない」という状態が型ではわからない Java
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
22
• 型で 「null 不許容型」「null 許容型」が分かれる
• Java の String は null 許容型
• → 「 null でない」という状態が型ではわからない
• 例)String の場合
• null 不許容型:String
• null 許容型:String?
Java
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
23
・null が来ないことが確実であれば…Java
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
24
・null が来ないことが確実であれば…Java
Kotlin
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
25
• 型で null を許容するか否かを表現できる
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
26
• 型で null を許容するか否かを表現できる
• NullPointerException がなくなるわけではない!
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
27
• 型で null を許容するか否かを表現できる
• NullPointerException がなくなるわけではない!
• 例)Kotlin の関数を Java から呼び出す
• Kotlin の定義が non-null でも、Java から null を渡すこと
ができてしまう…
Copyright © 2014 Sansan, Inc. All rights reserved.
Null 安全
28
• 型で null を許容するか否かを表現できる
• NullPointerException がなくなるわけではない!
• 例)Kotlin の関数を Java から呼び出す
• Kotlin の定義が non-null でも、Java から null を渡すこと
ができてしまう…
• → support annotation を付けておこう。
Java でも IDE が認識して、null チェックの必要性を判断してくれます
Java
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin の代表的な言語的特徴
29
• Null 安全
• 型の省略
• ラムダ式
• data class
• 拡張関数
Copyright © 2014 Sansan, Inc. All rights reserved.
型の省略
30
Java
Copyright © 2014 Sansan, Inc. All rights reserved.
型の省略
31
Java
Kotlin
Copyright © 2014 Sansan, Inc. All rights reserved.
型の省略
32
Java
Kotlin
Kotlin
Copyright © 2014 Sansan, Inc. All rights reserved.
型の省略
33
Java
Kotlin
Kotlin
※型推論に時間が掛かるので、
型を書いた方が、コンパイルが速い
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin の代表的な言語的特徴
34
• Null 安全
• 型の省略
• ラムダ式
• data class
• 拡張関数
Copyright © 2014 Sansan, Inc. All rights reserved.
ラムダ式
35
• ラムダ式
• 関数の宣言なしに、関数オブジェクトを生成できる
Java
Copyright © 2014 Sansan, Inc. All rights reserved.
ラムダ式
36
• ラムダ式
• 関数の宣言なしに、関数オブジェクトを生成できる
Java
Kotlin
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin の代表的な言語的特徴
37
• Null 安全
• 型の省略
• ラムダ式
• data class
• 拡張関数
Copyright © 2014 Sansan, Inc. All rights reserved.
data class
38
• モデルクラスでおなじみの関数を自動生成
• 各 getter, setter, equals, hashCode, …
Java
Copyright © 2014 Sansan, Inc. All rights reserved.
data class
39
• モデルクラスでおなじみの関数を自動生成
• 各 getter, setter, equals, hashCode, …
Kotlin
Java
Copyright © 2014 Sansan, Inc. All rights reserved.
Kotlin の代表的な言語的特徴
40
• Null 安全
• 型の省略
• ラムダ式
• data class
• 拡張関数
Copyright © 2014 Sansan, Inc. All rights reserved.
拡張関数
41
他のクラスに関数を付け加えることができる
Kotlin
Copyright © 2014 Sansan, Inc. All rights reserved. 42
他にも魅力的な
機能はたくさん!
Copyright © 2014 Sansan, Inc. All rights reserved. 43
Let’s enjoy
Kotlin♪
Copyright © 2014 Sansan, Inc. All rights reserved. 44
おわり。