DroidKaigi2019 Day1の感想

Kotlinプログラミング

新品価格
¥3,672から
(2019/2/7 20:56時点)


マスタカと言えばドロイド君
そんなわけで人生で初めてカンファレンスに行ってきた

聞いたセッション各々について感想をつらつらと述べていきます


・マルチモジュールなプロジェクトでテストはどう変わる?
https://speakerdeck.com/tkmnzm/how-change-testing-in-modular-architecture
テストはレイヤーだけでなく、モジュールとしての観点もあった方が良いのでは。
ユニットテスト<ITテスト<UIテスト
の順番で導入コストが上がる
どこのモジュールをどこまでテストするかという方針が必要なので考えよう
ITテストはrobolectricでのテスト

初めて知ったこと
PITってのがある
<5が<=5になったらテストがfalseになるよねって事をやるテスト支援?らしい
http://pitest.org/

・マルチモジュールプロジェクトでのDagger2を用いたDependency Injection
https://speakerdeck.com/kgmyshin/android-multi-module-with-dagger
Dagger-Androidを使うと良いらしい
マルチモジュールの場合はリストにする

初めて知ったこと
Ktor Clientってのがある
https://ktor.io/clients/http-client.html
@Binds
https://qiita.com/sakuna63/items/1b3e755d6f26908aa8c9

・アプリをさらに成長させるための技術戦略(振り返りとこれから)
https://speakerdeck.com/shaunkawano/tech-strategy-for-boosting-app-growth
会社が理想を作ったのでそれに向けて技術戦略を練る
技術戦略で出た課題は通常のタスクと平行して実施する

良かった点
エンジニア全員での目標を作れた
エンジニアの課題感をビジネス層や経営層に伝えられた
改善に率先的なメンバーに光を当てれた

反省点
・KPIが多かった
やることが多いと辛い
・ハードルが高い
通常施策もあるので大変
0 or 1でなく複数段階の目標
・指標の可視化ができてない
進捗してる気がしないという問題が発生するので、計測入れるべき
FluxはActivityとStoreの数で計測してた
テストならcodecovとjacocoを使う
・目的を明確に記述しておこう

初めて知ったこと
codecov。可視化して通知するサービス
https://qiita.com/nasum/items/aff9bf09d49b136bbf94

今回の講演の中で為になったセッションの一つ
複数人チームになったのでこういうことやっていきたい

・ぼくのかんがえた最強のUsecaseの作り方~あるいはビジネスロジックとはなにかという1つの回答~
https://speakerdeck.com/kiuchikeisuke/bokufalsekangaetazui-qiang-falseusecasefalsezuo-rifang-aruihabizinesurozitukutohananikatoiu1tufalsehui-da
ビジネスチームが知っていることがビジネスロジック
ビジネスチームで決めれないことはビジネスロジックではない(UI、保存形式、他社の仕様)

ユースケースは、ビジネスロジックを使うケースごとに分割したもの
ユースケースの集合体がビジネスロジック

ビジネスロジックとユースケースを定義すると
仕様がそのまま実装になるの綺麗にかける

今回の講演の中で為になったセッションの一つ
後、スピーカーの人が一番素敵だった

・R8、Proguard徹底比較
https://speakerdeck.com/satoshun/proguard-che-di-bi-jiao
R8はexperimental。だから今入れないけど、そのうち入れることになるでしょう

D8を使うとdalvikのdexコードになる
R8を使うとproguardの1ステップが省略される

R8とproguardは互換性がある
ただし、一部の設定が追加されたり減らされたりしてる
addconfigurationdebuggingをつけるとエラーの回避案を提案してくれる
ただしR8だと使えないので一旦proguardで提案を受けてからR8にそれを反映すればよい

dexdumpでdexが読める

また、R8とproguradではR8の方が積極的にコードを最適化してくれる
Exception吐くしかないコードは、関数の中にExceptionが書かれててすごい面白かった

day1で一番技術的に面白かったセッションでした

・Understanding Kotlin Coroutines: コルーチンで進化するアプリケーション開発
https://speakerdeck.com/mhidaka/understanding-kotlin-coroutines-korutindejin-hua-suruapurikesiyonkai-fa
人気で立ち見でした
coroutuineの初心者向けの講演でした
ほとんど知ってる内容だったので
ある意味でマスタカのcoroutineスキルは脱初心者はできてるんだなぁと実感した

・クロスプラットフォームモバイルアプリ開発ツール総ざらい2019 〜Titanium MobileからKotlin/Nativeまで〜
https://speakerdeck.com/amay077/native-made-number-droidkaigi
行く予定なかったんだけど、前のセッションの都合で行ってみた
クロスプラットフォーム一個も使ったことないけど
内容がとてもまとまってかなりためになった

クロスプラットフォームは必要悪、オワコンではない

クロスプラットフォームの開発の方針
1.ツールの言語の標準APIを使う
2.クロスプラットフォームの共通APIを使う
3.共通のAPIを自作する

画面描画方式
クロスプラットフォームの実装方式は2種類ある
1.PFに移譲
ネイティブと同じもの
PF毎に機能差異があると共通化しずらい
2.独自描画
canvasを使う
トラブルが起きやすい

API提供方針
iosとandroidのカメラ機能をラップしてるかどうか
みたいなイメージ

クロスプラットフォームを選定するときは
API提供方針と画面描画方式の2つから選択するべき

 

day1は
R8が技術的に一番面白く
初心者が行くならクロスプラットフォームが知見が広がり
ビジネスロジックの話が設計的に一番面白く
技術戦略が他者がどうやってリファクタリングしてるかを知れた
のがよかったかな

day2も楽しみなセッションがあるので期待大でいきたいと思います

関連記事:

Pocket