DroidKaigi2022にオフライン参加してきました
こんにちは。プロダクト部でAndroidエンジニアをしています田邊です。
10月5日-7日に開催されたDroidKaigi2022に参加してきましたので、その参加報告を書きたいと思います。
Day3のハンズオンには諸事情があって参加できませんでしたが、参加した人に感想を聞いたところ楽しかったとのことだったので、来年以降も同じ企画があればぜひ参加したいです。
久しぶりのオフライン参加
弊社からは業務委託で開発をお願いしているAndroidエンジニアの方を含めて3人で参加してきました。
2021年と2020年のDroidKaigiは中止もしくはオンライン開催、2019年は都合がつかずに不参加、最後に参加したのが2018年だったので、4年ぶりのオフライン参加とになります。
オンラインイベントでは都合のいい時間に視聴することができたり、気になったところをすぐに再生し直して確認できて便利な一方、いつでも見ることができると思って結局視聴しなかったり、割り込みがあってなかなか集中して視聴できないということがありました。
今回2日間缶詰めでイベント参加してみて、たくさんのAndroidエンジニアの人に会えたり、集中してセッションを聴講できたり、その場で気軽に感想を話すことができたりと、改めてオフラインイベントの良さを実感しました。
気になったセッション
聴講して面白かったセッションの一部について感想を書きます。
Gradle Managed Virtual Devicesで変化するエミュレータ活用術
AGP (Android Gradle Plugin) の新機能の Gradle Managed Virtual Devices についてのお話。
Gradle Managed Virtual Devices は build.gradleにエミュレータ種別を書いておくことで、エミュレータ作成からテスト実行、そしてテストレポートの作成までをGradleが一気に実行してくれる機能だそうです。
カスタマイズなどの細かい設定が難しいようですが、様々な対応方法が紹介されていました。
活用シーンの1つとしてRobolectricを使ったテストケースをエミュレータに移行することがあげられていました。エミュレータでテストすることでRobolectricのバージョンアップ対応が不要になり、テストの忠実度も向上するなどのメリットがありますが、テストの実行時間が増大することもあるので、まずは弊社の環境にフィットしているか試してみたいと思いました。
マンガアプリのメモリ改善とメモリ解析方法
大量の画像を一度に扱うマンガアプリでのOOM(Out of memory)によるクラッシュ対応などのお話。
メモリリークを防ぐためのメモリ解析方法や、端末で画像を表示する際はビットマップに展開されるため元の画像ファイルサイズよりも大きなメモリが必要になること、Android OSバージョンごとにヒープの管理方法が違っているなど、メモリ周りについて紹介されていました。
メモリリークの原因が自社のコードではなく、サードパーティライブラリ側に存在していることもあるとのことで、紹介されていたメモリ解析方法なども踏まえて、OOM時の調査の視点として参考になりました。
Android Vitalsのデータを自動監視してビジネス指標を向上させよう
Google Play ConsoleのAndroid Vitalsのデータ利活用についてのお話。
Android Vitalsで具体的に取得できる ANR (Application Not Responding)やクラッシュの発生率についての説明と、それらのデータを自動で収集して監視することで、品質の向上に寄与する取り組みについてご紹介されていました。
弊社でもFirebase Crashlyticsを利用してクラッシュやnon-fatalエラーを検出して対応する体制にはなっていますが、自動化には至っていないので、こらからの取り組みとして参考になりました。
あらゆる変化を受け入れながら働きつづける 〜 介護・学業編
東京で働きながら北海道にお住まいのご家族を介護されたときのお話や、社会人大学院生になられたお話。
働き方などの多様性を考える招待セッションで、技術トピックではなかったのですが、発表者のmicchieさんが経験された介護の話を当時のお気持ちなども交えて分かりやすくお話されていて、とても興味深く拝聴しました。
介護は突然やってくる(なので、気持ち的にも経済的にも心構えしておいた方がいいよ)とか、介護などで状況が変化したときの自分との向き合い方(自分なりのストレス解消法を見つけておくとか、完璧は目指さず6割で良しとする)などのメッセージがとても印象的でした。
2022年の動画再生アプリの作り方
動画再生アプリについて、Androidが登場してからの作り方の変遷と2022年版の最新の作り方のお話。
これまで利用されていたExoPlayerがJetpack Media3に統合され、将来的にはExoPlayerが非推奨になるためMedia3への移行が推奨されていることなどが紹介されていました。
簡単なアプリ作成方法をコードで説明されていたり、Picture-in-Pictureの対応方法も説明されていていました。スライド資料も分かりやすくまとめていただいていて、理解するのに役立ちました。
Android アプリの内と外をつなぐ UI
スプラッシュスクリーンやステータスバーなどのシステムUIとアプリとの連携に関わる話。
セッションでは、スプラッシュやEdge-to-edgeに加えて、Android13で新しく追加されたバックジェスチャーに関するAPIの対応についても紹介されていました。
これまでのバックジェスチャーはそのイベントが完了したらアプリ側に伝わってきて、そこで何らかのアクションをするようになっていました。これだとシステムによる画面切替えアニメーションが難しいといった課題がありましたが、新しいAPIではイベント開始直後からアプリと連携することでシームレスな表示が可能になるとのことで、このような背景も含めて説明されていて、とても参考になるトークでした。
さいごに
貴重なイベントの場を提供してくれた運営スタッフやスピーカーの皆さん、企業ブースでお話させて頂いた皆さん、ありがとうございました。来年も機会があればDroidKaigiに参加したいと思います。