今天,我們正式歡慶 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 的功能,讓 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 年一切順利,編寫愉快!
-
產品最新消息自 Jetpack Compose 推出以來,我們投入了近 5 年的時間,為您提供各種功能、效能和工具,協助您在各種 Android 裝置上建構出色的 UI。
Nick Butcher • 2 分鐘小故事 -
產品最新消息Jetpack Compose 2025 年 12 月版現已推出穩定版。這個版本包含核心 Compose 模組 1.10 版和 Material 3 1.4 版,新增了多項功能,並大幅提升效能。
Nick Butcher • 6 分鐘小故事 -
產品最新消息Android Studio Quail 2 現已推出穩定版,可用於正式工作環境,為 IDE 帶來重大變革,包括並行 Agentic Workflows、原生整合的記憶體流失分析,以及可感知情境的當機修正功能。
每週透過電子郵件接收最新的 Android 開發洞察資訊。