今天,我們正式慶祝 Jetpack Compose 1.0 發布五週年。從 2021 年 7 月 28 日發布的 1.0 版,到最新的 1.11 版,這些年來,我們見證了 API 的重大演進,現在就來慶祝一下。
我們正式發布 1.0 版時,承諾要提供更簡單、快速且直覺化的方式,在 Android 上建構原生介面。回顧過往,可以肯定的是,Compose 不僅實現了這項承諾,也徹底改變了 Android 生態系統,目前排名前 1,000 的應用程式中,有超過 68% 都使用 Compose 進行生產。
記錄
過去五年來,Compose 持續成長。在早期,我們探討了如何使用基本的 Box、Row 和 Column 建構版面配置。如今,Compose 不僅適用於行動裝置,也支援其他外型規格,例如 Compose for TV、WearOS、Glance for Widgets,甚至還能透過 Jetpack Compose Glimmer 支援顯示型眼鏡。
我們與 Jetpack 工程主管 Clara Bayarri,以及團隊的兩位前主管 Romain Guy 和 Chet Haase,還有資深工程總監 Tor Norbye,共同錄製了一集 Android Developers Backstage 節目。本集節目中,他們將討論 Compose 的發展歷程和早期開發階段。
回顧
Compose 的起步與您今天所知的截然不同。Android 團隊同時進行兩項專案。
當時,Views 工具包團隊正考慮將 UI 工具包解除綁定至程式庫,以加快開發速度,並讓開發人員更輕鬆地採用及控管更新。同時,另一個團隊正在研究新概念,打算在 Kotlin 中嵌入 XML,藉此建構宣告式版面配置,如下所示:
這兩項工作合併後,就產生了您現在所知的內容:完全宣告式 UI 工具包,可運用編譯器外掛程式、執行階段和 Kotlin 的強大功能:
@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 經歷了前 Alpha 階段,確保 Compose 適合解決開發人員的問題。
我們最珍貴的回憶之一,就是 Android 開發人員挑戰賽。我們邀請社群使用 Compose 建構四種不同的工作,讓動態消息充滿 Puppy 應用程式、時鐘和天氣應用程式,並直接提供大量意見回饋,協助我們打造 1.0 版。
Compose 持續發展,從推出一系列 Material 2 元件,到現在支援 Material 3 Expressive。
展望未來
目前最新的 Compose 版本為 1.11,1.12 版也即將推出,與 5 年前的 1.0 版相比,功能更加豐富。今年,我們推出了更多適應性 API,例如 FlexBox、Grid、MediaQuery 和 Styles。這些 API 可讓您使用 Compose,進一步開發進階的自適應 UI。
在 2026 年 Google I/O 大會上,我們宣布現在是 Compose 優先,也就是說,未來所有 UI 開發作業都只會在 Compose 中進行,而 Views 工具包則會進入維護模式。Material Design 也完全轉向 Compose,代表 findViewById era 時代即將結束。
社群是 Compose 的核心
多年來,您以各種創意範例激發我們的靈感,我們很樂意再分享幾個令人驚豔的案例。JetBrains 是 Google 的絕佳合作夥伴,他們透過 Compose Multiplatform 擴充 Compose 的功能,讓這個工具適用於各種平台,並讓電腦、iOS 和網頁開發人員也能享有 Compose 的優勢。
我們很喜歡閱讀 JetpackCompose.app 的 Dispatch、AndroidWeekly 和 jetc 等熱門電子報,協助 Android 開發人員掌握 Compose 和 Android 的最新動態。
另一位傑出貢獻者是 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,甚至使用 Compose 為終端機建構 UI (mosaic))。多年來,Chris Banes 打造了許多 Compose 程式庫,我們最近最喜歡的是用於背景模糊的 Haze,以及許多 Android Google Developers 專家,例如 Akshay Chordiya、Huyen Tue Dao 和 Katie Barnett,他們都為 Compose 的成功貢獻良多。但這並非要選出特定人士,因為有許多優秀的貢獻者參與 Compose 程式碼集的開發,而且許多人持續以有趣的範例、程式庫和深入的演講激勵我們。如果沒有社群,Jetpack Compose 就無法像現在一樣成功。
期待下一個 5 年,以及更多精彩內容!
Jetpack Compose 從實驗性概念發展為 Android UI 開發的標準。感謝 Google 的全體 Toolkit 團隊,以及全球優秀的開發人員社群,他們撰寫程式庫、回報錯誤,並突破宣告式 UI 的極限。
本週我們將在全球各地舉辦現場生日派對,並於 7 月 30 日下午 1 點 (世界標準時間) 在 Android 開發人員 YouTube 頻道直播「生日派對」。屆時我們將一起討論 Compose,並回答您的問題!
祝您在接下來的 5 年內創作愉快!
-
產品最新消息Googlebook 推出全新類別的筆電,這些筆電都以共用的 Android 基礎架構為建構基礎。HP、Dell、Lenovo、Acer 和 Asus 等合作夥伴提供高效能硬體,結合行動裝置的便利性與桌機的強大功能。
Fahd Imtiaz, Loryn Hairston • 閱讀時間:4 分鐘 -
產品最新消息今天,Jetpack Compose 2026 年 8 月發布版本已推出穩定版!
Nick Butcher • 閱讀時間:5 分鐘 -
產品最新消息隨著 Pixel 11 Pro Fold、Pixel Watch 5 和整個 Pixel 系列的推出,使用者可在不同螢幕尺寸、獨特姿勢和智慧體驗之間順暢切換。
每週透過電子郵件接收最新的 Android 開發洞察資訊。