Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

559 views

Published on

2017/06/10
Google I/O 2017 報告会 四国会場 LT
Sansan株式会社 辰濱健一

Published in: Software
  • Login to see the comments

  • Be the first to like this

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

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

×