本日、Jetpack Compose 1.0 のリリースから 5 周年を迎えました。2021 年 7 月 28 日に発表されたバージョン 1.0 から最新の 1.11 リリースまで、API は長年にわたって大幅に進化してきました。この節目を祝いたいと思います。
Google は 1.0 リリースの正式発表時に、Android でネイティブ インターフェースを構築するためのよりシンプルで高速かつ直感的な方法を提供することを約束しました。振り返ってみると、Compose はその約束を果たしただけでなく、Android エコシステムを完全に変革し、現在では上位 1,000 個のアプリの 68% 以上が本番環境で使用しています。
履歴
Compose は過去 5 年間で着実に成長してきました。初期の頃は、基本的な Box、Row、Column を使用してレイアウトを構築する方法を紹介していました。現在では、Compose はモバイル デバイスだけでなく、Compose for TV、WearOS、Glance for Widgets、Jetpack Compose Glimmer を使用したディスプレイ グラスなど、他のフォーム ファクタでも動作するように拡張されています。
Google は、Jetpack のエンジニアリング リードの Clara Bayarri と、チームの元リードの Romain Guy と Chet Haase、シニア エンジニアリング ディレクターの Tor Norbye とともに、Android Developers Backstage のエピソードを収録しました。このエピソードでは、Compose の歴史と開発の初期について説明しています。
振り返り
Compose の始まりは、現在のものとは大きく異なっていました。Android チーム内では 2 つのプロジェクトが並行して進められていました。
当時、Views ツールキット チームは、開発速度を向上させ、デベロッパーがアップデートを簡単に導入して管理できるようにするため、UI ツールキットをライブラリにバンドル解除することを検討していました。一方、別のチームは、Kotlin 内に XML を埋め込んで宣言型レイアウトを構築するという斬新なアイデアに取り組んでいました。以下はその例です。
これらの 2 つの取り組みが統合され、コンパイラ プラグイン、ランタイム、Kotlin の機能を活用した、現在の完全宣言型 UI ツールキットが誕生しました。
@Composable fun Newsfeed(stories: List<Story>) { LazyColumn { items(stories) { story -> Card { val author = story.author Image(painterResource(author.profilePhoto), contentDescription = author.name) Text(author.name) Text(story.content) if (story.hasCommentsEnabled()) { for(comment in story.comments) { Text(comment.mainContent) } } } } } }
コミュニティの皆様には、早い段階からご協力いただきました。2021 年より前には、Compose にプレアルファ版があり、デベロッパーの問題を解決するのに適していることを確認できました。
特に印象に残っているのは、Android Dev Challenge です。Google は、Compose を使用して 4 つの異なるタスクを構築するようコミュニティに呼びかけました。その結果、フィードには子犬のアプリ、時計、天気アプリが投稿され、1.0 リリースの形成に役立つ直接的なフィードバックを多数いただきました。
Compose は進化を続け、マテリアル 2 コンポーネントのセットから始まり、現在はMaterial 3 Expressiveをサポートしています。
今後の対応
現在、Compose 1.11 が最新バージョンで、1.12 が近日リリース予定です。5 年前の 1.0 と比べて大幅に機能が強化されています。今年、Google はFlexBox、Grid、MediaQuery、Stylesなどのアダプティブ API を導入しました。これらの API を使用すると、Compose を使用して次世代のプレミアムなアダプティブ UI を開発できます。
Google は Google I/O 2026 で、Compose ファーストになったことを発表しました。つまり、今後のすべての UI 開発は Compose でのみ行われ、Views ツールキットはメンテナンス モードになります。マテリアル デザインも完全に Compose に重点を移し、findViewById eraに終止符を打ちます。
コミュニティは Compose の中心
長年にわたり、Compose のクリエイティブな使用例で Google を刺激していただき、ありがとうございます。ここでは、素晴らしい成果が見られた例をいくつかご紹介します。JetBrains は、Compose の優れたパートナーとして、Compose Multiplatform を使用して Compose をプラットフォーム間で動作するように拡張し、デスクトップ、iOS、ウェブのデベロッパーも Compose のメリットを享受できるようにしました。
Google は、JetpackCompose.app の Dispatch、AndroidWeekly、jetc など、最も人気のあるニュースレターをフォローして、Android デベロッパーが Compose と Android の最新情報を入手できるようにしています。
もう 1 人の優れたコントリビューターは sinasamaki です。この楽しいリボン モディファイアやグリッチ効果など、Compose を使用して多くの楽しいエクスペリエンスを作成しています。
Saket Narayan も、Compose の便利なツール(パンとズーム操作のサポートや大きな画像の自動サブサンプリングを特徴とするライブラリ telephoto、インタラクション アニメーションを簡単にテストできる最新のライブラリ Touch Robot など)の作成において、常にインスピレーションを与えてくれます。
paparazzi.gif(end = 3_000) { DebitCard( Modifier.testTag("card") ) val touchRobot = rememberTouchRobot() LaunchedEffect(Unit) { touchRobot.onNode(hasTestTag("card")).performGesture { draw( path = createAndroidHeadPath(), duration = 3.seconds, ) } } } /** A path drawing the Android head. */ fun createAndroidHeadPath(bounds: Rect): Path = TODO() |
|
Jake Wharton は、Compose を革新的な方法(molecule など)で使用し、mosaic を使用してターミナル用の UI を構築しています。Chris Banes は、長年にわたって多くの Compose ライブラリを構築してきました。最近のお気に入りは、背景をぼかす Haze です。また、Android Google Developer Experts の Akshay Chordiya、Huyen Tue Dao、Katie Barnett など、多くの人々が Compose の成功に貢献しています。ただし、これは個人を選ぶものではありません。Compose コードベースには多くの優れたコントリビューターがおり、楽しい例、ライブラリ、詳細なトークで Google を刺激し続けています。 コミュニティがなければ、Jetpack Compose は今日の成功を収めることはできなかったでしょう。
次の 5 年間もよろしくお願いします。
Jetpack Compose は、実験的なアイデアから Android UI 開発の標準へと成長しました。ライブラリを作成し、バグを報告し、宣言型 UI の可能性を広げてくれた Google のツールキット チーム全体と、世界中の素晴らしいデベロッパー コミュニティに感謝します。
今週、世界各地で対面式の誕生日パーティーを開催し、7 月 30 日 13:00(UTC)に Android Developers YouTube チャンネルでライブの「誕生日パーティー」を開催します。 この間、Compose について話し合い、皆様からの質問にお答えします。
次の 5 年間もよろしくお願いします。ハッピー コーディング!
-
プロダクト ニュースJetpack Compose のリリースから 5 年近くが経ちましたが、Google は、さまざまな Android デバイスで優れた UI を構築するために必要なすべての機能、パフォーマンス、ツールを提供することに投資してきました。
Nick Butcher • 所要時間: 2 分 -
プロダクト ニュース本日、Jetpack Compose 2025 年 12 月リリースが安定版になりました。これには、コア Compose モジュールのバージョン 1.10 とマテリアル 3 のバージョン 1.4 が含まれており、新機能と大幅なパフォーマンスの改善が追加されています。
Nick Butcher • 所要時間: 6 分 -
プロダクト ニュースGoogle Play では、安全なオンライン エクスペリエンスを提供し、ユーザーを危害から保護することを最優先事項としています。
Paul Feng • 所要時間: 2 分
Android 開発に関する最新の分析情報を毎週メールでお届けします。