DroidKaigi 2021 前夜祭を開催いたしました
2021 年 10 月 18 日に開催された、『DroidKaigi 前夜祭』に Google 関係者がパネリストとして登壇しました。
このイベントでは、2021 年に発表した Android/Google Play 関連の製品のお話や、I/O 以降に発表された製品・技術関連の最新情報についての内容を中心に Google 関係者が解説をしました。
この記事では、イベント内で解説した内容をまとめます。
Jetpack Compose 1.0 以降の最新情報
Jetpack Compose は、ネイティブ UI をビルドするための Android の最新ツールキットで、Kotlin API を使用して、少ないコードで Android の UI 開発を簡素化し、加速することができます。Google I/O では、株式会社メルカリ様のケーススタディもリリースされ、UI 開発の生産性が 56 % 向上したという実例もございます。今回のイベントでは、その Jetpack Compose の最新アップデートである、1.1.0 についてお話をさせていただきました。
Read More2021 年 10 月 18 日に開催された、『DroidKaigi 前夜祭』に Google 関係者がパネリストとして登壇しました。
このイベントでは、2021 年に発表した Android/Google Play 関連の製品のお話や、I/O 以降に発表された製品・技術関連の最新情報についての内容を中心に Google 関係者が解説をしました。
この記事では、イベント内で解説した内容をまとめます。
Jetpack Compose 1.0 以降の最新情報
Jetpack Compose は、ネイティブ UI をビルドするための Android の最新ツールキットで、Kotlin API を使用して、少ないコードで Android の UI 開発を簡素化し、加速することができます。Google I/O では、株式会社メルカリ様のケーススタディもリリースされ、UI 開発の生産性が 56 % 向上したという実例もございます。今回のイベントでは、その Jetpack Compose の最新アップデートである、1.1.0 についてお話をさせていただきました。
- Jetpack Compose 1.1.0 のアルファ版がリリースされました。Compose は複数のライブラリで構成されており、今回はほとんどのライブラリが 1.1 になります。しかし、複数の Maven グループ、複数の Maven アーティファクトその全てが同一のバージョンを持つとは限りません。Compose 全体としては、必ずしもバージョンが 1 つではないということになります。しかしながら、1.0 および 1.1.0 に関してはほとんどのライブラリのバージョンが揃っています。
- 各ライブラリのアップデート
- compose. compiler, runtime では古いランタイムと新しいコンパイラーの組み合わせをサポートしました
- UI の基礎になる compose.framework では、オーバースクロールのサポートを追加しました。Android 11 以前ではグロー効果が、Android 12 以降ではストレッチ効果が適用されます。
- compose.ui では DpSize とその関連 API が追加されました。また、すりガラス効果などの RenderEffect を使えるようになりました。新しい ModifierLocal を使って、複数の modifier 間にまたがるスコープを定義できます。また、マウスを含むタッチイベントのサポートが強化され、テストで使う performTouchInput の機能が追加されました。
- アニメーションに関するアップデートとして、コンテンツの切り替えを行う AnimatedContent API を新しくリリースしました。また、 コンテンツの出現をアニメーションする API である AnimatedVisibility が @Experimental から安定版へと移行しました。そして、AnimatedVisibility や AnimatedContent のためのオプションである scaleIn / scaleOut が追加されました。また、AnimatedImageVector という、AnimatieDrawable を Compose でも使えるという互換性のためのレイヤーが新しいライブラリとして独立する形となりました。
- Compose Material は分かりやすい機能が新しく入りました。未読の数にバッチをつけるBadged Boxや Navigation Rail、挙動の変更点として、タッチターゲットの最小サイズがデフォルトで正しく適用されるようになりました。TextFieldColorsWithIcons で、状態に基づいてテキストフィールドの外観を変更するのが簡単になりました。
Android Developer Summit 関連セッション
- A deep dive into Jetpack Compose Layouts
- A Compose State of Mind
- Animation Reimagined
- Implementing Material You using Jetpack Compose
Android Studio の最新情報
このセッションでは、Android IDE Android Studio (英語) の Android Gradle Plugin API (AGP) (英語) や Test framework についてについてお話をさせていただきました。公式の強力な Android IDE Android Studio Arctic Fox (2020.3.1) ベータ版 を I/O で発表したあと、7 月に安定版をリリースしました。UI 設計期間の短縮、新しいデバイスへのアプリ拡張、デベロッパーの生産性向上を目的としており、Compose と合わせて使うことで、最新の UI をすばやくデザインすることができます。
- Android Gradle Plugin API (AGP) (英語) に大きな変更が Arctic Fox からありました。Extending AGP の bulid のフローをカスタマイズする方法が追加されました。 AGP 7.0 以前は Task に対してのAPIが提供されており、AGPの実装依存になるため Task の並びや、他 Task の実装が変更になることに対して対応できていませんでいせんでしたが、Artic Fox 以降 では Variant と artifact に対しての API が提供されるようになったため、Task をさわることなく build をカスタマイズできるようになりました。また、finalizeDsl、beforeVariants、onVariants のコールバックが提供されており、コールバックを extend することにより Build flow をカスタマイズできるようになりました。実例は、セッション動画をご覧ください。
- Test についても紹介いたしました。Bumblebee (英語) 以前は Android Studio 上から実行した Instrumentated tests と、Android Gradle Plugin(コマンドラインから)から実行した Instrumented tests で違う Runner を使っていたので、一方の結果がもう一方の結果と違うことが稀にありましたが、Bumblebee からは Android Studio から実行した場合でも同じ Runner を使うようになり、 Arctic Fox で Unit tests の Runner が統一されたことと含めて結果の整合性がとれるようになりました。
- 次に大きな変更として、Unified Test Platform を紹介しました。以前は Nitrogen と呼ばれていた機能郡が Unified Test Platform と名前を変えて、Bumblebee から使用可能になりました。Unified Test Platform とは AGP に abstract layer を定義して Plugin を加える形で開発することができます。AGP とは独立して開発されるので AGP のバージョンアップとは独立して機能追加、バグフィックスなどが可能になりました。
Android Developer Summit 関連セッション
- What’s new in Android Studio
- Make your build faster and more robust with the latest Android Gradle plugin
Google Play & Multi Form Factor の最新情報
このセッションでは、Google Play と Multi Form Factor についてお話をさせていただきました。
Wear OS や大画面対応から、セキュリティ ツールなどのトピックまで幅広くカバーしました。
- Google Play Console 周りのアップデートとして、「リーチとデバイス」という機能がリリースされました。ユーザーと問題の分布(ぶんぷ)を把握することで、どのような仕様にすべきか、どの国でリリースすべきか、何をテストすべきかをより的確に判断できます。
- また、プライバシーとセキュリティ周りのアップデートとして、セーフティ セクションについてもお話をさせていただきました。デベロッパーは、アプリの全体的な安全性を簡単に明示できるだけでなく、ユーザーがアプリをインストールする前に、プライバシーやセキュリティの慣習に関する詳しい情報を提示したり、アプリが収集するデータやその理由を説明したりできます。2021 年 10 月より、デベロッパーは Google Play Console 上で情報の申告を行い、審査を受けることができます。本件に関して、デベロッパーの皆さんが作業を行っている途中で質問が生じる可能性もありますので、お早めに準備を開始されることをお勧めします。
- セキュリティ ツールに関しても、最新情報をお伝えいたしました。従来の SafetyNet Attestation API のアップグレードとしてご紹介しました Play Integrity API (EAP) は、ゲームのバイナリーが改変されていないか、端末そのものが改変されていないか、アプリやゲームが Google Play ストアから適切にダウンロードされたものかどうかなどが確認できる API です。デベロッパーの皆さんが日々行われているセキュリティ対策のための 1 つのツールとして、ご活用いただければと考えています。
- Google Play Billing Library に関しての重要なトピックとして、Google Play Billing を使用する既存アプリのアップデートはすべて、2021 年 11 月 1 日までに Billing Library バージョン 3 または 4 を使用する必要があります。まだご対応いただいていない場合は、購入の承認(Acknowledgement)、再開(Restore)、アカウントの一時停止(Account hold) という 3 つが必須条件となります。
- 購入の承認 (Acknowledgement) : Billing Libray 1 又は AIDL を採用していた方は、アプリのアプリ内の購入から 3 日以内に購入承認をしないと購入がキャンセルされてしまいますので、ご注意ください。
- 再開 (Restore) : キャンセルされた定期購入を再開する場合、以前だとGoogle Developer APIを通じて実装する必要がありましたが、今はそれが必要なくなり、Play Storeアプリへ遷移させることでOKです。
- アカウントの一時停止 (Account hold) : Google Play ストアの残高不足又はクレジットカードの有効期間切れなどの理由でアカウントが使えなくなった場合の処理になります。この場合、ユーザーに通知などの方法でお知らせをし、Play ストアへ遷移させる必要があります。
- 携帯端末ではない、Chrome OS のような大きな画面を対象とした Navigation Rail (英語) や Jetpack Window Manager のトピックもカバーしました。タブレット専用の取り組みとして、Android 12 L という OS が Android Dev Summit 2021 でも発表し、Multitasking updates、Sys UI Surfaces、App Compat mode などの大画面対応のための機能も発表しました。
- Wear OS 3.0 が実現した新しいユーザー体験として Fluid motion、 smooth transitions、Glanceable and user-centric、Harmonious with hardware などが追加されました。
Android Developer Summit 関連セッション
- What’s new in Google Play
- Introducing Play Integrity API: Protect your apps and games
- From Mobile to Wear: Create a Compose app for the wrist
- Large Screens Talk: Building Android UIs for any screen size
ご参加いただきました皆さん、ありがとうございました!Android Developer Summit の動画も、ぜひご視聴ください。