Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

● 向中野 亘 (むっきー) ● Android Engineer ● 3月にアメーバピグから異動 ● Android歴1年と 3ヶ月 3 自己紹介

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

1. アーキテクチャ改善 ○ Architecture Component、DataBinding、Dagger2導入 ○ CleanArchtectureを意識したMVVM 2. コンポーネント化 3. Kotlin導入 10 負債返済してスタンダード化を目指す

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

● Javaより言語仕様的に優れている(と思う) ○ Null安全、ラムダ・高階関数…etc ○ そもそもAndroid開発でJava8使えないの辛い… ○ RxJavaとRetrolambdaで代替え嫌… ● 習熟したら開発効率上がりそう ● Kotlin経験者の強い推し 13 その他採用理由

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 Kotlinは 自由度が高い言語

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

● Androidチーム以外のメンバーや、他チームのメンバーも興味 を持って参加してくれてモチベが高い。 ○ 正直、講師の影響が強い。 26 勉強会の良かったところ ● 自習でつまづいたところを直接聞ける事で理解が早い。 ● 別解やプロダクトでの事例等が参考になる。 ● チーム内での言語共通認識を持てる。

Slide 27

Slide 27 text

27 まとめ

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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