メドピア開発者ブログ

集合知により医療を再発明しようと邁進しているヘルステックカンパニーのエンジニアブログです。読者に有用な情報発信ができるよう心がけたいので応援のほどよろしくお願いします。

DroidKaigi 2024に参加してきました!

はじめに

こんにちは!メドピアにてモバイルアプリエンジニアをしている佐藤です。
今年のDroidKaigiに、弊社はサポーターとして協賛し、総勢3名のモバイルアプリエンジニアがオフラインにて参加しました。
実際に足を運んだセッションを中心に、DroidKaigi 2024の参加レポートをお届けいたします。

セッションについて

Android ViewからJetpack Composeへ 〜Jetpack Compose移行のすゝめ〜

syarihuさんによるセッションです。

youtu.be

このセッションではJetpack Composeへの移行の進め方が中心のお話となります。
弊社では複数のスマホアプリをリリースしておりますが、ほとんどのアプリがAndroidViewで実装されている為、今後移行を進めていく際の参考になる内容がてんこ盛りでした。
すでに動いているアプリではFullCompose化を目指すのはデグレのリスク面から腰が重くなってしまう部分がありますが、UIの描画だけをCompose化する方法や実例を基にした移行のお話などがあり、弊社アプリでも移行を進める際の戦略に取り入れて進めていきたいと思いました。

2024年のナビゲーション・フォーカス対応:Composeでキーボード・ナビゲーションをサポートしよう

Tiphaine (ティフェン)さんによるセッションです。

youtu.be

ナビゲーション・フォーカスの説明から実装方法、デバッグのやり方について触れられていました。
私はナビゲーション・フォーカス対応の実装経験がなかった為、とても興味深く勉強になる内容でした。
知識として知っているというだけでもアプリ改善の際の提案の幅が広がるので、本セッションを通じてAndroidアプリエンジニアとして一段階成長することが出来たと思います。

また、余談にはなりますが本セッションのスピーカーであるTiphaineさんは弊社の元社員であり、MedPeer時代には多くのことを学ばせていただきました。
セッション後には弊社モバイルアプリエンジニアと記念撮影も行い、ブログへの掲載も快諾してくださいました。
Tiphaineさんの多大なるご厚情に心より感謝申し上げます。

要約:
あざす〜!!!!!!!!!!!!!!!
今度みんなで飲みに行きましょ〜🍻

Tiphaineさん(写真中央)と弊社MBアプリエンジニアの王(写真左)と佐藤(写真右)

KSPの導入・移行を前向きに検討しよう!

shxun6934さんによるセッションです。

youtu.be

KSPとkaptの説明、移行のメリットなどについて触れられていました。
弊社のアプリの中にはDataBidingを多用しているアプリもあり、DataBindingはKSPに非対応であることからKSPとkaptを併用するとビルド時間が遅くなるというのはまさに直面しそうな内容だった為、本セッションで予め知れて良かったです。
今後K2への移行に伴いKSPとkapt周りは触れる部分になってきますので、このセッションの内容はタイムリーでとても参考になりました。

電池寿命を考えた位置情報の監視方法を考える(Geofence)

はるちろさんによるセッションです。

youtu.be

Geofenceの説明、自作のGeofenceとGMSの比較などについて触れられていました。
Geofenceの機能を扱うアプリはあまり多くはないと思いますが、弊社のリリースしているアプリの中にはGeofenceを用いているアプリもあった為とても親和性を感じるセッションでした。
私自身もGeofence周りのコードに触れたことはありますが、私が1から開発したのではなく前任者から引き継いだアプリの為Geofenceの理解は浅瀬だった為、本セッションを通じて理解を深められ本当に良かったです。
余談ですがこのセッションを聞いた当日にGeofenceに関連するissueが立てられた為、「楽しい〜!」ってなりながら対応を進められました!笑

仕組みから理解する!Composeプレビューを様々なバリエーションでスクリーンショットテストしよう

Sumio Toyama (sumio_tym)さんによるセッションです。

speakerdeck.com

各ライブラリの説明やテストの実装方法について触れられていました。
コードを中心にお話があり、本セッションを通じて実装方法が参考になるのはもちろんのこと、スクリーンショットテストへの理解もとても深まる内容でした。
本セッションのお話でもあったような特定のバリエーションにおけるUIのバグ周りはまさに後回しにしがちだったりナイトモード自体にまだ対応していなかったりだった為、今後取り入れていきたい内容が満載のセッションでした。

アプリをリリースできる状態に保ったまま段階的にリファクタリングするための戦略と戦術

Yuki Anzaiさんによるセッションです。

youtu.be

リファクタリングを進める上での戦略から実際にどのようにリファクタリングを行うかをコードを交えてのお話でした。
参考になるリファクタリング例がてんこ盛りで勉強になったのはもちろんのこと、品質を維持したままリファクタリングを進める上での戦略がとてもわかりやすく説明されておりました。
特に戦略①であった環境を整えるの部分については改めてとても大切だと実感しましたので、弊社モバイルアプリエンジニア内においても周知を行いたいと思います。

Jetpack ComposeにおけるShared Element Transitionsの実例と導入方法 またその仕組み

hyogaさんによるセッションです。

youtu.be

Shared Element Transitionsの説明から実装方法についてのお話でした。
Shared Element Transitionsへの理解が深まったのはもちろんのこと、サンプルアプリも素晴らしくこんな素敵なアプリのコードがGitHub上で公開されていることに感謝が堪えません。
特に遷移アニメーション中のHorizontalPagerのスクロールを無効にするバグ対応の部分は結構な躓きポイントだと思います。もし私が実装していたら余裕で頭を悩ませていた自信があります笑
これらの解消方法含め知ることが出来てとても面白いセッションでした。

分析に裏打ちされたアプリウィジェット開発 - Jetpack Glanceとともに

Miyabi Goujiさん、Yuri Oguraさんによるセッションです。

youtu.be

ウィジェットに関する説明、ウィジェットを設置することによるKPIへの貢献や効果検証、実装方法などについて触れられていました。
個人的にはこのセッションが一番面白かったです。
特にデータ分析周りにも触れられており、ウィジェットが事業に対してどのように貢献し、そして認知度の少ないウィジェット機能をどのように訴求したかについても話されており、本セッションの内容はモバイルアプリエンジニアだけでなくアプリに携わるチームメンバーに対しても知っておいてもらいたい内容でした。
YouTubeにアップロードされた後は早速社内のチームメンバーにもシェアしました!

2024年最新版!Android開発で役立つ生成AI徹底比較

Nishimyさん、wiroha(ゐろは)さんによるセッションです。

youtu.be

Gemini、GitHub Copilot、ChatGPTの比較から活用事例について触れられていました。
生成AIは今では開発においてなくてはならないツールの一つであり、弊社においてもCopilotは希望するエンジニア全員に、ChatGPTも社内版ChatGPTの構築が行われエンジニア以外にも多くのメンバーが活用しております。
各生成AIの実務レベルでの活用例を本セッションで知ることが出来、弊社においてもより一層生成AIの活用を促進していきたいと思える素晴らしいセッションでした。

社内版ChatGPTの構築に関しては記事も公開されていますので、興味のある方はご参照ください。

tech.medpeer.co.jp

使って知るCustomLayout. vs DailyScheduler

Saiki Iijimaさんによるセッションです。

youtu.be

CustomLayoutに関する説明からDailySchedulerの実装方法について触れられていました。
ゴリゴリのJetpackComposeセッションでCustomLayoutに関する理解が深まったのはもちろんのこと、8:28辺りにある各関数の使い分けが出来るフローチャートはわかりやすくて最高です。
レイアウト周りは触れることの多い箇所なので、本セッションを理解することでレイアウト構築における選択肢の幅が広がる素晴らしいセッションでした。

AndroidアプリのUIバリエーションをあの手この手で確認する

Nozomi Takumaさんによるセッションです。

youtu.be

タイトル通りUIバリエーションの確認に関する様々な説明について触れられていました。
多くの確認方法の説明がありとても勉強になりました。特にフォルダブル端末の確認方法については疎い部分がありましたので、フォルダブル端末の確認やVirtual sensors活用例の部分は本当に助かる情報でした。

実践!難読化ガイド

みっちゃんさんによるセッションです。

youtu.be

タイトル通り丸々難読化に関するお話です。
難読化周りはたまにしか触れないので若干苦手意識があったのですが、このセッションのお陰で難読化面白い!となりました。
特に原理原則に基づいて立ち向かおう!のお話はコアな内容でありながらもとてもわかりやすくまとめられておりめちゃくちゃ面白かったです。

余談にはなりますが弊社では定期的に勉強会を実施しているのですが、現在はOWASP Mobile Top 10に関する勉強会を実施しており、このセッションを聞く2日前に M7: Insufficient Binary Protection Threat Agents の章に関する勉強会を実施してリバースエンジニアリングに関して語った後でしたのでより一層難読化セッションが楽しめました。
難読化のセッションと合わせてOWASP Mobile Top 10のこちらの章を読むことでより一層理解が深まると思います。

スポンサーブースについて

スポンサーブースにも多くの人がいて賑わいを見せており、すべては回りきれませんでしたが私も多くのスポンサーブースに足を運ばせていただきました!
ブースに足を運ぶことで各社に対する理解が深まり、ブースへ足を運んだことをきっかけに数多くのアプリをインストールしました!
話を聞いた後に実際にその会社のアプリのUI/UXに触れるのはリアルで交流した後ということもありめちゃくちゃ面白いです。

話を聞いてサービス面で特に面白かったのはMagicPodさんです。
一部弊社のサービスでもコア機能となる箇所はEspressoを用いてUIテストの導入を進めたりもしましたが、コア機能ゆえに変更が入り壊れることが多々ありメンテナンスには苦労しているのですが、何とMagicPodさんではAIが自動でスクリプト修正を行なってくれるとのこと!!!
UIテストの導入コストが下がるだけでなくメンテナンスコストも下げられる素敵なサービスだと思いました!

magicpod.com

また、ノベルティも多くいただきました!
どれも素敵なノベルティばかりでしたが、個人的に特に嬉しかったのがタイミーさんとnewmoさんのノベルティです。

タイミーさんのブースではガチャを回しタンブラーが当たったのですが、飲み物を美味しく飲むのはもちろん、ロゴがとても可愛いのでMTGでちょっとした雑談の際のネタにもなりそうなので重宝しております。

newmoさんではフェイスタオルをいただきました。私は趣味で毎週スーパー銭湯に通い月一ペースで遠征も行なっており、新しい銭湯施設に行った際は温泉タオルを収集している位温泉タオルが好きなので、このノベルティは本当に嬉しかったです。
このフェイスタオルを持ってDroidKaigiの翌日にスーパー銭湯で早速活用させていただきました!
切実に販売もして欲しい…!笑

最後に

DroidKaigi 2024はセッションによる勉強、ブースでの交流と得ることが多くとても有意義な大会でした!
このような素敵な大会を提供してくださったDroidKaigi運営の方々・スピーカーの皆様・多くの企業・DroidKaigiに関わるすべての方々に感謝を申し上げます。
また来年も参加できることを楽しみにしております!

弊社MBアプリエンジニア小林(写真右)と佐藤(写真左)


是非読者になってください!


メドピアでは一緒に働く仲間を募集しています。 ご応募をお待ちしております!

■募集ポジションはこちら medpeer.co.jp

■エンジニア紹介ページはこちら engineer.medpeer.co.jp

■メドピア公式YouTube  www.youtube.com

■メドピア公式note
style.medpeer.co.jp