レポート

1,000名を超すAndroidに関わる開発者が集まった DroidKaigi 2019参加レポート

この記事を読むのに必要な時間:およそ 2 分

2019年2月7日から8日の2日間にわたり,ベルサール新宿グランドにてDroidKaigi 2019が開催されました。5度目の開催となる今回も,国内外から1,000名を超える参加者が集うカンファレンスとなりました。今回は一部のセッションに対して同時通訳やライブ配信の実施,またオリジナルのCodelabsが提供されるなど,これまでにない新しい試みもありました。

画像

応募されたセッションは国内外合わせ350件を超え,今回も幅広いジャンルのセッションが採択されました。昨年2018年5月に開催されたGoogle I/O 2018で発表されたAndroid Jetpackに関するセッションや,DroidKaigi公式アプリでも採用されていたマルチモジュールに関するセッション,FlutterやKotlin/Native,PWAといったクロスプラットフォーム開発に関するセッションなど,全部で87のセッションがありました。

本稿ではそれらのセッションから,Navigation Architecture Componentによるアプリ内遷移の管理マルチモジュールプロジェクトでのDagger2を用いたDependency Injectionの2つをピックアップして紹介します。

Navigation Architecture Componentによるアプリ内遷移の管理

このセッションは,昨年のGoogle I/O 2018で発表されたAndroid Jetpackの1つであるNavigation Architecture Componentをテーマにした発表です。5つの原則などの概要の説明から始まり,実際にプロジェクトで利用する際の流れをStep-by-stepで解説し,さらに踏み込んだ内容としてマルチモジュールプロジェクトにおける問題点とその解決策を提示しました。

アプリケーション開発においてほぼ避けて通れない道である画面遷移は,アプリケーションが大きくなればなるほど複雑になりがちです。講演者の@yt_hizi氏は画面遷移において,以下の複雑性に由来する既知の問題があると述べました。

  • FragmentTransactionの取り扱い
  • DeepLinkでのバックスタック形成
  • 画面間の引数渡し
  • Up & Backの制御

Navigation Architecture Componentは前述の問題解決に有用です。Navigation Architecture Componentは,FragmentTransactionやDeepLinkを自動的にハンドリングしてくれることで画面遷移の実装がより簡単になったり,SafeArgsによって前後の画面での値渡しをより安全に行えたり,NavigationEditorによって画面遷移が可視化され直感的に編集可能になるといった特徴を備えています。

Navigationをプロジェクトへ導入することは簡単に行うことができます。セッション内では,Navigationの導入手順を細かく解説していました。流れを簡単にまとめますと,NavigationGraphという,画面とそれらの遷移を記述した,いわゆる地図のようなXMLファイルを用意し,ActivityやFragmentの一部分を手順に沿って修正する,といった形になります。また,画面間でデータを渡す際はSafeArgsという仕組みを用いて安全にデータの受け渡しを実現できます。さらに,Toolbarとの連携やAnimationの指定なども行えるようになっていると@yt_hizi氏は解説していました。

セッションの後半では,マルチモジュール構成における画面遷移に話が進みます。⁠マルチモジュールというのはここ最近のAndroidにおけるトレンド」と@yt_hizi氏が述べているように,機能ごとにモジュールを分割するような構成をよく聞くようになりました。@yt_hizi氏はGitHub上で公開されている2つのプロジェクトを例に挙げそれぞれがマルチモジュール環境においてどのように画面遷移を行っているか,そしてどのようにNavigationを使っているかを解説していました。Navigationを用いる場合は,DroidKaigi2019公式アプリのように,NavigationGraphを共通となるモジュール内に配置するのが現状の解決策であると@yt_hizi氏はまとめています。

著者プロフィール

竹田智(たけださとし)

学生時代にAndroidに出会い,そこから独学でAndroidアプリ開発を経験。2017年に株式会社CyberAgentに新卒で入社後,株式会社AbemaTVに出向しAndroidアプリの開発に従事。

コメント

コメントの記入