すっかり書くのを忘れていたので書きます。
昨年度の記録はこっち。
やってみたもの
今年はFlutterKaigiの準備で時間と余裕があまりなかったので、リリース当日に触って気づいた問題に取り組みました。
簡単にまとめると、スポンサー画面のスクロールが遅れている、というものです。 どうやら画像をリサイズせずに保持しており、パフォーマンスに影響が出ていた様子です。
結果的には、Jetpack Compose用のcoilを利用することで問題を解消しました。 これはJetpack Compose用のcoilは、内部で「表示する領域に応じたリサイズ」処理を持っています。
ただ、coilはv3系でKotlim Multiplatformのサポートが行われる予定になっており、開発時点では利用できませんでした。 そこで利用されていたのが、Issue上で話題に上がっているcompose-imageloaderになります。 compose-imageloaderはその名の通り、画像をダウンロードしてpaintするライブラリとなります。
v1.7.0でAutoSizeImage
が追加されたため、現在では簡単に「表示する領域に応じたリサイズ」が利用できるようになっています。
気になる方は、下記PRを眺めてみてください。
ただ実装当時(v1.6.5)では選択肢がなかったため、実装者側で任意のサイズを設定する必要がありました。 試しに任意のサイズを設定したのが、次のPRです。ただ、ベターではないがベストではないな、という印象でした。
conference-app-2023ではAndroidとiOSで共通利用している画面とAndroidとiOSで別々に実装している画面が存在します。 改めてコードを確認してみたところ、スポンサー一覧画面はAndroidとiOSで別々に実装している画面になっていました。 このことから、カンファレンスまでの日数などを考えて、coilの利用に戻したのが最初のPRとなります。
まとめ
ライブラリがどれだけKotlin Multiplatformをサポートしているかなど、全く気にしていなかった知識を得ることができたので、とてもありがたかったです。 アプリをPlay Storeから落として、動作させてIssueに気づくことができたのも、良い動きだったなと思っています。
2023年もコントリビューションをすることはできましたが、もうちょっとやりたかったな〜という気持ちです。 ただカンファレンスでは、スポンサーブースに立って紹介をするなど、DroidKaigiにはこれまでと違った関わりをする瞬間もありました。 来年はどうなっているのだろうと思いつつ、まとめを終えます。