2017年3月9日、3月10日の2日間に渡り、ベルサール新宿グランドにてDroidKaigi 2017が開催されました。
DroidKaigi 2017は今回が第3回目の開催で、第1回の400人から600人、800人と順調に参加者数を伸ばしています。またセッション数は今回67セッションに登り、前回に比べて20件ほど増加しました。これは第1回の3倍に近い数字です。
このレポートでは1日目のウェルカムトークと、2日目に行われたYahoo! Japanの毛受崇洋(@takahirom)氏による「How to implement material design animation」を紹介します。
「ウェルカムトーク」
DroidKaigi 2017の開幕は実行委員長の日高正博氏の挨拶から始まりました。DroidKaigiの主旨について「技術情報の共有とコミュニケーションである」と説明しました。その上で、800人という規模のイベントをオンラインではなくオフラインで開催することについて、日高氏は「講演者・聴講者共にトレンドを知り、仕事や趣味における自分の課題意識を共有し、そしてテクノロジーを楽しんでもらいたいという思いがある」と熱く語りました。
また今回のウェルカムトークでは、講演者代表として開幕セッションの1つを担当する講演者の@lvla0805氏、スポンサー代表としてCyberAgent社の藤原聖氏より挨拶がありました。
@lvla0805氏は「私が知っている情報は誰もが知っていて、需要がない」という考えは勘違いだったとし、「あなたにとって当たり前のことは、他の誰かにとってはとても重要な情報かもしれない」とし、ぜひ来年は登壇に挑戦してみてほしいと述べました。
藤原聖氏は3回連続でDroidKaigiのスポンサーをしていることを述べ、「DroidKaigiの主旨に共感しており、スポンサーとして関われることを嬉しく思う」と語りました。
魅力あるセッションの数々
DroidKaigi 2017では非常に魅力的なセッションが数多く行われました。その内容はライブラリの使い方や設計方針、デザインや保守など多岐にわたります。
セッション「How to implement material design animation」
このレポートではその中から興味深かったセッションを1つ紹介します。2日目に行われたYahoo! Japanの毛受崇洋(@takahirom)氏による「How to implement material design animation」です。
Googleがガイドラインを制定し、Androidアプリにおいて現在推奨されたデザインとしてマテリアルデザインが存在します。そのマテリアルデザインのガイドラインには静的な表現だけでなく、動的な表現(モーション)についても記述が存在します。しかし、これらはあくまでも「ガイドライン」であり、その具体的な実装方法については記載されていません。毛受氏はサンプルアプリを用意し、実際にガイドラインに則ったアニメーションの実現とその方法を講演しました。
まず毛受氏はGoogle社のデザインガイドラインの記述を引用し、アニメーションを利用する目的を「ユーザーが考えることを減らし、アプリをより分かりやすくする」ためだと述べました。その上で、マテリアルデザインをどのようにアニメーションとして表現するのかという本題に入りました。
マテリアルデザインのアニメーションで守るべき4原則
マテリアルデザインにおけるアニメーションでは守らなければならない以下の4原則があり、それらを満たすことが重要になってくると毛受氏は述べます。
- Responsive - 迅速に反応すること
- Natural - 自然な動きであること
- Aware - 他のマテリアルと協調すること
- Intentinal - 意図があること
これらを満たしつつアニメーションさせる上で必要な知識として、ガイドラインから以下の要素について説明を行いました。
- 高度とシャドウ
- 継続時間とイージング
- 運動
- マテリアルの変形
- コレオグラフィ
- クリエイティブなカスタマイズ
- パターン - 画像の読み込み
- パターン - 画面遷移
さらにアニメーションを実現する上でShared Element Transition APIを使う機会が増えるため、その掘り下げとしてデバッグ方法やチェックリストについても触れました。
- デバッグ方法
- 現在実行中のTransition情報を表示し、アニメーション以外の形式で認識する
- 開発者オプションのアニメーションスケールを用いてアニメーションを観測する
- 点滅するだけのTransitionを用いて、期待するTransitionがいつ動くのか確認する
- チェックリスト
- themeのwindowActivityTransitionsのフラグをチェックする
- ImageViewのscaleTypeをいじってみる
- Viewの背景色を確認する
- Transitionの開始を待つ必要がある実装かどうか
- Fade系ではandroid.transition.Visibilityを継承しているか
- ShareでないWindowTransitionの場合に、VisibilityやTransitionSetを継承したTransitionになっているか
またAnimatedVectorDrawableの作成ではAndroidIconAnimatorを用いると良いことも共有しました。
マテリアルデザインをサポートする上で課題となってくる、低いAPIレベルのサポートについても話がありました。毛受氏はAndroid 5.0未満のサポートについて以下の3つの選択肢を示しました。
- そもそもAndroid 5.0未満をアプリとしてサポートしない
- Android 5.0未満ではアニメーションをしない
- サードパーティー製ライブラリを用いる
現在のAndroid OSシェアの観点から、Android 5.0未満を対応端末から外す選択肢が現実的でないことを述べ、「アニメーションをしない」方式と「サードパーティー製ライブラリを用いる」方式のどちらかをうまく使い分けることになるだろうと結論付けました。
最後に「マテリアルデザインのアニメーションは実現可能である」として毛受氏は自身の講演を締めました。驚くことに、発表スライドにもマテリアルデザインのアニメーションを取り入れており、発表スライドを見るだけでもアニメーションのイメージが掴めるような非常に勉強になるセッションとなりました。
まとめ
第3回開催となるDroidKaigi2017は国内外を含む800人の参加者、67セッションが集まりました。立ち見が発生したり、部屋に入り切らずにドアが閉められないセッションもあるなど、非常に熱気溢れる回となりました。
このレポートでは毛受氏のセッションを1つ取り上げて紹介しましたが、どのセッションも非常に魅力的で、興味深い内容が集まっていました。まだまだ進化し続けるAndroidの技術について、800人という人間が意見を共有・交換した非常に濃い2日間となりました。
個人的に驚いた点として、平日開催にも関わらず非常に多くの方が1日目から参加していたこと、またオフィスアワーや企業ブースでの議論や意見交換が非常に活発であったことが挙げられます。
ウェルカムトークで@lvla0805氏が述べたように、自分にとって当たり前の情報は他の開発者にとって有益かもしれません。この記事を読んだ皆さんも、次回のDroidKaigiではぜひセッションに応募し、参加してみてはいかがでしょうか。
(写真協力:横幕圭真、Yuki Fujisaki、Iwata Naoki)