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使って
Qiitaクライアント
作った時の話
∼Kotlin + Modern Libraries∼
2015/5/13 potatotips#17
Profile
name
釘宮 愼之介 / @kgmyshin
features
• Androidエンジニア
• なぜか初対面の人に「くぎゅ」って呼ばれる
• 最近転職しました
Kotlin
盛り上がって
きてますよね
今日はKotlinを使って
実際にアプリを
作ってモダンなライブラリを
入れた時の
(ハマりまくった)
話をします
• LeakCanary
• EventBus
• KotterKnife
• Retrofit
• Dagger2
Kotlin meets Libraries
LeakCanary
LeakCanary
https://github.com/square/leakcanary
5/8に出たsquareの
メモリリークの
ライブラリ
importするだけ。
LeakCanary - 使い方
普通に使えます。
便利ですね!これ!
LeakCanary - 使い方
EventBus
greenrobotのEvent Bus
EventBus
https://github.com/greenrobot/EventBus
javaの時と全く同じ。
問題なし。
EventBus - 使い方
javaの時と全く同じ。
監視する人がregister, unregisterする。
EventBus - 使い方
Eventをpostする
EventBus - 使い方
監視者で処理する。
KotterKnife
Jake先生作
ButterKnifeのKotlin版
KotterKnife
https://github.com/JakeWharton/kotterknife
ほぼほぼButterKnfieと
同じように使えます。
KotterKnife - 使い方
KotterKnife - 使い方
Xmlに書いて
宣言時に by bindViewするだけ
ButterKnfieのように
bind(inject)メソッドで
明示的にinjectしない。
injectをするのはそのfieldに
アクセスした時。
KotterKnife - 使い方
fragment使用時は注意。
KotterKnife - 注意点
onCreateViewではまだViewが
Activityに結びついてないので
これはぬるぽになる
リスナーつけたりの処理は
onActivityCreatedとかですると良い。
KotterKnife - 注意点
Retrofit
Retrofit - 使い方
通常どおり使えます。
Retrofit - 使い方
Clientを作って
Retrofit - 使い方
interface(trait)を作って
Retrofit - 使い方
entityを作ります。
Primary Constructorにも
Annotation使えました。
Retrofit - 使い方
dataクラスにすると便利です。
toStringとか、equalsとかを
自動生成してくれます。
Retrofit - 使い方
ただParcelableにするなら
空のprimary constructorを定義するので
dataをつけても恩恵は得られないです。
Dagger2
Dagger2 - 使い方
フルコットリンは
諦めましょう。
Dagger2 - 使い方
やってみた感じ下記を確認
• kotlinでComponentとかModuleとか書いても
generateされない
• javaで書いてGenerateされた
DaggerHogeComponentがkotlinか...
Dagger2 - 使い方
ただ
javaとのハイブリッドで
なんとか使えます。
Dagger2 - 使い方
• ComponentとかModuleはjavaで書く。
• GenerateされたDaggerHogeComponentとか
はjavaからアクセスしてkotlinに継承などで渡す
ってする
Dagger2 - 使い方
ModuleとかComponentをjavaで作成
Dagger2 - 使い方
ModuleとかComponentをjavaで作成
Dagger2 - 使い方
生成されたDaggerHogeComponentを
kotlinへ渡すメソッドをjavaで用意
Dagger2 - 使い方
kotlinで受け取る
Dagger2 - 使い方
あとはinjectするだけ
setterにanotationをつける
KotlinつかってQiitaクライアント作った時の話
Upcoming SlideShare
Loading in …5
×

KotlinつかってQiitaクライアント作った時の話

5,283 views

Published on

KotlinつかってQiitaクライアント作った時の話

Published in: Engineering
  • Be the first to comment

KotlinつかってQiitaクライアント作った時の話

  1. 1. Kotlin使って Qiitaクライアント 作った時の話 ∼Kotlin + Modern Libraries∼ 2015/5/13 potatotips#17
  2. 2. Profile name 釘宮 愼之介 / @kgmyshin features • Androidエンジニア • なぜか初対面の人に「くぎゅ」って呼ばれる • 最近転職しました
  3. 3. Kotlin 盛り上がって きてますよね
  4. 4. 今日はKotlinを使って 実際にアプリを 作ってモダンなライブラリを 入れた時の (ハマりまくった) 話をします
  5. 5. • LeakCanary • EventBus • KotterKnife • Retrofit • Dagger2 Kotlin meets Libraries
  6. 6. LeakCanary
  7. 7. LeakCanary https://github.com/square/leakcanary 5/8に出たsquareの メモリリークの ライブラリ
  8. 8. importするだけ。 LeakCanary - 使い方
  9. 9. 普通に使えます。 便利ですね!これ! LeakCanary - 使い方
  10. 10. EventBus
  11. 11. greenrobotのEvent Bus EventBus https://github.com/greenrobot/EventBus
  12. 12. javaの時と全く同じ。 問題なし。 EventBus - 使い方
  13. 13. javaの時と全く同じ。 監視する人がregister, unregisterする。 EventBus - 使い方
  14. 14. Eventをpostする EventBus - 使い方 監視者で処理する。
  15. 15. KotterKnife
  16. 16. Jake先生作 ButterKnifeのKotlin版 KotterKnife https://github.com/JakeWharton/kotterknife
  17. 17. ほぼほぼButterKnfieと 同じように使えます。 KotterKnife - 使い方
  18. 18. KotterKnife - 使い方 Xmlに書いて 宣言時に by bindViewするだけ
  19. 19. ButterKnfieのように bind(inject)メソッドで 明示的にinjectしない。 injectをするのはそのfieldに アクセスした時。 KotterKnife - 使い方
  20. 20. fragment使用時は注意。 KotterKnife - 注意点 onCreateViewではまだViewが Activityに結びついてないので これはぬるぽになる
  21. 21. リスナーつけたりの処理は onActivityCreatedとかですると良い。 KotterKnife - 注意点
  22. 22. Retrofit
  23. 23. Retrofit - 使い方 通常どおり使えます。
  24. 24. Retrofit - 使い方 Clientを作って
  25. 25. Retrofit - 使い方 interface(trait)を作って
  26. 26. Retrofit - 使い方 entityを作ります。 Primary Constructorにも Annotation使えました。
  27. 27. Retrofit - 使い方 dataクラスにすると便利です。 toStringとか、equalsとかを 自動生成してくれます。
  28. 28. Retrofit - 使い方 ただParcelableにするなら 空のprimary constructorを定義するので dataをつけても恩恵は得られないです。
  29. 29. Dagger2
  30. 30. Dagger2 - 使い方 フルコットリンは 諦めましょう。
  31. 31. Dagger2 - 使い方 やってみた感じ下記を確認 • kotlinでComponentとかModuleとか書いても generateされない • javaで書いてGenerateされた DaggerHogeComponentがkotlinから見えない
  32. 32. Dagger2 - 使い方 ただ javaとのハイブリッドで なんとか使えます。
  33. 33. Dagger2 - 使い方 • ComponentとかModuleはjavaで書く。 • GenerateされたDaggerHogeComponentとか はjavaからアクセスしてkotlinに継承などで渡す ってする
  34. 34. Dagger2 - 使い方 ModuleとかComponentをjavaで作成
  35. 35. Dagger2 - 使い方 ModuleとかComponentをjavaで作成
  36. 36. Dagger2 - 使い方 生成されたDaggerHogeComponentを kotlinへ渡すメソッドをjavaで用意
  37. 37. Dagger2 - 使い方 kotlinで受け取る
  38. 38. Dagger2 - 使い方 あとはinjectするだけ setterにanotationをつける

×