Android mobile

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

Android mobile

minne事業部プロダクト開発チームのtepiです。9月14日〜9月16日に開催されたDroidKaigi 2023にオフラインで参加しましたので、そのレポートをお届けします!

  1. DroidKaigiとは
  2. 企業ブース
  3. 公式アプリ
  4. セッション Day1
    1. Android Open-source repositories 101: Everything you always wanted to know
    2. よく見るあのUIをJetpack Composeで実装する方法〇選
    3. Securing Android Applications - The not so secret guide explained
    4. モニタリングでパフォーマンス改善入門
    5. Jetpack GlanceではじめるMaterial3のColor
  5. セッション Day2
    1. ComposeのTextFieldを理解する
    2. Jetpack Composeを活用した強力なUI表現の実装実例
    3. ここ数年のAndroid Textの新(?)機能について
    4. 突撃!隣のコードレビュー
    5. Our ongoing journey from REST to GraphQL on Android
  6. まとめ

DroidKaigiとは

DroidKaigiはAndroid関連の技術を中心に様々な情報が共有される技術カンファレンスです。 私個人としては2019年以来5回目の参加で、毎度様々な企業様の知見を拝見させていただき刺激になるイベントとして、今回も久々のDroidKaigiにワクワク参戦してきました!

企業ブース

例年通りたくさんの企業様がブースを出されており、非常に賑わっていました。

今年は日産自動車株式会社様やTuring株式会社様といった車を開発されている企業様のブースの出展があり、ハードを作られている企業様でモバイルエンジニアを抱えて開発をされているというのは個人的には嬉しい流れだなと感じました。

また、クラウド型建設プロジェクト管理サービスを開発されている株式会社アンドパッド様のような、今までDX化されていなかったような分野に対するアプリはminneとしても同じような境遇にあり、まだまだ困っている人を助けられるよう技術者としてモバイルに限らず開発に関わっていきたいと考えさせられました。

全ては紹介できず心苦しいところですが、上記以外にも各社ブースで貴重なお話を聞くことができましたし、各々趣向を凝らしたノベルティがあり非常に楽しめました(個人的には株式会社サイバーエージェント様からいただいたアイススプーンとウォンテッドリー株式会社様からいただいた技術書が嬉しかった)。

公式アプリ

毎度恒例となっている、DroidKaigiの公式アプリがOSSとして公開され今年もたくさんの方々がコントリビュートをされていました。minneからも私を含めてAndroid2名、iOS1名がコントリビュートをすることができました。

私は前回参加時もコントリビュートをしたいと思いながらなかなか仕事量の都合でできず、今年は初めてのOSSへのコントリビュートをすることになり、不慣れな部分もありながらマージまでできて良い経験になりました。また、ペパボではそういった時間を作ることができたので他のチームメンバーにも感謝しつつ、今後も毎年コントリビュートをできるように技術力を磨きたいです。

セッション Day1

以下に1日目に聞かせていただいたセッションを紹介させていただきます。
※セッションのスライドや動画等は今後DroidKaigi公式の方で更新されていくようですのでここでは割愛させていただきます。

Android Open-source repositories 101: Everything you always wanted to know

Open Sourceプロジェクトを管理するためのTipsの紹介でした。

あまりOpen Sourceという内容自体はminneとして利用する部分はないものの、いろいろなライブラリの紹介があったので試してみたいと考えています。

特にDokka(KDocをAPI Referenceにするライブラリ)やDetektは導入を検討してみたいです。

よく見るあのUIをJetpack Composeで実装する方法〇選

Jetpack ComposeでつかえるComposableに関する発表でした。

実際にプレゼン上ではどのようなUIを動画で紹介しながら説明いただいたのでわかりやすかったです。

また、プレゼンの途中でGoogle公式のAccessibilityのCodelabの紹介がありましたが、昨今の流れを考えるとAccessibilityをアプリでも対応できるよう勉強しておきたい内容です。

Securing Android Applications - The not so secret guide explained

Googleの中の人が、Androidのセキュリティに関する情報を語ってくれたセッションでした。

MASVS(Mobile Application Security Verification Standard)をベースに、攻撃例とともにどのようなセキュリティリスクがアプリに潜んでいるのかを知ることができ、今後のアプリ開発に生かしたい内容でした。内容は結構詰め込まれていたのですが常に対応したほうが良いところの話ではあったので、スライドだけでも見ておいたほうがよいプレゼンテーションかと思います。

モニタリングでパフォーマンス改善入門

パフォーマンス改善に使えるAndroid Studioの機能などの紹介されたセッションです。

知らない機能の説明もあり他社さんではここまでやっているところもあるのだなと刺激を受けたプレゼンテーションでした。個人的には具体的にこの機能でこう使ったらこう直せてこう改善されるというようなところが聞きたかったところはあるのですが、少なくとも使い方は教えていただけたので実際にminneでも利用してパフォーマンス改善をはかってみたいと思います。

Jetpack GlanceではじめるMaterial3のColor

直近にリリースされたJetpack Glanceを使ったウィジェットの実装方法やMaterialの色の使い方に関するセッションでした。

ウィジェットは今まで開発したことがなかったのですが、実装方法を詳しく説明いただき、Jetpack Composeの利点を生かして比較的簡単に実装できそうな感触を得られました。minneでも何か有益な機能が開発できないか検討してみたいところです。

セッション Day2

以下に2日目に聞かせていただいたセッションを紹介させていただきます。

ComposeのTextFieldを理解する

BasicTextFieldのAPIの1つ1つ細かく聞くことができるセッションでした。

特にVisualTransformationを利用した認証キー入力のような画面の実装がコードを含めて一緒に説明されており、今後に大いに役立ちそうなのでぜひ見ていただきたい内容です。また、BasicTextField2 APIが今後リリースされるとのことで、新しいAPIに合わせて今から実装しておくと良さそうです。

全然発表内容とは関係ないのですが、本セッションはAlbert Changさんという恐らく中国系の方の発表だったので、英語セッションかと思いきやきれいな日本語で話をされていて、これはこれでまた刺激を受けるいい機会になりました。

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

テキストの装飾やアニメーションに関するプレゼンテーションでした。

グラデーションを例にShaderを使った実装を聞いたりアニメーションを使ってSimmer EffectやカスタマイズされたCircular Progress Barの実装例を紹介していただけました。

なかなかテキスト装飾することは少ないですが、他の見た目に関するセッションの内容を含め、それもデザイナーさんが知らないからというところもありそうですので、そういったところに知っていただけるような機会を設けられたらよいなと思います。

ここ数年のAndroid Textの新(?)機能について

GoogleのTextを作っている方が主にAndroidのフォントに関する情報を説明してくれました。

実務的に使う情報は少なかったですが、フォントに関する情報は非常に興味深い内容でした。前々から少しズレていたりするなと感じていた部分がクリアになったのでフォントの事を知らない方はぜひ聞いてみていただけたらと思います。同時にやはり多言語対応は大変だなと思う内容で今後の開発でも気をつけていきたいです。

突撃!隣のコードレビュー

合同会社DMM.com様のグループ内の3つのアプリでのコードレビューをどのようにされているかの事例を紹介いただけました。

やはり他社さんでも悩んでいるところは同じだなとある意味安心しました。また、今後新卒等に向けては最初に見て勉強するのに良い教材となりそうなので、勧めていきたいです。

Our ongoing journey from REST to GraphQL on Android

AircallというアプリにおけるRESTからGraphQLへの切り替え事例に関するセッションです。

GraphQLへの移行に関する基礎的な情報がまとまっており、これからGraphQLに移行することを検討している場合には参考になる情報ばかりでした。

minneでもGraphQLへの置き換えが始まっているのですが、minneで課題になっているSchemaの反映は、CIで自動更新しているとのことだったので、今後導入を検討したいです。

まとめ

総じて今回も楽しいDroidKaigiとなりました!変わらず毎年開催していただいている運営の方々には頭が下がる思いですが、参加者として会が盛り上がるよう今後も継続して参加し貢献できたらと思います。まだまだこれからセッションのプレゼンテーションや動画が公開されるとのことですので、見られなかったセッションを引き続きチェックしつつ、minneでも取り入れてよりよいアプリとしていきたいと思います。

来年はブログ用の写真を撮ろう・・・。