DroidKaigi 2020 Liteに参加してきました #DroidKaigi

こんにちは。株式会社ビデオマーケットの仙台オフィスでMIRAILのiOS/Androidアプリ開発を担当しているasmzです。

今回は8/27〜8/29にオンラインで開催された「DroidKaigi 2020 Lite」の参加レポートをお届けします。

f:id:asmz1:20200830001734p:plain:w0

DroidKaigi / DroidKaigi 2020 Liteとは

「DroidKaigi」とは、Android技術情報の共有とコミュニケーションを目的とした、エンジニアが主役のAndroidカンファレンスです。
もともとオフラインで2015年より毎年開催されており、今年も2/20〜21に五反田で開催予定でした。(私も東京出張して現地参加予定でした)

しかし今年は新型コロナウイルス流行の影響でオフラインでの開催が中止となったため、代替のオンラインチャリティイベントとして「DroidKaigi 2020 Lite」という形での開催となりました。

droidkaigi.jp

チャリティイベントなので基本は参加は無料ですが、心ばかりの寄付をさせていただきました。
運営の皆様、本当にいろいろお疲れ様です🙏

ちなみに、私はスマホアプリ開発を生業としつつもこれまで主にiOSアプリ開発に携わることが多く、iOS関連技術カンファレンスのiOSDC Japanには何度か参加していたのですが、最近徐々にAndroidアプリ開発比率が高まってきていたところだったので今回初めてのDroidKaigi参加となります。

今回の参加スタイル

私は家庭の都合で平日の夜や土曜はちょっと参加しづらかったため、8/27(木)、8/28(金)の日中に開催されたDay Sessionをリアルタイムで視聴しました。
また、平日夜に開催されていたNight Sessionは子供たちが寝静まった深夜にこっそり(コロナ太りがそろそろやばいので、筋トレしながら)アーカイブで見ました。

ちょっと脱線しますが、そもそも仙台から技術カンファレンスへ参加しようと思うとやはり1泊2日くらいは必要で、移動にも多くの時間が取られるし、丸1日で結構体力使うんですが、このように自分の生活スタイルに合わせて見たい部分だけ見れて、都合の悪い時間帯のSessionも好きな時間にアーカイブで追いかけられるのは、オンライン開催の強みの一つですね。

8/27参加レポート

Opening

DroidKaigi代表理事の@mhidakaさんから開会の挨拶がありました。

今回オンラインでの開催ということで、オンラインカンファレンスの楽しみ方などが事前に共有され、この後のセッションへ入りやすく誘導してくれていたのが印象的でした。

f:id:asmz0:20200827130319p:plain:w500

以降は2チャンネル並行でセッションが進行するため、私が実際に視聴したセッションについて取り上げます。
と言っても、全てのセッションはYouTubeに上がっているので、詳細についてはそちらを見ていただくことにして、それぞれPOINTや感想など。

Session1: MDCの内部実装から学ぶ 表現力の高いViewの作り方

www.youtube.com

Material Design Component(MDC)が内部でどのように実装されているかを読み解くことで、View実装のベストプラクティスを知る、というアプローチのセッションでした。

なかなか普段の業務でMDCの内部実装を読み解くという機会はないので、その部分について具体例を挙げて詳しく解説頂くことによって納得感を得ながらView実装の重要なポイントを学ぶことができました。

Viewの実装で大切なこと

  • 60fpsを維持することはとても重要
  • レイアウトの処理は重い
  • アニメーションにはTransitionとAnimatorが不可欠

Session2: 自動生成でさくさく実装するユニットテスト

www.youtube.com

テストコードをサクサク書くための便利な仕組みやツール・PlugInなどの紹介、またそのPlugInの作り方を学べるセッションでした。

テストコードを自動生成するアプローチとして以下の4つが挙げられており、上の3つはIntelliJ IDEAの標準機能で実現可能、Parameterizedテスト生成PlugInはIntelliJ IDEAのPlugInとして独自に実装されたものです。

  • Live Template
  • File Template
  • Postfix Completion
  • Parameterizedテスト生成PlugIn

セッション中盤のIntelliJ PlugInの作り方部分については恥ずかしながら話についていけなかったのですが、私自身どうしてもテストコードを書きはじめるモチベーションが上がらない経験が多いので、これくらいIDEのテンプレなどを事前に整備しておければテストコード整備に取り掛かりやすそうだなぁと感じました。

Ask the Speaker / Fireside chat

www.youtube.com

リアルタイムで見れなかったのでアーカイブで見ました。

Ask the Speakerと言っても今回はYouTube Liveなので参加者がリアルタイムで登壇者と話せるわけでもなく、またDroidKaigi初参加なので「Fireside chat」というモノ自体知らなかったため、実は私はこのタイトル見てもどんな内容なのかイメージ出来ていませんでした。

実際に見てみると、Ask the SpeakerはFormやチャットで上がってきた質問などを進行の方が1つずつ取り上げて登壇者の方に聞いていく、というスタイルでしたが、セッション内容をより深掘りした話や、セッションに入りきらなかったようなこぼれ話が飛び出したりと有意義でした。

Fireside chatの方は、居酒屋でAndroidエンジニアの雑談を側で聞いているようなゆるい雰囲気で楽しかったです。

余談:Android StudioのLayout Editorのデフォルトモードは、今回これを見てすぐにSplitに変えました

8/28参加レポート

Session1: Scadeを使って「Swift」で始めるAndroidアプリ開発

www.youtube.com

「Scade」というSwiftを用いたマルチプラットフォーム開発環境についての解説でした。

先に書いた通り、私はAndroidよりiOSアプリ開発経験の方が長くSwiftに書き慣れていることや、業務外でKotlin/MPP, React Nativeなどマルチプラットフォーム開発環境を少し触っていることもあり、非常に興味深く視聴しました。

Scadeは存在すら知らなかったのですが、このセッションを聞いた感じだと思ったより開発環境として整備されており、小規模なアプリであればそれなりに実装できそうだなぁ、という感想です。
特にScadeのAutoLayoutがiOS/Xcodeのそれにかなり似ていることや、ライフサイクルもややiOS寄りな点で、個人的にはとっつきやすそうな印象でした。

ただ、セッション内で不安要素として挙げられてましたが、まだAndroidでの動作が不安定なようなので、実戦投入というよりは個人アプリなどで試すところからかな、という感じですかね。

Session2: KotlinのDelegated Propertiesを活用してAndroidアプリ開発をもっと便利にする

www.youtube.com

独自のDelegated Propertiesをゼロから実装し、それをリファクタリングしていくことによってDelegated Properties自体の理解を深める、というアプローチのセッションでした。

私は実はもともとDelegated Properties自体ちゃんと理解できていなかったのですが、今回のこのゼロから構築していくというアプローチで順を追って仕組みを理解しながら、さらにより良いコードにしていくにはどう考えれば良いか、と言った思考の仕方もセッションで学ぶことができました。

特にセッション終盤、リファクタリング後のコードを見ていただけるとわかる通り、最終的には非常にすっきりしたコードにまとめられることがわかったので、これは是非業務に取り入れていきたいなと思いました。

Ask the Speaker / Fireside chat

www.youtube.com

前日と同じような流れでしたが、2日目のFireside chatでは「オンライン成果発表会」と題した今回のオンライン開催の各種統計情報などが発表されました。

  • Doorkeepers登録者数:457
  • 総再生時間:895(約100人日w
  • 視聴回数:4,700
  • 今回の寄付合計:¥493,000

今回の寄付金額まで全面的に公開してくださるのは本当に誠意を感じますね。

また、来年のDroidKaigiについての言及もありました。まだ具体的には未定とのことですが、オンライン・オフラインそれぞれのメリットを生かした形に持っていけると良いですね。

おわりに

本来は2月に現地へ行って見る予定だったものが、こう言った状況になっても仙台から参加できるというのは本当にありがたい限りだなと今回感じました。

内容としても、普段仙台にいるだけではなかなか聞くことが出来ないAndroidアプリ開発界隈の著名な方々のお話を聞くことができ、非常に有意義でした。
Material Design ComponentやDelegated Propertiesの活用など、これまで手をつけていなかったけどちゃんと利用すれば業務に取り入れられそうなものがあったので、これを機に手を動かしていきたいと思います。

最後に、このようなご時世でかなりのご苦労があったかと思いますが、そんな中で今回開催してくれたDroidKaigi運営の皆様には本当に感謝しています。ありがとうございました!また参加します!

PR

技術カンファレンス繋がりということで告知ですが、今秋仙台で「Go Conference’20 in Autumn SENDAI」が開催される予定となっております!

sendai.gocon.jp

  • 開催日:2020年10月10日(土)
  • 場所:宮城県仙台市青葉区国分町1-4-9 enspace 2F + オンライン配信予定
  • 参加費:無料

本来は今年の夏開催を目指して昨年から準備が進んでおりましたが、昨今の状況を鑑み、開催時期を秋に延期の上、オフライン・オンライン両方を組み合わせた形での開催を予定しております。

なお、弊社仙台オフィスのサーバサイドエンジニア有志が当カンファレンス運営の中心として携わっており、私もたぶん当日お手伝いで会場内をブラブラしている予定です。

オンライン・オフラインそれぞれご参加お待ちしております!