chigichan24のお気持ち表明

おきもちを表明している

DroidKaigi 2023 Day2 セッション感想

Day1 はこちらにまとめています

chigichan24.hatenablog.com

11:00~ Kotlinハイパフォーマンスプログラミング

speakerdeck.com

Kotlin(JVM)は遅いみたいなのは、ART時代の産物ぽいよねと確かに改めて思いました。 キャッシュヒットまで考えたカリカリチューニングはしたことがないので、勉強になりました。

syntax sugar がインスタンスを使い捨てているのはなるほどになりました。

11:00~ ビジネス向けアプリを開発するときに知っておくべきAndroid Enterpriseの世界

speakerdeck.com

Android Enterprise は開発者としては全く取り扱ったことがないので、概念から勉強になりました。

11:00~ Compose の Text Field を理解する

drive.google.com

TextFieldはだいぶ良くなってるなあという印象を受けました。また、発表の途中でAndroidStudioを使いながら説明していて、非常にわかりやすかったです。

11:00~ A small leak can sink a great ship

タイトルが良い。スライドか動画の公開楽しみです (未視聴)

11:00~ MVIに基づくStateMachineアーキテクチャ:KMMとJetpack ComposeとSwiftUIを組み合わせる

speakerdeck.com

MVIの例のコードもかなりわかりやすかったです。また、SwiftUI側でも同じように記述できるのが体感できました。個人的にはKMPでも UI 部分は それぞれで実装したほうがいいと考えているので、自分の思考にちかいものがまとめられていて嬉しかった(?)です。

12:00~ Flutterにおけるアプリ内課金実装 -Android/iOS 完全なる統一-

speakerdeck.com

アプリ内課金という一番プラットフォーム固有の面倒なコード部分を統一できるのは非常に魅力的だなぁと思いました。

pub.dev

StoreKit2 にもきっちり追従してくれると、本当により良いなと思いました。

12:00~ Androidの『音』を制御する

docs.google.com

音に関連するものが網羅的にまとめられており良かったです。端末差異について後半まとめられており、こういうのは調査が鬼大変なので大変参考にになると思いました。

というか、ここGoogle側でベンダーに何かしらルールやスペックみたいなものを定義できないのだろうか(もしくは定義しているが無視されている?)

12:00~ 共有

docs.google.com

カスタムのshare sheetやめませんか?については、仰ることはわかりますになりました。custom actionがまだ API Level 34なので、完全に対応できるのはまだまだ先になりそうだなぁと思いました。

12:00~ GPIOの制御を通してAndroidがハードを制御する仕組みを学ぶ

https://www.canva.com/design/DAFueiRwYlw/2MoKq_v7-FhA9uW7oRsDgw/view?utm_content=DAFueiRwYlw&utm_campaign=designshare&utm_medium=link&utm_source=viewer

最初にタイトルを見たときにはHALまで書くのかと思ったのですが、流石にそこまではしていなかったので安心(?)しました。

特権ユーザで頑張るための過程が書かれていて追試しやすいまとめ資料になっていて良かったです。

14:00~ Androidアプリの良いユニットテストを考える

speakerdeck.com

テストダブルは意外にメンテナンスが大事話が刺さりました。Androidフレームワークに依存している箇所のテストはコードレビューの中でもよく議論になるので、一つの指標として、この資料を参考にしたいと思います。

14:00~ パフォーマンス管理ツールの活用: Firebase Performance MonitoringとMacrobenchmarkを駆使してJetpack Composeを導入するまで

speakerdeck.com

Composeを導入するまでの道のりが書かれていてよかったです。一度計測できる環境(+ baseline)があれば、その後の改善も楽になりそうだと感じました。Composeでパフォーマンスが落ちた部分は、production buildではある程度改善されそうという予感もしました。

14:00~ Jetpack Composeを活用した強力なUI表現の実装実例

speakerdeck.com

技巧的コードは誰にも触れなくなりがちなので、負債にならないように扱うには?という視点の話もあり良かったです。また、AGSLの話にまで最後は触れられていて、この技術は私も気になっているので参考になりました。

これは完全に余談ですが、背景が青で白文字だったので、ブルースクリーンのようでドキドキしました。

14:00~ Introduction to Bytecode Instrumentation with AGP 8

Bytecode Instrumentation 大好きなので、早く資料を見たいです (未視聴)

15:00~ What's new (?) in Android Text

docs.google.com

近年のアップデートとその裏側について詳細に書かれており、勉強になりました。ただ、資料だけだと詳細が分からなかったので、動画が公開されたら再度見たいと思います。

15:00~ Jetpack Compose で Android/iOSアプリを作る

speakerdeck.com

KMPで完全に共通化するにはまだまだ外部ライブラリに依存する必要があるのが実感しました。commonMainの Preview 問題はまじで早く解決してほしい....

15:00~ 様々なユースケースに利用できる "パスキー" の導入事例の紹介とUXの課題解説

speakerdeck.com

zenn.dev

Passkeyのネイティブでの実装方法についてまとめられていました。Web integrationの方法しか知らなかったので、nativeでもいけるのかと驚きました。

15:00~ Jetpack Benchmark and where to find them

benchmark系の話は何度でも聞きたいので、楽しみです(未視聴)

16:00~ 中規模アプリにおけるレイヤードアーキテクチャでの例外との向き合い方

speakerdeck.com

レイヤードアーキテクチャに置いて、例外含め、エラーとどう向き合うかについてわかりやすくまとまっていました。ビジネス例外やシステム例外としてまとめたり、レイヤーごとにrethrowしたり、モデルとしてresultで返したり、様々アプローチがあることを再認識できました。

16:00~ Jetpack Compose の Side-effect を使いこなす

speakerdeck.com

基本的には既知の内容がほとんどでしたが、produceState については知らなかったので、ほえ〜となりました。

16:00~ Building a screenshot testing pipeline that scales

ライブでチラ見しただけだったけど、動画か資料が公開されたら感想を書きます (未視聴)

16:00~ 突撃!隣のコードレビュー

speakerdeck.com

チームのボトルネックがコードレビュー待ちになるのはもったいないので、コードレビューの集中時間を作る取り組みはいいなと思いました。

コードレビューは reviewer も reviewee も準備が必要だと個人的には思っていたのですが、そのことにも触れられていてすごく良かったです。

Android特有のレビューtipsはもっと色々ある気がするので、来年は登壇しますか(?)

17:00~ できる!アクセシビリティ向上

speakerdeck.com

talkback の優先度決めのフローが非常に参考になりました。ここでもNIKKEIさんの施策の進め方のうまさが出てるなぁと感じました。本当にすごい会社だ...

17:00~ Our ongoing journey from REST to GraphQL on Android

apollo Client を使った GraphQL の向き合い方や様々なユースケースでの実装方法について触れられており良かったです。

17:00~ Material 3 やめました

speakerdeck.com

タイトルからずっと気になっていたセッション。実際に取り組んで見えてきたpain point はこれからM3を入れるかを悩む人にはかなり参考になると思いました。brand colorとのうまい落とし所は Google 側もなにか考えているのかなぁと気になりました。