Kotlin導入してみたかったけど結局間に合わなかった…

 Kotlin導入してみたかったけど結局間に合わなかった…

2017/06/22 MatchingAgent x Makuake 合同勉強会資料

3cde34e792643c5368dddf3ab3dd97a4?s=128

mukky620

June 22, 2017
Tweet

Transcript

  1. Kotlin導入してみた 2017/06/22 MatchingAgent x Makuake 合同勉強会 1 mukky620

  2. Kotlin導入してみた 2017/06/22 MatchingAgent x Makuake 合同勉強会 2 mukky620 かったけど結局間に合わなかった…

  3. • 向中野 亘 (むっきー) • Android Engineer • 3月にアメーバピグから異動 •

    Android歴1年と 3ヶ月 3 自己紹介
  4. 1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 4 本日の内容

  5. 1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 5 本日の内容

  6. 6 2014年7月…Android版タップル誕生リリー ス!

  7. 7 しかし、スピード感重視かつ 片手間でのリリースだった事もあり…

  8. 8 多くの負債が生まれてしまった… Android Annotations FatなActivity 増え続ける Color定義 大量のDialog Listviewでは ないリスト

    エラーハンドリング しきれてない 課金処理 viewholder もどき 非同期処理 辛い state管 理 も 辛 い アーキテクチャ など無い 自由な設計
  9. 9 多くの負債が生まれてしまった… FatなActivity 増え続ける Color定義 大量のDialog Listviewでは ないリスト エラーハンドリング しきれてない

    課金処理 アーキテクチャ など無い 自由な設計
  10. 1. アーキテクチャ改善 ◦ Architecture Component、DataBinding、Dagger2導入 ◦ CleanArchtectureを意識したMVVM 2. コンポーネント化 3.

    Kotlin導入 10 負債返済してスタンダード化を目指す
  11. 1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 11 本日の内容

  12. 12 Kotlinが正式にAndroid開発言語に!

  13. • Javaより言語仕様的に優れている(と思う) ◦ Null安全、ラムダ・高階関数…etc ◦ そもそもAndroid開発でJava8使えないの辛い… ◦ RxJavaとRetrolambdaで代替え嫌… • 習熟したら開発効率上がりそう

    • Kotlin経験者の強い推し 13 その他採用理由
  14. 1. Androidチームの現状の負債 2. JavaからKotlinに移行しようと思った理由 3. 移行するにあたってチーム内でした事 14 本日の内容

  15. 15 Kotlinは 自由度が高い言語

  16. 16 例えば、Nullableの場合 ← Nullチェック方式

  17. 17 例えば、Nullableの場合 ← 早期リターン(エルビ ス演算子)方式

  18. 18 例えば、Nullableの場合 ← Nullチェックかつ エルビス演算子方式

  19. 19 例えば、Nullableの場合 ← スコープ関数使用す る方式

  20. 20 例えば、Nullableの場合 色々な 書き方が ある!

  21. 21 チーム内で 共通の認識が必要

  22. • Kotlin移行したソースを経験者にPRしてもらう。 ◦ Javaっぽく書いてないか。 ◦ Kotlinっぽく書けているか。 22 Kotlin移行に伴う取り組み

  23. 23 kotlin-lover 経験者によるPRレビュー

  24. 24 kotlin-lover 経験者によるPRレビュー

  25. • 週1でKotlin勉強会を開催する。 ◦ Kotlin Koans(全42問)を何週かに分けて自習。 ◦ 当日に答え合わせ、かつ経験者からの補足と別解、プロダ クトで使用等々の解説をいただく。 25 Kotlin移行に伴う取り組み

  26. • Androidチーム以外のメンバーや、他チームのメンバーも興味 を持って参加してくれてモチベが高い。 ◦ 正直、講師の影響が強い。 26 勉強会の良かったところ • 自習でつまづいたところを直接聞ける事で理解が早い。 •

    別解やプロダクトでの事例等が参考になる。 • チーム内での言語共通認識を持てる。
  27. 27 まとめ

  28. 1. 負債は溜め込まない。出来るなら少しづつでも返済しよう。コ ンポーネント化は絶対やった方が良い! 2. 今からAndroid始めるなら絶対Kotlin。 3. チームでのKotlin開発は全員で認識を合わせておく。そして出 来れば1人でも経験者がいた方が良い! → モブプログラミングとかしてみても良いかも

    28 まとめ
  29. 29 ご静聴ありがとうございました!