この記事は Android Developers Team による Android Developers Blog の記事 " The new Google Pixel Watch is here - start building for Wear OS! " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2022 年 10 月 6 日の Made by Google イベント (英語) を見た方は、Pixel ポートフォリオ (英語) の最新デバイスをご覧になったはずです。スマートフォンの Pixel 7 と Pixel 7 Pro に加えて、2 つの最新フォーム ファクタを紹介しました。それが、Google Pixel Tablet1 (Google のまったく新しいタブレット、2023 年発売予定)と、Wear OS by Google を搭載した最新デバイス Google Pixel Watch です。 このスマートウォッチ販売が始まった今こそ、これからのホリデーシーズン中に多くの消費者の手に渡ることになる新しいスマートウォッチにアプリが対応する絶好のタイミングです。ここでは、Wear OS の最新アップデート、皆さんのアプリの体験を向上する方法、美しく効率的な Wear OS アプリの開発に着手する方法についてお知らせします。
Google Pixel Watch には Wear OS が搭載されており、プラットフォームの最新アップデートである Wear OS 3.5 が含まれています。この最新バージョンの Wear OS を利用できる Wear OS デバイスは他にもあります。新しい Wear OS は、スムーズかつ簡単に操作できるように設計されており、タップやスワイプ、音声コマンドで必要な情報にアクセスできます。また、刷新された UI と高度な通知機能が搭載されているので、ユーザーが一目で確認できる情報が増えました。
こうした新機能をベースとして存分に活用しながら開発を進められるというメリットを実感していただくため、少ない開発時間とコード行数でアプリを実行できる最新の宣言型 UI ツールキット、Compose for Wear OS を2022 年にすでにリリースしています。すべて Kotlin で構築されており、API が安定版であり、開発に利用できることを示すバージョン 1.0 (英語) になっています。1.0 リリースの内容は次のとおりです。
Wear OS 向けのアップデートに含まれるもう 1 つのうれしい内容は、短時間でタイルを作成できる Tiles Material ライブラリ (英語) のリリースです。Tiles Material ライブラリには、Wear OS 向けの最新マテリアル デザインに対応した既製のマテリアル コンポーネントやレイアウトが含まれています。この使いやすいライブラリには、ボタン用コンポーネントや進捗状況を示すアークなどが含まれているため、ゼロからコンポーネントを作る必要がなくなります。さらに、既製のレイアウトが使えるので、タイル開発を大幅に加速でき、タイル向けのマテリアル デザイン ガイドラインに確実に従うことができます。
また、先日リリースされた Android Studio Dolphin にはさまざまな Wear OS 機能が追加されているので、アプリ、タイル、ウォッチフェイスがすべての Wear OS 3 デバイスに対応することができます。Wear OS エミュレータ ツールバーのアップデート、直感的なペア設定アシスタント、ウォッチフェイスやタイル、ウォッチフェイスの追加機能をすばやくテストできる新しいダイレクト サーフェス起動機能などが含まれ、WearOS 向けの高度なアプリをこれまでになく簡単かつ効率的に作れるようになっています。
皆さんのアプリをはじめとして、Google アプリや Spotify、Strava、Bitmoji、adidas Running、MyFitnessPal、Calm など、さまざまなアプリが Wear OS 向けにすばらしい体験を提供しています。2022 年は、Todoist (英語) 、PeriodTracker、Outdooractive (英語) がアプリを Compose で再構築し、アプリの開発をシンプルかつ効率的にできるツールや API のメリットを活用しています。Outdooractive は、Compose for Wear OS を使うことで、チームの開発時間を 30% 削減できました。
Google Pixel Watch の発表と合わせて、Google 製アプリによる新たな体験 も提供します。ここでは、すばらしいユーザー エクスペリエンスを実現するもう 1 つの方法として、新しいハードウェア機能が使われています。Google フォトでは、お気に入りの写真を Google Pixel Watch のウォッチフェイスに設定できるようになります。Google Pixel Watch にはカスタマイズ可能な 19 個のウォッチフェイスが搭載されており、各ウォッチフェイスで、たくさんのカスタマイズ オプションが提供されています。Google アシスタント (英語) も搭載されているので、Google Pixel Watch ユーザーは Wear OS アプリや内蔵の Google アシスタント機能を使ってお気に入りのアプリを操作できます。たとえば、Google Home の最新アップデートでは、Wear OS アプリを使うか、時計に「Hey Google」と話しかけることで、スマートホーム デバイスを簡単に制御できます。また、温度を調整したり、来客や配達があったときに Nest ドアベルから通知を受け取ったりすることなど、あらゆる操作が可能です。2
最新の Wear OS プラットフォームやハードウェアのアップデートを活用すれば、健康&フィットネス アプリにたくさんのチャンスが生まれます。Google Pixel Watch には、プロセッサ レベルに至るまで最適化されたオンデバイス機械学習による正確な心拍数トラッキングなど、Fitbit のすばらしい健康&フィットネス機能が含まれており、Google Pixel Watch で呼吸数、心拍数の変動、睡眠の質といった主要な指標を把握できます。このようにデータの質が向上しているので、健康&フィットネス アプリが有意義な情報や体験をユーザーに提供できる場面が増えています。
Wear OS と Google Pixel Watch のアップデートや機能強化により、目に見える形でアプリを差別化できるようになっています。さまざまなアプリが、こういった機能を使ってユーザーを喜ばせています。皆さんもぜひお試しください。
すばらしいデバイスがすでにそろっている Wear OS エコシステムに、最新デバイスの Google Pixel Watch が加わります。API やツールの改善から刺激的な新しいハードウェアまでがそろった今こそ、Wear OS アプリの開発に着手する絶好のチャンスです。Compose for Wear OS 向けの開発を始めるには、こちらの学習パスの順を追った説明をご覧ください。それからクイック スタートガイドなどのドキュメントを確認し、Wear OS 向けの Compose の Codelab でハンズオン形式での実習に挑戦しましょう。
さらに詳しい情報については、Google I/O の Wear OS セッション (動画/英語) をご覧ください。また、まもなく開催される Android Developer Summit (英語) の基調講演やテクニカル セッションで、Wear OS の最新の重要な情報をお聴きください。*日本語字幕は、YouTube の自動字幕機能から日本語を選択してください
Made by Google についてのお知らせをいち早く知りたい方は、こちらの公式ブログ (英語) をご覧ください。Pixel エコシステムに加わるもう 1 つのすばらしいフォーム ファクタである Google Pixel Tablet 向けに開発を始めたい方は、タブレット向けにアプリを最適化する方法 (英語) をご覧ください。
免責事項 :
1. Google Pixel Tablet は、米連邦通信委員会などの規制機関の規則によって義務づけられている認可を受けていません。このデバイスは、義務づけられている法的な認可が得られるまで、販売などの方法で流通されない可能性があります。
2. 対応するスマートホーム デバイス(別売)が必要です。
この記事は Jolanda Verhoef による Android Developers Blog の記事 " Jetpack Compose 1.2 is now stable! " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2022 年 7 月 27 日、Android の最新ネイティブ UI ツールキットである Jetpack Compose のバージョン 1.2 をリリースしました。そして、引き続きロードマップを構築しています。今回のリリースには、ダウンロード可能なフォント、遅延グリッドといった新機能に加え、フォーカス、マウス、入力ハンドリングの改善といった、タブレットや Chrome OS 向けの機能強化が含まれています。
スマートフォン、タブレット、折りたたみ式向けに新しい Android アプリを開発する場合、私たちは Compose を推奨しています。今回は Compose for Wear OS 1.0 (英語) もリリースしたので、Wear OS アプリ開発でも Compose が最適な手段になります。
Twitter エンジニアリング チームなどのデベロッパーは、Compose を使って開発のスピードを上げています。
「Compose によって生産性が劇的に向上しました。コンポーズ可能な関数を書くのは、カスタムビューを作成するよりもはるかに簡単で速く、デザイナーの要件もたやすく満たせます」
Compose 1.2 には、スマートフォン、タブレット、折りたたみ式向けのたくさんのアップデートが含まれています。試験運用版から安定版になった新しい API があり、新しいバージョンの Kotlin もサポートされています。サンプル、Codelab、Accompanist ライブラリ、MDC-Android Compose Theme Adapter はすでにアップデートされ、Compose 1.2 対応になっています。
注 : Compose Compiler ライブラリを 1.2 にアップデートするには、Kotlin 1.7.0 が必要です。今後、Compiler のリリースは他の Compose ライブラリのリリースから切り離されます。この点に関する詳しい説明は、Jetpack Compose ライブラリが独立したバージョニングに関するブログ記事をご覧ください。
複数の機能や API が安定版として追加されました。主なものを紹介します。
Compose に新機能を導入する作業も続いています。いくつかの主な機能を紹介します。
@OptIn (英語) を使って新しい API を試し、フィードバックをお寄せください!
コミュニティから報告されたたくさんの問題を修正しました。主なものを紹介します。
Issue Tracker にバグレポートや機能リクエストをお送りいただき、大変感謝しています。Compose の改善や、皆さんに必要な API を作るうえで役立っています。Compose をより良いものにするために、今後もフィードバックをお願いします!
次に登場するのは何でしょうか。現在検討中または作業中の機能は、更新版のロードマップで確認できます。たとえば、項目の遅延追加や遅延削除時のアニメーション、フロー レイアウト、テキスト編集の改善などです。
Jetpack Compose は、皆さんから寄せられた要望をもとに進化し続けます。すでに多くのアプリで Jetpack Compose が本番環境として使われているのを見て、とてもうれしく思っています。そして、Jetpack Compose でアプリ開発がどのように改善したかを、皆さんの多くが共有しています。皆さんの次のアプリのリリースを楽しみにしています!
Compose をお楽しみください!
この記事は Jolanda Verhoef による Android Developers Blog の記事 " Independent versioning of Jetpack Compose libraries " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2022 年 6 月 29 日より、さまざまな Jetpack Compose ライブラリが独立したバージョニング スキームに移行します。これにより、androidx.compose.compiler や androidx.compose.animation などのサブグループが個別のリリース サイクルに従えるようになります。
androidx.compose.compiler や androidx.compose.animation
これらのライブラリに独立したバージョニングを導入することで、これまで暗黙的に結合されていた依存関係が切り離されます。そのため、アプリの段階的なアップグレードがしやすくなり、最新の Compose 機能を維持できるようになります。
バージョンが 1 つになっていた Compose から最初に切り離されるライブラリは、Compose Compiler です。2022 年 6 月 29 日より、Kotlin 1.7.0 をサポートする 1.2.0 安定版をリリースしました。このリリースには、Compose UI ライブラリおよび Compose Runtime ライブラリとの下位互換性と上位互換性の両方が備わっています。つまり、Compose Compiler を 1.2.0 安定版にアップグレードして Kotlin 1.7.0 を使いつつ、他の Compose ライブラリは 1.1.0 安定版などの現行バージョンのままにすることができます。
アプリで使っている Compose Compiler のバージョンをアップグレードするには、build.gradle ファイルで kotlinCompilerExtensionVersion を指定します。
build.gradle
kotlinCompilerExtensionVersion
android { composeOptions { kotlinCompilerExtensionVersion = "1.2.0" }}
android {
composeOptions {
kotlinCompilerExtensionVersion = "1.2.0"
}
Compose と Kotlin は密接に結びついており、Kotlin のバージョンをアップグレードするために Compose Compiler のアップデートが必要になるというフィードバックがありました。Compose と Kotlin の両方で最も優れた最新の機能(とバグの修正)を使っていただけるように、Compose Compiler の安定版は頻度を上げてリリースする計画です。つまり、Compose Compiler のバージョン番号は、他のほとんどの Compose ライブラリよりも上がるペースが早くなります。Compose Compiler では上位互換性と下位互換性の両方が確保されるので、新しいバージョンがリリースされたら、すぐにアップグレードできます。
Compose Compiler は Kotlin コンパイラ プラグインなので、お使いの Kotlin のバージョンと互換性のあるバージョンの Compose Compiler を使う必要があります。Compose-Kotlin 互換性マップを参考に、プロジェクトに合ったバージョンを選んでください。
Compiler ライブラリを異なるバージョニング スキームに移行することは、Compose ライブラリ グループ間のバージョン依存を解消するための第一歩です。今後、他の Compose ライブラリでも新しい安定版リリースが公開され、Compose Compiler とは別にそれぞれのリリース サイクルに従うことになります。
独立したバージョニングに対応し、さっそく最新バージョンの Compose Compiler と Kotlin (英語) を使ってみましょう。
皆さんが Compose で作るアプリを楽しみにしています。
この記事は Andrew Flynn & Jon Boekenoogen による Android Developers Blog の記事 " Play Time with Jetpack Compose " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2020 年、Google Play ストアのエンジニアリング チームのリーダー陣は、ストアのショーウィンドウにあたる部分全体の技術スタックを再構築するという大きな決断を下しました。既存のコードは 10 年以上前のもので、無数の Android プラットフォーム リリースや機能アップデートを経て、大きな技術的負債を抱えていました。デベロッパーの生産性やストア自体のユーザー エクスペリエンスとパフォーマンスに悪影響を与えることなく、数百名のエンジニアが開発できるようにスケールアップできる新しいフレームワークが必要でした。
ネットワーク レイヤからピクセルのレンダリングに至るまで、ストアのあらゆるものを更新するため、複数年にわたるロードマップを作成しました。その一環として、インタラクティブ性とユーザーの快適さを目標とした最新の宣言型 UI フレームワークも採用したいと考えました。さまざまな選択肢を分析した結果、まだアルファ版にもなっていなかった Jetpack Compose を使うという、(当時としては)大胆な決断をすることになりました。
それ以来、Google の Google Play ストアチームと Jetpack Compose チームは、ストアの具体的なニーズを満たせるバージョンの Jetpack Compose を実現するため、非常に密接な連携のもと、リリースや改善を重ねてきました。この記事では、移行のアプローチやその過程で明らかになった課題や利点について説明し、多くのエンジニアが関わるアプリで Compose を採用するとはどういうことかについて共有したいと思います。
新しい UI レンダリング レイヤとして Jetpack Compose を検討するときの最優先事項は次の 2 つでした。
Google Play ストアはすでに 1 年以上 Jetpack Compose で UI のコードを記述しており、Jetpack Compose によって UI 開発がこれまで以上にシンプルになっていることを実感しています。
特にうれしいのは、UI の記述に必要なコードがかなり減ったことで、場合によってはコードが最大 50% 少なくなったことです。これが実現できたのは、Compose が宣言型 UI フレームワークであることに加え、簡潔な Kotlin を活用できるからです。カスタムの描画やレイアウトを作成する際も、ビューをサブクラス化してたくさんのメソッドをオーバーライドする必要はなく、シンプルな関数呼び出しで実現できます。
評価テーブルを例に説明しましょう。
ビューを使う場合、このテーブルは以下の要素で構成されます。
Compose を使う場合、このテーブルは以下の要素で構成されます。
@Composable
「そうは言っても、ライブラリの依存関係でビューが提供される場合どうすればいいのか」と疑問に思う方もいらっしゃるかもしれません。たしかに、すべてのライブラリ所有者が Compose ベースの API を実装しているとは限りません。私たちが最初に移行をしたときは特にそうでした。しかし、Compose では ComposeView と AndroidView API によって、ビューを簡単に利用できる相互運用性が実現されています。ExoPlayer (英語) や YouTube の Player などの人気ライブラリは、この方法によって問題なく統合できました。
Google Play ストアチームと Jetpack Compose チームは、Compose がビュー フレームワークと同じくらい速くジャンクなしで動作できるようにするため、密接に連携しました。Compose は Android フレームワークの一部というよりはアプリにバンドルされるものなので、これは難しい要件でした。画面上の個々の UI コンポーネントのレンダリングは高速でしたが、アプリが Compose フレームワーク全体をメモリに読み込むために必要な時間をすべて合わせれば、かなりの時間になりました。
Google Play ストアで Compose を採用するうえで、特に大きなパフォーマンス改善に貢献したのはベースライン プロファイルの開発でした。以前から利用できたクラウド プロファイルもアプリの起動時間の短縮に役立ちますが、これが利用できるのは API 28 以降に限られ、頻繁な周期で(毎週)リリースされるアプリにとっては効果的ではありません。この問題に対応するため、Google Play ストアチームと Android チームが連携して、ベースライン プロファイルの開発にあたりました。ベースライン プロファイルは、デベロッパーが定義し、アプリの所有者が指定してバンドルできるプロファイルです。アプリに同梱され、クラウド プロファイルとは完全な互換性があり、アプリレベルに限定して定義することも、ライブラリレベルで定義することもできます(Compose を採用すると、このプロファイルもついてきます!)。ベースライン プロファイルをロールアウトすることで、Google Play ストアの検索結果ページの最初のレンダリング時間は 40% 短縮されました。これは大きな成果です。
Compose は、特にスクロールの際に効率的なレンダリングをします。その中核をなす仕組みとなっているのが、UI コンポーネントの再利用です。Compose は、スキップできることがわかっている Composable の再コンポーズをできる限りスキップしようとします(不変である場合など)。しかし、すべてのパラメータが @Stable (英語) アノテーション要件を満たしている場合は、デベロッパーが強制的に Composable をスキップ可能にすることもできます。Compose のコンパイラでも、特定の関数をスキップできない理由を説明した便利なガイドが提供されています。Google Play ストアでは、スクロールが発生する状況で頻繁に再利用される UI コンポーネントを作りましたが、不要な再コンポーズが積み重なってフレーム時間が足りなくなり、ジャンクにつながるという状況が発生しました。そこで、デバッグ設定でもそのような再コンポーズを簡単に見つけることができるように、Modifier を作成しました。この手法を UI コンポーネントに適用することで、ジャンクを 10-15% 減らすことができました。
@Stable
Modifier
Modifier による再コンポーズの視覚化の例。青(再コンポーズなし)、緑(1 回の再コンポーズ)
Google Play ストア アプリの Compose を最適化するうえで、もう 1 つの重要な要素となったのが、アプリ全体の一連の移行戦略を詳細に作成したことです。最初に組み込みの実験をしたとき、「二重スタック問題」に直面しました。これは、1 つのユーザー セッション内で Compose とビューの両方のレンダリングを実行すると、特にローエンドのデバイスにおいて、メモリに大きな負荷がかかるという問題です。これはコードを同じページに展開した場合だけでなく、異なるスタックのそれぞれに 2 つのページ(Google Play ストアのホームページと検索結果ページなど)が存在する場合にも発生しました。これに起因する起動の遅さを解消するには、ページを Compose に移行する順番やスケジュールについて、具体的な計画を立てることが重要でした。さらに、アプリが完全に移行されるまでの穴埋めとして、よく使うクラスの短期的なプリウォーミングを追加することも有用であることがわかりました。
Compose は Android フレームワークにバンドルされていないので、Google Play ストアチームが Jetpack Compose に直接的に関与する手間も少なくすみました。その結果、短い時間でデベロッパーに役立つ改善をすることができました。Jetpack Compose チームとの共同作業で、LazyList のアイテムタイプのキャッシュのような機能追加をしたり、無駄なオブジェクトの割り当てなどに関する簡単な修正をすばやくしたりすることもできました。
Google Play ストアで Compose を採用したことで、チームのデベロッパー満足度は大幅に上昇し、コードの品質と健全性も大きく向上しました。Google Play ストアの新機能は、すべてこのフレームワーク上に構築されています。Compose はアプリの速度向上や利便性に貢献しています。Compose への移行戦略の性質上、APK サイズの変化やビルド速度は細かく測定できませんでしたが、可視化できたものについてはすべて順調に進んでいます。
Compose は Android UI 開発の未来です。Google Play ストアの事例から言うと、これ以上すばらしいものはありません!
この記事は Florina Muntenescu による Android Developers Blog の記事 " Jetpack Compose 1.1 is now stable! " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
私たちは、Android の最新ネイティブ UI ツールキット、Jetpack Compose のロードマップを実現する作業を続けており、2022 年 2 月 9 日にバージョン 1.1 をリリースしました。今回のリリースには、フォーカス処理の向上、タッチ ターゲットのサイズ調整、ImageVector のキャッシュ、Android 12 のストレッチ オーバースクロールのサポートなどの新機能が含まれています。さらに、Compose 1.1 では、これまで試験運用版だったたくさんの API が安定版になっているほか、より新しいバージョンの Kotlin もサポートされています。すでにサンプル、Codelab、Accompanist ライブラリもアップデートしており、Compose 1.1 と合わせて利用できるようになっています。
Compose 1.1 に ImageVector のキャッシュ機能を導入し、パフォーマンスを大幅に向上させています。painterResource API にキャッシュ機構を追加しており、解析した ImageVector のすべてのインスタンスを、与えられたリソース ID やテーマと合わせてキャッシュできるようになっています。このキャッシュは、構成が変わると無効になります。
Compose 1.0 と比較した場合、マテリアル コンポーネントのレイアウトでは、マテリアルのアクセシビリティ ガイドライン(英語)に記載されているタッチ ターゲット サイズ(英語)を満たすようにレイアウト領域が拡大されます。たとえば、RadioButton のタッチ ターゲットは、最小サイズの 48x48 dp に拡大されます。RadioButton のサイズをそれ以下に設定した場合も同様です。これにより、Compose のマテリアルとマテリアル デザイン コンポーネントの動作が一致し、ビューと Compose が共存しても、動作の一貫性が保たれます。また、この変更により、Compose のマテリアル コンポーネントを使って UI を作成すれば、タッチ ターゲットのアクセシビリティ最低要件が確実に満たされるようになります。
この変更によって既存のレイアウト ロジックが壊れる場合は、LocalMinimumTouchTargetEnforcement (英語) を false に設定することで、この動作を無効化できます。ただし、アプリのユーザビリティが低下する可能性があることを認識したうえで、慎重に利用するようにしてください。
RadioButton のタッチ ターゲットの更新
左 : Compose 1.0、右 : Compose 1.1
いくつかの API が試験運用版から安定版になっています。主なものを紹介します。 (以下、リンク先はすべて英語)
@OptIn (英語) を使うと、新しい API を試すことができます。ぜひフィードバックをお願いします!
注 : Compose 1.1 を使うには、Kotlin 1.6.10 が必要です。詳しくは、Compose と Kotlin の互換性マップをご覧ください。
次に登場するのは何でしょうか。現在検討中または作業中の機能は、更新版のロードマップで確認できます。たとえば、遅延項目アニメーション、ダウンロード可能フォント、移動可能コンテンツなどです。
Jetpack Compose は安定版で、本番環境で利用できます。また、要望が寄せられた機能を追加する作業も続いています。すでに多くのアプリで Jetpack Compose が本番環境として使われ始めているのを見て、とてもうれしく思っています。皆さんが開発したアプリを見るのが、待ち遠しくてたまりません。
アルファ版やベータ版を通して Issue Tracker (英語) にバグレポートや機能リクエストをお送りいただき、大変感謝しています。Compose の改善や、皆さんに必要な API を作るうえで役立っています。Compose をよりよいものにするために、今後もフィードバックをお願いします!
この記事は Maru Ahues Bouza による Android Developers Blog の記事 " Beta 1 Update for 12L feature drop! " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
昨年 10 月の Android Dev Summit では、タブレット、折りたたみ式、Chromebook などの大画面デバイスが成長を続けていることをお知らせしました。こういったデバイスで、新しい Jetpack API やツール、ガイドを通して優れたアプリ エクスペリエンスを構築しやすくする取り組みについてもお話ししました。さらに、大画面向けに構築された Android 12 のフィーチャー ドロップである 12L のデベロッパー プレビューについても紹介しました。
12L では、大画面向けのシステム UI を最適化して磨きをかけ、マルチタスクをさらに強力で直感的なものにし、何もしなくても見栄えのよいアプリになるように互換性サポートを改善しています。12L には、いくつかのデベロッパー向け新 API が含まれています。たとえば、空間オーディオやドラッグ&ドロップ関連のユーザー補助の改善などです。
12L の最初のベータ版は昨年 12 月にリリースしました。このフィーチャー ドロップは、今年初めに公開する予定です。皆さんのアプリを対応させるうえで、テストやフィードバックにご利用ください。Android Studio で Android エミュレータを設定すると、新しい大画面機能を試すことができます。12L はスマートフォンにも対応しています。こちらから登録すると、サポート対象の Pixel デバイスに 12L のベータ版 1 をインストールできます。Android 12 ベータ プログラムに引き続き登録している方は、自動的に 12L のアップデートを取得します。Lenovo との連携により、12L は Lenovo Tab P12 Pro タブレットでも試すことができます。利用可能なビルドやサポートに関する詳細は、Lenovo のサイト(英語) をご覧ください。
ベータ版 1 ビルドには、機能やユーザー エクスペリエンスの改善に加え、最新のバグの修正、最適化、2021 年 12 月のセキュリティ パッチが含まれています。デベロッパー向けの機能としては、すでに API は確定しているので、ベータ版 1 には正式版の 12L API(API レベル 32)、アップデートされたビルドツール、テスト用のシステム イメージが含まれています。つまり、アプリで 12L の機能をテストするために必要なものがすべてそろいます。
12L では、通知、クイック設定、ロック画面、概要、ホーム画面など、大画面デバイスの UI を洗練させることに集中的に取り組んでいます。たとえば、600dp 以上の画面では、スペースを有効活用するため、通知シェードやロック画面などのシステム領域で新しい 2 列レイアウトを利用します。
2 列レイアウトでは表示内容が多くなり使いやすさが向上
マルチタスクもさらに強力で直感的なものに進化しています。12L には、大画面用の新しいタスクバーが含まれており、ユーザーは即座にお気に入りのアプリに切り替えたり、ドラッグ&ドロップして分割画面モードに切り替えたりすることができます。なお、Android 12 以降では、アプリがサイズ変更可能かどうかに関係なく、どんなアプリでも分割画面モードで起動できます。分割画面モードでアプリをテストすることを忘れないようにしましょう。
アプリをドラッグ&ドロップして分割画面モードに
さらに、互換性モードの外観と安定性を改善し、レターボックス表示の際のユーザー エクスペリエンスを向上させるとともに、デフォルトでアプリの見栄えがよくなるようにしています。アプリで大画面向けの最適化が済んでいない場合でも、新しいレターボックス表示のテストは行うようにしてください。
大画面向けにアプリを最適化する際に、優れたユーザー エクスペリエンスを簡単に実現できる最新の API やツールをいくつか用意します。
以上の機能の詳しい内容や、その他の API やツールについては、大画面デベロッパー リソースをご覧ください。
12L フィーチャー ドロップは今年始めにデバイスに配信される予定なので、今がアプリを大画面向けに最適化する絶好の機会です。デベロッパーの皆さんには、さまざまなサイズのウィンドウの分割画面モードで、アプリの動作を確認しておくことを強くおすすめします。まだアプリを最適化していない方は、さまざまな画面の向きでどのように表示されるかを確認し、必要に応じて新しい互換性モード関連の変更点を試してみてください。
大画面機能を試してみる一番簡単な方法は、折りたたみ式またはタブレットの設定で Android Emulator を使うことです。こちらにすべての設定手順が記載されているので、ご覧ください。
大画面デバイスに 12L を書き込むこともできるようになっています。Lenovo との連携により、Lenovo Tab P12 Pro でも 12L のプレビュー ビルドを試すことができます。現時点で、Lenovo はデベロッパー プレビュー 1 ビルドを提供しています。今後数週間のうちにアップデートが公開される予定です。利用可能なビルドやサポートなど、完全な情報は Lenovo の 12L プレビュー サイト (英語) をご覧ください。
12L はスマートフォンにも適用されます。小さな画面では大画面機能を確認できませんが、ぜひこのフィーチャー ドロップによる最新の改善点をお試しいただければと思います。サポート対象の Pixel デバイスをこちらから登録すると、最新の 12L ベータ版アップデートを OTA (無線)で受け取ることができます。Android 12 ベータ プログラムに引き続き登録している方は、自動的に 12L アップデートを受け取ります。
12L の詳細やリリース スケジュールは、12L デベロッパー サイトをご覧ください。問題点やリクエストはこちらから報告できます。いつものように、皆さんのフィードバックをお待ちしています!
Reviewed by Tamao Imura - Developer Marketing Manager, Google Play
この記事は Marcel Pintó Biescas による Android Developers Blog の記事 " Announcing Jetpack Glance Alpha for app widgets " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android 12 では、多くの Android ユーザーにとって重要な機能であるアプリ ウィジェットを刷新し、より便利で美しく、そして見つけやすくしています(84% のユーザーが少なくとも 1 つのウィジェットを使っています)。先日、アプリ ウィジェットの構築をさらに容易にするために、Jetpack Glance の最初のアルファ版をリリースしました。Jetpack Glance は、Jetpack Compose のランタイムをベースに作られた新たなフレームワークで、ホーム画面などで利用できるアプリ ウィジェットをすばやく簡単に構築できるように設計されています。
ぜひ試してみて、フィードバックをお寄せください。
Glance は、Jetpack Compose と同じように最新の宣言型 Kotlin API を提供し、美しくレスポンシブなアプリ ウィジェットを少ないコードで実現します。
Glance の “Hello World” ウィジェット サンプル
class GreetingsWidget(private val name: String): GlanceAppWidget() { @Composable override fun Content() { Text(text = "Hello $name") }} class GreetingsWidgetReceiver : GlanceAppWidgetReceiver() { override val glanceAppWidget = GreetingsWidget("Glance")}
class GreetingsWidget(private val name: String): GlanceAppWidget() {
override fun Content() {
Text(text = "Hello $name")
class GreetingsWidgetReceiver : GlanceAppWidgetReceiver() {
override val glanceAppWidget = GreetingsWidget("Glance")
Glance は、“Glanceables” (一目で把握できる)な操作を作成する Composable の基本セットを提供します。今回はまず、アプリ ウィジェットのコンポーネントを提供しますが、今後さらに追加する予定です。Glance は、Jetpack Compose ランタイムを使って Composable (英語) を実際の RemoteView (英語) に変換し、それをアプリ ウィジェットに表示します。
図: Glance の構造
つまり、Glance を使うには Compose を有効にする必要があります。ランタイム、グラフィック、ユニット UI の各 Compose レイヤーを使用しますが、Jetpack Compose の他の既存の UI 要素を直接使うことはできません。ただし、アプリの状態などのロジックは、Glanceables UI を作成する際に共有できます。
今回の初回リリースでは、アプリ ウィジェットを構築するためのメイン API を導入します。また、既存の RemoteView との相互運用性が提供されます。
以下に、このライブラリが提供する内容の概要をまとめます。
GlanceAppWidget
GlanceAppWidgetReceiver
Box
Row
Column
Text
Button
LazyColumn
Image
Spacer
GlanceModifier
Action
actionStartActivity
actionRunCallback
actionStartService
actionStartBroadcastReceiver
ActionParameters
SizeMode.Single
SizeMode.Exact
SizeMode.Responsive
GlanceStateDefinition
GlanceAppWidget state
LocalContext
LocalState
LocalGlanceId
LocalSize
RemoteViews
AndroidRemoteViews
現在は、デフォルト テーマや Android Studio サポートの強化など、さらなる機能の追加作業を進めています。今後の新規リリースにご期待ください。
注: minSDK は 21 ですが、現在は SDK v23 までの互換性しかサポートしていません。
クイックスタートとして、GitHub のサンプルをご覧ください。Glance は最新の安定版 Android Studio (英語) で動作しますが、Compose のランタイムを使っているので、まず Jetpack Compose ドキュメントの手順に従ってセットアップを行ってください。
また、さらに詳しい説明を見たい方は、AndroidX リポジトリのデモをご覧ください。
ResponsiveAppWidget.kt デモ
アルファ版は API に皆さんの要望を反映させるチャンスなので、フィードバックを通して感想をお寄せください。
ぜひ Glance と Compose を使ってみてください!
この記事は Dave Burke による Android Developers Blog の記事 " 12L and new Android APIs and tools for large screens " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
タブレット、折りたたみ式デバイス、ChromeOS デバイスを合わせると、2 億 5000 万台を超える大画面デバイスが Android を実行しています。ここ 12 か月だけでも、1 億台近くの新しい Android タブレットがアクティベートされました。これは前年比 20% の増加です。現在最も成長が著しいデスクトップ プラットフォームである ChromeOS は、92% の増加率となっていますが、さらに、折りたたみ式デバイスも急増中で、前年比 265% 以上の成長を遂げています。すべて合わせれば、Android が動作しているアクティブな大画面デバイスは 2 億 5000 万台を超えます。その勢いを受けて、このようなデバイスで動作している Android を、ユーザーにとってもデベロッパーにとってもよりよい OS にするために、私たちは努力を続けています。
そこで 2021 年 10 月 27 日 (日本時間:10 月 28 日) の Android Dev Summit (英語、動画は日本語字幕あり) では、大画面に特化した Android 12 のフィーチャー ドロップについてお知らせしました。私たちはこれを 12L と呼んでいます。併せて、大画面向けの開発を容易にするための新 API や新ツール、ガイダンスも準備しています。さらに、Google Play で行っている変更についてもお話ししました。これにより、ユーザーは大画面に最適化されたアプリをこれまで以上に簡単に見つけられるようになります。ここでは、Android の大画面向け新機能について紹介しますので、ぜひお読みください。
先月、12L のデベロッパー プレビュー を提供しました。これは今後公開する予定のフィーチャー ドロップで、Android 12 を大画面でさらに快適に使えるようにするものです。このプレビューを使って、大画面関連の新機能を試したり、自分のアプリを最適化したり、フィードバックの送信が可能です。
12L では、通知、クイック設定、ロック画面、概要、ホーム画面など、大画面向けの UI 全般を改善しました。たとえば、画面領域を有効活用するため、600dp を超える画面では、通知シェードやロック画面、その他のシステム表示を新しい 2 列レイアウトで表示します。システムアプリも最適化されます。
2 列レイアウトによって表示できる内容が増加し、さらに使いやすいものに
また、マルチタスクをこれまで以上に強力で直感的なものにしました。12L では大画面で新しいタスクバーが搭載されるので、ユーザーはすぐにお気に入りのアプリに切り替えることができます。このタスクバーのおかげで、分割画面モードもこれまで以上にわかりやすくなり、タスクバーからドラッグ&ドロップするだけで、アプリを分割画面モードで実行できるようになります。また、Android 12 以降で分割画面モードの操作性を向上させるため、アプリがサイズ変更可能かどうかにかかわらず、すべてのアプリを自動的に分割画面モードに対応させます。
アプリをドラッグ&ドロップして分割画面モードで実行
さらに、互換性モードを改善して見た目と安定性を向上させ、レターボックス表示の快適さを向上させたほか、アプリのデフォルトでの外観も改善しました。レターボックス表示は、デバイス メーカーが簡単にカスタマイズできるようになっているので、カスタムの色や処理を設定したり、はめ込むウィンドウの位置を調整したり、カスタムの角丸を適用したりできるようになっています。
Android 12 のタブレットや折りたたみ式デバイスが次にまとまって登場するタイミングに間に合うように、12L のフィーチャー ドロップは来年の早い時期にリリースする計画です。以上のような機能を大画面デバイスに導入するため、私たちは既に OEM パートナーと協力して作業を進めています。近日中に 12L のデベロッパー プレビューが Lenovo P12 Pro (日本未発表) に搭載される予定なので、ご期待ください。数か月後には、この機能がデバイスに配信されます。今から大画面向けに最適化したアプリの準備を入念にしておきましょう。
デベロッパーの皆さんには、さまざまなサイズのウィンドウの分割画面モードでアプリがどのように動作するかを確かめておくことを強くお勧めします。まだアプリを最適化していない方は、画面の向きを変えたときにどう見えるかを確認し、新しい互換性モードの変更が適用される場合はそれを試してみましょう。12L には、大画面向け機能のほかにも、いくつかのデベロッパー向けの新 API や、新しい API レベルが含まれています。アプリに互換性を破る変更が起こらないように注意しているので、アプリのターゲットを 12L にしなくても Google Play 要件を満たすことができます。
12L を使ってみたい方は、Android Studio の最新プレビュー リリースから、12L Android Emulator のシステム イメージやツールをダウンロードしてください。機能と変更点を確認してアプリをテストする領域を判断し、プレビューの概要でスケジュールやリリースの詳細をご確認ください。問題やリクエストはこちらから報告できます。そしていつものように、フィードバックは大歓迎です。
12L はスマートフォンでも利用できますが、ほとんどの新機能は小さな画面では確認できません。現在、私たちはタブレット、折りたたみ式デバイス、ChromeOS デバイスに重点的に対応しています。今後のプレビューでは、Pixel デバイス向けに Android ベータ版への登録をオープンする予定です。詳しくは、developer.android.com/12L をご覧ください。
どんな画面にも適応する完全にアダプティブなアプリを作り始める時です。そして、それを今まで以上に簡単に実現できるようにしています。OS や Play でアプリの変更に対応できるように、デベロッパー プレビューと併せて API やツール、ガイダンスのアップデートを公開します。
アダプティブ UI をサポートするための第一歩は、小さな画面と大きな画面の両方でうまく動作するアプリを設計することです。私たちは、アプリの UI をあらゆる画面サイズに対応させる際に役立ててもらうため、新しいマテリアル デザインのガイダンス (英語) の作成を進めてきました。このガイダンスは、エコシステムでよく使われている一般的なレイアウト パターンをカバーしているので、さまざまなアイデアが得られるだけでなく、作業を加速することにもつながるはずです。
マテリアル デザインのガイドライン、アダプティブ UI パターン
最高のナビゲーション エクスペリエンスをユーザーに提供するには、ユーザーが使うデバイスのウィンドウ サイズ クラスに合わせたナビゲーション UI を提供する必要があります。私たちが推奨するナビゲーション パターンには、コンパクトな画面(compact)ではナビゲーション バー (英語) を使う、中程度(medium)以上の画面幅(600dp 以上)のデバイスクラスではナビゲーション レール (英語) を使う、などがあります。新たに公開したマテリアル デザインのガイダンス (英語) には、広い画面幅(expanded)のデバイス向けに、いくつかの大画面レイアウトのアイデアが掲載されています。たとえば、SlidingPaneLayout を使って実装できるリスト / 詳細構造などです。ガイダンスを参照して、ビューと Compose でアダプティブ UI 向けのナビゲーションを実装する方法をご確認ください。
フラグメントを使っている既存アプリに大画面に最適なレイアウトを適用する場合、ナビゲーション パターンを更新して SlidingPaneLayout を使うのはすばらしい方法です。しかし、多くの皆さんが複数のアクティビティに基づいたアプリを作っていることは承知しています。そういったアプリでは、Jetpack WindowManager 1.0 ベータ版 03 で新しくリリースしたアクティビティ埋め込み API を使うと、TwoPane ビューなどの新しい UI パラダイムに簡単に対応できます。現在、SlidingPaneLayout をアップデートしてこの API をサポートする作業を進めています。今後数か月間のアップデートに注目してください。
Jetpack Compose を使うと、大画面や多様なレイアウトを対象にした開発が楽になります。Compose の採用を始めているなら、大画面向けの最適化を行う絶好のチャンスです。
Compose は宣言型 UI ツールキットです。すべての UI をコードで記述するので、UI が利用できるサイズにどう適応すべきかを実行時に判断するのは簡単です。Compose がアダプティブ UI の開発に特に向いているのはそのためで、画面サイズやコンポーネントの違いによる UI の変更にとても簡単に対処できます。Compose でアダプティブ レイアウトを構築するためのガイドでは、知っておくべき基本的な事項について説明しています。
Jetpack WindowManager ライブラリを使うと、下位互換性のある形でアプリのウィンドウを操作し、すべてのデバイスを対象としたレスポンシブな UI を開発できます。新機能は以下のとおりです。
アクティビティを埋め込むと、たとえばリスト / 詳細パターンなど、複数のアクティビティを一度に表示することで、大画面で利用できるようになる広い表示領域を有効活用できます。その際、アプリのリファクタリングはほとんど、あるいはまったく必要ありません。並べるか重ねるかなど、アプリにどのようにアクティビティを表示するかは、皆さんが決定します。具体的には、XML 構成ファイルを作成するか、Jetpack WindowManager API を呼び出します。あとはシステムが対応して、作成した構成に基づいて表示方法を決めてくれます。
アクティビティの埋め込みは、折りたたみ式デバイスでもシームレスに動作します。デバイスを折りたたんだり広げたりすると、それに応じてアクティビティが重なったり並んだりします。アプリで複数のアクティビティを使っている方は、アクティビティの埋め込みを使って大画面デバイスでのユーザー エクスペリエンスを向上させることができます。アクティビティ埋め込み API は、Jetpack WindowManager 1.0 ベータ版 03 以降のリリースで試すことができます。詳しくはこちらをご覧ください。
Jetpack WindowManager でアクティビティを埋め込む
ウィンドウ サイズ クラスは、綿密に検討されたビューポートの一連のブレークポイントで、サイズ変更可能なアプリでのレイアウトの設計、開発、テストに利用できます。ウィンドウ サイズ クラスのブレークポイントは、compact(コンパクト)、medium(中程度)、expanded(広い)の 3 つのカテゴリに分かれています。これらは、エコシステムのデバイスの大部分を表しつつ、レイアウトのシンプルさと特異なユースケースにアプリを最適化できる柔軟性との間でバランスをとるように設計されています。WindowSizeClass API は、近日中に Jetpack WindowManager 1.1 で公開される予定です。これにより、レスポンシブ UI の構築がさらに簡単になります。詳しくはこちらをご覧ください。
Jetpack WindowManager のウィンドウ サイズ クラス
WindowManager では、折り目やヒンジなど、さまざまなウィンドウ形状に対応した一般的な API サーフェスも提供されます。折りたたみ対応のアプリでは、折り目やヒンジの部分を避けてウィンドウのコンテンツを表示したり、折り目やヒンジの部分を自然なセパレータとしてうまく活用したりできます。アプリを折りたたみ対応にする方法は、こちらのガイドをご覧ください。
Android アプリは、あらゆるデバイス、そしてあらゆるカテゴリに適応できるように構築すべきです。そこで、Android Studio 全体を対象として、UI やレイアウトの設計、開発、テストを行うたくさんのツールに、リファレンス デバイスを導入します。リファレンス デバイスは 4 つあり、それぞれスマートフォン、大型折りたたみ式デバイスの内側ディスプレイ、タブレット、デスクトップを表します。マーケットのデータを分析して設計したもので、人気のデバイスや急成長中のセグメントを表しています。また、リファレンス デバイスを規定したことで、新しい WindowSizeClass のブレークポイントを使ってアプリがさまざまなよくあるブレークポイントの組み合わせに対応して動作することを確認できるようになります。そのため、アプリができる限り多くのユースケースをカバーすることを保証できます。
リファレンス デバイスの定義
大画面向け UI の対応を始める際に、どこから手を付けてよいかわからない方もいらっしゃるかもしれません。その場合は、まず新しいツールを使って、大画面デバイスで起こりうる問題を確認しましょう。Android Studio Chipmunk では、レイアウト検証によって先回りで UI について警告や提案を行ってくれる新しいビジュアル lint チェックツールを開発しています。どのリファレンス デバイスが影響を受けるかもわかるようになっています。
リファレンス デバイスの各クラスが表示されたレイアウト検証ツール
ランタイムでアプリをテストする場合、Android Studio Chipmunk (英語) に搭載されているサイズ変更可能な新しいエミュレータ構成を使うことができます。サイズ変更可能なエミュレータを使うと、4 つのリファレンス デバイス(スマートフォン、折りたたみ式、タブレット、デスクトップ)をすばやく切り替えることができます。これにより、設計時にレイアウトを検証したり、ランタイムで動作をテストしたりする操作が簡単になります。どちらの作業にも、同じリファレンス デバイスを使うことができます。サイズ変更可能なエミュレータを新規作成するには、Android Studio の Device Manager を使って新しい仮想デバイスを作成し、Resizable デバイス定義と Android 12L(Sv2)システム イメージを選択します。
サイズ変更可能な Android Emulator
タブレット、折りたたみ式、ChromeOS の各デバイスに最適なアプリを簡単に探せるようにするため、ユーザーのデバイスに最も適したアプリを目立たせるように Play を変更します。
現在、それぞれのアプリの品質を大画面アプリ品質ガイドライン (英語) に照らして評価する新たなチェックを追加する作業を行っています。これにより、デバイスに最適なアプリが目立つようになります。Play ストアで大画面のユーザーが大画面に最適化されていないアプリを表示した場合、そのアプリのストア掲載情報ページに通知を表示する予定です。
加えて、既にお知らせしたように、アプリの評価にも大画面専用の評価を導入し、大画面デバイスでアプリがどう動作するかをユーザーが評価できるようにします。以上の変更は来年に実施する予定です。皆さんがアプリの準備を始められるように、あらかじめお知らせいたしました。
また、Google Play で Google のビジネスモデルを進化させてデベロッパーのニーズに応えるための取り組みを紹介した記事も忘れずに確認しておきましょう。
大画面や折りたたみ式デバイス向けの開発を始めるうえで役立てていただけるように、私たちはビューにも Compose にも対応します。新規アプリや既存アプリで異なる画面サイズをサポートする方法、ビューと Compose の両方でナビゲーションを実装する方法、折りたたみ式デバイスのメリットを活用する方法などを紹介したガイダンスの追加や改訂も行っています。ビューのサポートの大画面ガイドのセクション、または Compose ガイドのセクションをご覧ください。
コードほど雄弁なものはありません。以下のサンプルは、レスポンシブ UI に対応するように更新しています。
実践的な演習を行いたい方は、Codelab で、アップデートされた Jetpack WindowManager による折りたたみ式デバイスとデュアル スクリーン デバイスのサポートをご覧ください。
2021 年 10 月 18 日に開催された、『DroidKaigi 前夜祭』に Google 関係者がパネリストとして登壇しました。
このイベントでは、2021 年に発表した Android/Google Play 関連の製品のお話や、I/O 以降に発表された製品・技術関連の最新情報についての内容を中心に Google 関係者が解説をしました。
この記事では、イベント内で解説した内容をまとめます。
Jetpack Compose は、ネイティブ UI をビルドするための Android の最新ツールキットで、Kotlin API を使用して、少ないコードで Android の UI 開発を簡素化し、加速することができます。Google I/O では、株式会社メルカリ様のケーススタディもリリースされ、UI 開発の生産性が 56 % 向上したという実例もございます。今回のイベントでは、その Jetpack Compose の最新アップデートである、1.1.0 についてお話をさせていただきました。
このセッションでは、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 をすばやくデザインすることができます。
このセッションでは、Google Play と Multi Form Factor についてお話をさせていただきました。
Wear OS や大画面対応から、セキュリティ ツールなどのトピックまで幅広くカバーしました。
ご参加いただきました皆さん、ありがとうございました!Android Developer Summit の動画も、ぜひご視聴ください。
この記事は Anna-Chiara Bellini, Nick Butcher による Android Developers Blog の記事 " Jetpack Compose is now 1.0: announcing Android’s modern toolkit for building native UI " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2021 年 7 月 28 日(日本時間 7 月 29 日) Jetpack Compose のバージョン 1.0 をリリースしました。Android の最新ネイティブ UI ツールキットである Jetpack Compose を使うと、優れたアプリを短時間で構築できます。このリリースは安定版で、本番環境で利用できます。Compose は、この 2 年間、Android コミュニティのフィードバックや貢献を受けつつ、オープンに開発が行われてきました。1.0 に到達した現時点で、既に Google Play ストアの 2000 以上のアプリで Compose が使われています。実は、Play ストアアプリ自体にも Compose が使われています。それだけではありません。たくさんのトップ アプリ デベロッパーと協力し、フィードバックやサポートを受けることで、1.0 リリースはさらに強固なものになっています。たとえば、Square は Compose を使うことで「宣言型 UI フレームワークの構築に関するさまざまな問題を解決することではなく、Square 独自の部分や UI インフラストラクチャに集中できる」と教えてくれました。Monzo は、Compose を使うと「質の高い画面を短時間で構築できる」と述べています。また、Twitter は「とても気に入っています!❤️」と見事に一言で言い表しています。
Compose は、ネイティブ Android アプリを短時間で簡単に作成できるように設計されています。完全に宣言的なアプローチが採用されているので、UI を記述しさえすれば、あとは Compose が対応してくれます。アプリの状態が変わると、UI が自動的に更新されるので、UI の構築がはるかにシンプルかつ高速になります。直感的な Kotlin API を使うと、美しいアプリを はるかに 少ないコードで実現できます。また、すべての既存の Android コードにネイティブでアクセスできるので、自分のペースで導入することもできます。強力なレイアウト API とコード駆動型 UI により、タブレットや折りたたみ式デバイスなど、異なるフォーム ファクタのサポートも簡単です。Compose のサポートは、Wear OS や ホーム画面 ウィジェットなども追加される予定です。
今回の 1.0 リリースは本番環境で利用でき、以下の主要機能が提供されています。
完全な宣言型アプローチを採用している Jetpack Compose によって、UI の開発方法は大きく変わります。新しいワークフローと異なる考え方をサポートするため、Compose 向けに設計された新しいツールを提供します。また、いくつかの既存のツールに Compose のサポートを追加しています。
Android Studio Arctic Fox で利用できる新しい Compose プレビューでは、異なる状態、ライトテーマやダークテーマ、異なるフォント スケーリングのコンポーザブルをすべて同時に確認できます。アプリ全体をデバイスにデプロイする必要はないので、コンポーネントの開発が簡単になります。リテラルのライブ編集機能によって機能強化されているため、プロジェクトを再コンパイルせずにアップデートを確認できます。
作業中の画面まで移動せずにデバイスで UI のパーツをテストしたいと思っていた方なら、新しいデプロイ プレビューを気に入ってくれるはずです。Composable のプレビューを作成するだけで、デバイスにデプロイしてすばやく反復できます。
Layout Inspector に Composable サポートが追加されるため、Compose と既存のビューを確実に混在させることができます。
Android Studio Arctic Fox での Compose サポートの詳細については、こちらをご覧ください。
新しいフレームワークを採用するには、評価が必要です。新しい UI ツールキットのように広範囲にわたるものでは、特にそれが重要になります。皆さんにとって今が適切なタイミングかどうかを情報に基づいて判断できるように、パブリック ロードマップ (英語) を公開して今後の Jetpack Compose の開発計画をお知らせします。
Compose を活用していただくために、皆さんや皆さんのチームが利用できる幅広いリソースを準備しました。
学ぶべきことはたくさんあります。Jetpack Compose Pathway (英語) では、主要な コードラボ、動画、ドキュメントを順番に体験できます。
Jetpack Compose は大きな飛躍であり、すばらしい UI を短時間で簡単に作れるものだと確信しています。これを使って皆さんが作るものを見ることが楽しみでなりません。Compose が 1.0 の安定版になった今こそ、実際に使うべきときです。直接コードを触るのが最善の方法です。ぜひ Compose を使ってみてください!