45
Kotlin が公式サポートに なったので Kotlin の話 2017/06/10 Google I/O 2017 報告会 四国会場 LT Sansan株式会社 辰濱健一

Kotlin が公式サポートになったので Kotlin の話

  • Upload
    -

  • View
    373

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Kotlin が公式サポートになったので Kotlin の話

Kotlin が公式サポートになったので Kotlin の話

2017/06/10

Google I/O 2017 報告会 四国会場 LT

Sansan株式会社 辰濱健一

Page 2: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

自己紹介

1

Page 3: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

> 自己紹介

2

• 辰濱健一

• 徳島生まれ、奈良育ち、徳島県在住

• 2回転職するも、いずれも徳島県内勤務

• Sansan株式会社所属

• 古民家を改修した神山ラボ勤務

• 名刺アプリ Eight Android 版の開発 を Kotlin で!

• リモートワーク

Page 4: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

> 自己紹介

3

• 辰濱健一

• 徳島生まれ、奈良育ち、徳島県在住

• 2回転職するも、いずれも徳島県内勤務

• Sansan株式会社所属

• 古民家を改修した神山ラボ勤務

• 名刺アプリ Eight Android 版の開発 を Kotlin で!

• リモートワーク

Page 5: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

> Sansan神山ラボ

4

Page 6: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

> 趣味

5

• 楽器演奏(エレクトーン・トランペット)

• 徳島県内のイベントで、ちらほら演奏する機会を頂い

てます

Page 7: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved. 6

本題へ…

Page 8: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin を Android アプリ開発言語に選定!

7

Page 9: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved. 8

ということで

Page 10: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved. 9

ざっと

Kotlin のおさらい(&実務で使ったアドバイス)

※Eight では、2015/8 から Kotlin を導入しています

Page 11: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

10

• JetBrains 社が作っている

• IDE サポートも充実

Page 12: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

11

• JetBrains 社が作っている

• IDE サポートも充実

• JVM 上でも動作する言語

Page 13: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

12

• JetBrains 社が作っている

• IDE サポートも充実

• JVM 上でも動作する言語

• Java コードと相互運用可能

Page 14: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

13

• JetBrains 社が作っている

• IDE サポートも充実

• JVM 上でも動作する言語

• Java コードと相互運用可能

• Java → Kotlin の参照 OK

Page 15: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

14

• JetBrains 社が作っている

• IDE サポートも充実

• JVM 上でも動作する言語

• Java コードと相互運用可能

• Java → Kotlin の参照 OK

• Kotlin → Java の参照 OK

Page 16: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

15

• JetBrains 社が作っている

• IDE サポートも充実

• JVM 上でも動作する言語

• Java コードと相互運用可能

• Java → Kotlin の参照 OK

• Kotlin → Java の参照 OK

• → 既存プロジェクトに一部分から導入可能

Page 17: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

16

• JetBrains 社が作っている

• IDE サポートも充実

• JVM 上でも動作する言語

• Java コードと相互運用可能

• Java → Kotlin の参照 OK

• Kotlin → Java の参照 OK

• → 既存プロジェクトに一部分から導入可能

• ライブラリが軽量

Page 18: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin について

17

• JetBrains 社が作っている

• IDE サポートも充実

• JVM 上でも動作する言語

• Java コードと相互運用可能

• Java → Kotlin の参照 OK

• Kotlin → Java の参照 OK

• → 既存プロジェクトに一部分から導入可能

• ライブラリが軽量

• Java よりも少ない記述量で実現できる

Page 19: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin の代表的な言語的特徴

18

• Null 安全

• 型の省略

• ラムダ式

• data class

• 拡張関数

Page 20: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin の代表的な言語的特徴

19

• Null 安全

• 型の省略

• ラムダ式

• data class

• 拡張関数

Page 21: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

20

• 型で 「null 不許容型」「null 許容型」が分かれる

• Java の String は null 許容型

• → 「 null でない」という状態が型ではわからない

Page 22: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

21

• 型で 「null 不許容型」「null 許容型」が分かれる

• Java の String は null 許容型

• → 「 null でない」という状態が型ではわからない Java

Page 23: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

22

• 型で 「null 不許容型」「null 許容型」が分かれる

• Java の String は null 許容型

• → 「 null でない」という状態が型ではわからない

• 例)String の場合

• null 不許容型:String

• null 許容型:String?

Java

Page 24: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

23

・null が来ないことが確実であれば…Java

Page 25: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

24

・null が来ないことが確実であれば…Java

Kotlin

Page 26: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

25

• 型で null を許容するか否かを表現できる

Page 27: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

26

• 型で null を許容するか否かを表現できる

• NullPointerException がなくなるわけではない!

Page 28: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

27

• 型で null を許容するか否かを表現できる

• NullPointerException がなくなるわけではない!

• 例)Kotlin の関数を Java から呼び出す

• Kotlin の定義が non-null でも、Java から null を渡すこと

ができてしまう…

Page 29: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Null 安全

28

• 型で null を許容するか否かを表現できる

• NullPointerException がなくなるわけではない!

• 例)Kotlin の関数を Java から呼び出す

• Kotlin の定義が non-null でも、Java から null を渡すこと

ができてしまう…

• → support annotation を付けておこう。

Java でも IDE が認識して、null チェックの必要性を判断してくれます

Java

Page 30: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin の代表的な言語的特徴

29

• Null 安全

• 型の省略

• ラムダ式

• data class

• 拡張関数

Page 31: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

型の省略

30

Java

Page 32: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

型の省略

31

Java

Kotlin

Page 33: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

型の省略

32

Java

Kotlin

Kotlin

Page 34: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

型の省略

33

Java

Kotlin

Kotlin

※型推論に時間が掛かるので、

型を書いた方が、コンパイルが速い

Page 35: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin の代表的な言語的特徴

34

• Null 安全

• 型の省略

• ラムダ式

• data class

• 拡張関数

Page 36: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

ラムダ式

35

• ラムダ式

• 関数の宣言なしに、関数オブジェクトを生成できる

Java

Page 37: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

ラムダ式

36

• ラムダ式

• 関数の宣言なしに、関数オブジェクトを生成できる

Java

Kotlin

Page 38: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin の代表的な言語的特徴

37

• Null 安全

• 型の省略

• ラムダ式

• data class

• 拡張関数

Page 39: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

data class

38

• モデルクラスでおなじみの関数を自動生成

• 各 getter, setter, equals, hashCode, …

Java

Page 40: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

data class

39

• モデルクラスでおなじみの関数を自動生成

• 各 getter, setter, equals, hashCode, …

Kotlin

Java

Page 41: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

Kotlin の代表的な言語的特徴

40

• Null 安全

• 型の省略

• ラムダ式

• data class

• 拡張関数

Page 42: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved.

拡張関数

41

他のクラスに関数を付け加えることができる

Kotlin

Page 43: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved. 42

他にも魅力的な

機能はたくさん!

Page 44: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved. 43

Let’s enjoy

Kotlin♪

Page 45: Kotlin が公式サポートになったので Kotlin の話

Copyright © 2014 Sansan, Inc. All rights reserved. 44

おわり。