作者 /Android 開發者關系工程師 Jolanda Verhoef
去年我們發布了 Jetpack Compose,此后一直在進行優化。我們已添加了新的功能并創造出功能更強大的工具,幫助您獲得更高效、更直觀、更有趣的 Android 界面開發體驗。如果您正在開發一款新應用,那現在是時候用 Compose 來編寫了!這一激動人心的 Compose 版本現可支持 Material Design 3、新的 BOM (Bill Of Materials)、穩定版 Compose for Wear OS 和 Android TV Alpha 版、Compose Camp,以及更多新功能!
-
Jetpack Compose
https://developer.android.google.cn/jetpack/compose
-
穩定版 Compose for Wear OS
https://android-developers.googleblog.com/2022/07/compose-for-wear-os-10-stable.html
社區中的 Compose
去年,我們了解到許多公司在大規模使用 Compose 進行開發,實現了新功能并將編譯界面從 View 遷移至 Compose。例如,我們在與 Lyft 的工程師交談后得知,他們超過 90% 的新功能代碼是用 Compose 編寫而成,并且改用 Compose 能夠更加輕松便捷地維護代碼。他們還分享道: "我們使用 Compose 在應用中重新編寫了按鈕組件。在此之前,編寫該組件需要在三個文件外加 17 個不同 XML 文件中編寫 800 行代碼,而現在減少到只需一個 Kotlin 文件和 300 行代碼即可完成。單就 Kotlin 代碼而言,工作量就減少了 60%"。Zepeto 團隊同樣已在多個功能中使用 Compose,并從中受益,因為 "Compose 簡化了我們的界面層邏輯,有助于我們更輕松地理解同事所編寫的代碼"。
△Jetpack Compose 幫助 Lyft更加輕松便捷地維護代碼 | Android 開發故事
-
大規模使用 Compose 進行開發
https://developer.android.google.cn/jetpack/compose/adopt#what-developers-are-saying
-
改用 Compose 使 Lyft 團隊能夠更加輕松便捷地維護代碼
https://android-developers.googleblog.com/2022/10/lyft-reduced-their-code-for-ui-components-using-jetpack-compose.html
-
有助于 Zepeto 團隊更輕松地理解同事所編寫的代碼
https://android-developers.googleblog.com/2022/10/zepeto-plans-to-migrate-80-percent-of-apps-ui-to-jetpack-compose.html
-
如何在您的團隊中采用 Compose 的指南
https://developer.android.google.cn/jetpack/compose/adopt/for-large-teams
Jetpack Compose 2022 年 10 月版發布
現在,我們發布了全新的穩定版 Compose,并為您介紹一些激動人心的功能和最新資訊。
首先,根據用戶反饋,我們了解到追蹤不同工件的版本會讓人望而生畏,因為這些工件可能出現在不同的發布時間表中。因此我們現將一同發布 Bill of Materials 功能,即 BOM,包含所有 Compose 工件的穩定版本,讓您能夠更輕松地使用。
首版 BOM 發布的同時,Compose 2022 年 10 月版也帶來了交錯網格支持、直接在畫布中繪制文本,下拉刷新,同時包含性能改進和問題修復。
Compose BOM
BOM 是一個 Maven 模塊,用于聲明一組內容庫及其版本。這將很大程度上簡化您在 Gradle 依賴項部分定義 Compose 內容庫版本的方式,尤其是在我們對不同的 Jetpack Compose 內容庫采用獨立版本的情況下。您不用再單獨定義每個版本,這一過程往往繁重且容易在內容庫版本出現不同時出錯,現在您只需定義一個 BOM 版本,就能夠從中提取所有 Compose 內容庫版本。每當 Compose 工件有新的穩定版本時,我們就會發布新的 BOM 版本,因此可更輕松地從一個穩定版轉移到另一個穩定版。
dependencies {
// 導入 Compose BOM
implementation platform('androidx.compose2022.10.00')
// 為尚未標明版本的目標 Compose 庫聲明依賴項
implementation 'androidx.compose.foundation:foundation'
androidTestImplementation 'androidx.compose.ui:ui-test-junit4'
...
}
-
對不同的 Jetpack Compose 內容庫采用獨立版本
https://android-developers.googleblog.com/2022/06/independent-versioning-of-Jetpack-Compose-libraries.html
-
快速入門指南
https://developer.android.google.cn/jetpack/compose/setup
深入了解修飾符
一直以來,我們都在幕后努力優化 Compose 性能。Compose 2022 年 10 月版本包括對修飾符工作原理的重大重構。盡管您可能不會在 API 中注意到任何更改,但此次重構會為修飾符性能的重大改進鋪平道路。您可以通過下方視頻詳細了解更改背后的基本原理,以及在 ADS 演講 Compose 修飾符深入研究中規劃的內容。
△Compose 修飾符深入研究 | 2022 Android 開發者峰會
-
Compose 修飾符深入研究
https://developer.android.google.cn/events/dev-summit/technical-talks
彈出式窗口和對話框高度更改 無障礙功能始終是 Compose 中至關重要的存在,此版本包含一個行為變更,有助于修復采用彈出式窗口和對話框的無障礙功能錯誤:彈出式窗口和對話框的最大高度由 30dp 下降到 8dp。只有在使用高度超過 8dp 的自定義對話框或彈出式窗口時,您的應用才會受到影響。您可以參閱版本說明,了解有關變更的更多詳情,比如為臨時解決方案覆蓋新行為的方法 (請注意,對于自定義彈出式窗口和對話框,我們始終推薦高度不超過 8dp)。
-
版本說明
https://developer.android.google.cn/jetpack/androidx/releases/compose-ui
我們在 Compose 中添加了許多新功能。部分重要內容如下:
- 使用全新 LazyHorizontalStaggeredGrid 和 LazyVerticalStaggeredGrid 實現交錯網格;
- 使用 DrawScope.drawText 直接在畫布中繪制文本;
- 使用 FontVariation 對象在應用中添加可變字體并更改其屬性;
- 在帶注釋的字符串中添加 UrlAnnotation 以改進與文本互動的無障礙服務;
- 使用全新 LineBreakAPI 在您的文本中添加斷字功能;
- 使用全新 pullRefresh 修飾符下拉刷新;
- 使用 SnapFlingBehavior 在您的惰性列表中添加貼靠行為;
- LookAheadLayout 是一種新的布局類型,可以提供關于子項的最終測量與放置信息,幫助您決定中間層布局。
-
LazyHorizontalStaggeredGrid
http://link.gevents.cn/DYyk4w
-
LazyVerticalStaggeredGrid
http://link.gevents.cn/GviHF9
-
FontVariation
https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/text/font/FontVariation
-
可變字體
https://fonts.google.com/knowledge/topics/variable_fonts
-
UrlAnnotation
https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/text/UrlAnnotation
-
LineBreak
https://developer.android.google.cn/reference/kotlin/androidx/compose/ui/text/style/LineBreak
-
pullRefresh
http://link.gevents.cn/TAA2d2
-
下拉刷新
https://material.io/design/platform-guidance/android-swipe-to-refresh
-
SnapFlingBehavior
https://developer.android.google.cn/reference/kotlin/androidx/compose/foundation/gestures/snapping/SnapFlingBehavior
-
LookAheadLayout
http://link.gevents.cn/ETYAtK
Compose Material 3 穩定版
我們還推出了 Compose Material 3 內容庫的第一個穩定版本!您可以使用 Compose 構建應用,并根據 Material Design 的最新版本 Material Design 3 設置主題。使用 Material Design 3 進一步自定義您應用的顏色、排版和外觀,幫助您的品牌脫穎而出!內容庫包含許多界面組件的全新和更新版本,例如按鈕、卡片、復選框、開關、導航欄、抽屜式導航欄等,并支持其他即將推出的更新。您可以前往官方文檔,查看受支持的所有組件列表,也可以在我們近期的推文中了解詳情。
-
Compose Material 3 內容庫
https://developer.android.google.cn/jetpack/androidx/releases/compose-material3
-
Material Design 3
https://m3.material.io/
-
官方文檔
https://developer.android.google.cn/reference/kotlin/androidx/compose/material3/package-summary#overview
您可以查看我們新的遷移指南,幫助您使用 Material 3,我們在指南中清楚地介紹了如何將 Material 2 概念轉化成 Material 3。Android Studio Flamingo 中的默認模板現在會使用 Material 3 來指引您即時正常運行。我們還更新了許多示例應用、教程、模板和 Codelab 以助您輕松使用 Material 3,方便您在實踐中學習!
-
遷移指南
https://developer.android.google.cn/jetpack/compose/themes/material2-material3
新工具
使用 Jetpack Compose 中全新的和已優化的工具可簡化應用開發。我們在 Android Studio 中添加了大量新功能,幫助您改進工作流程,提高效率: 最新的穩定版 Android Studio Dolphin 可以為您帶來如下功能:-
動畫協調
- MultiPreview 注釋
- 布局檢查器中的重組計數
-
Android Studio Dolphin
https://developer.android.google.cn/studio/releases#new_in_compose
-
實時編輯 (實驗性)
-
突出顯示組合渲染效果
-
配置預覽版設備
-
預覽版中的 Live Updates
-
Android Studio Electric Eel
https://developer.android.google.cn/studio/preview/features#2022.1.1
Android Studio Flamingo 內含 Canary 版功能,比如:
- 新項目模板默認使用 Compose 和 Material 3
- 默認開啟實時編輯
- 改進后的組合跟蹤,助您更好地檢查性能問題。
-
Android Studio Flamingo
https://developer.android.google.cn/studio/preview/features#2022.2.1
我們還發布了 Relay 的首個 Alpha 版本,作為設計稿轉代碼的解決方案,可優化設計者與開發者之間的協作。設計者使用 Figma 插件創建界面組件,開發者則使用 Android Studio 插件將這些組件自動應用到他們的應用中。生成的組件是可組合函數,并可直接被集成到您的 Compose 應用中。您可以查看官方文檔,詳細了解 Relay。
-
Relay
https://relay.material.io/
-
Figma 插件
https://www.figma.com/community/plugin/1041056822461507786
- Android Studio 插件https://plugins.jetbrains.com/plugin/19721-relay-for-android-studio/
- 官方文檔https://developer.android.google.cn/jetpack/compose/tooling/relay
面向 Wear OS、大屏幕設備和電視的 Compose
我們在 7 月發布了首個穩定版 Compose for Wear OS,可隨時在生產環境中使用。推薦您使用 Compose for Wear OS 來為 Wear OS 應用構建界面。我們在其中加入了二十余種專為可穿戴設備設計的 Compose 界面組件,如 TimeTextPositionIndicator,以及 ScalingLazyColumn。
-
Compose for Wear OS
https://android-developers.googleblog.com/2022/07/compose-for-wear-os-10-stable.html
我們將持續改進,使其更易于為可折疊設備、平板電腦等大屏幕設備和 ChromeOS 設計、開發和測試應用。material3-window-size-class 內容庫已升級為穩定版,為您提供了一組可供使用的視口劃分點。大屏幕設備設計通常包含交錯網格,新增的 LazyHorizontalStaggeredGrid 和 LazyVerticalStaggeredGrid 有助于實現這些網格。
-
material3-window-size-class
https://developer.android.google.cn/jetpack/androidx/releases/compose-material3
-
LazyHorizontalStaggeredGrid
http://link.gevents.cn/DYyk4w
-
LazyVerticalStaggeredGrid
http://link.gevents.cn/GviHF9
Android 社區的反饋一直推動我們繼續向前。我們根據您的反饋更新了路線圖,更加側重于能夠幫助您成功使用 Compose 的領域。現在我們正專注于支持更多案例,包括更多 Material 3 組件,改進平臺支持、工具和性能。
-
路線圖
https://developer.android.google.cn/jetpack/androidx/compose-roadmap
全新的和更新后的指南
無論您處于學習旅程的哪個階段,我們都會為您提供幫助!我們新增和優化了有關 Compose 的許多指南:
- 如果想要體驗實踐操作,您可以參閱更新后的面向 Android 開發者的 Compose 課程。這一課程涵蓋了多種主題,從基礎知識到進階內容,一應俱全。
- 如果您更喜歡觀看視頻,可查看 MAD 技巧: Compose 基礎知識系列視頻,當然,您也可以觀看 Android 開發者峰會中有關 Compose 的所有技術分享內容。
- 您可以閱讀有關圖像和圖形的擴展文檔。
- 想知道使用哪種動畫?答案盡在全新的動畫備忘單中!
- 通過全新的調試重組截屏視頻和博文,了解如何發現并修復性能問題。
- 如果考慮在您的現有應用中采用 Compose,您可以參閱擴展版指南: 在應用中采用 Compose。
-
面向 Android 開發者的 Compose 課程
https://developer.android.google.cn/courses/jetpack-compose/course
-
MAD 技巧: Compose 基礎知識
https://youtube.com/playlist?list=PLWz5rJ2EKKc-CG9riunK996aI6cRhXFDC
-
Android 開發者峰會
https://developer.android.google.cn/events/dev-summit/technical-talks#modern-android-development
-
圖像和圖形
https://developer.android.google.cn/jetpack/compose/graphics
-
動畫備忘單
https://storage.googleapis.com/android-stories/compose/Compose_Animation_Cheat_Sheet.pdf
-
截屏視頻
https://www.youtube.com/watch?v=SWBN0y0lFNY
-
調試重組博文
https://medium.com/androiddevelopers/jetpack-compose-debugging-recomposition-bfcf4a6f8d37
-
在應用中采用 Compose
https://developer.android.google.cn/jetpack/compose/interop
Compose Camp
Compose Camp 是一個由社區組織的全球系列活動,該活動將從九月一直持續到十二月!Compose Camp 同時包含初學者路徑和資深者路徑,所有水平的開發者均可加入一同學習。活動已在如火如荼地進行中,全球各地的 GDG 和 GDSC 發布了多支視頻,社區平臺也舉辦了眾多活動。
-
Compose Camp
https://developer.android.google.cn/compose-camp
-
如火如荼地進行中
https://twitter.com/search?q=%23ComposeCamp&src=typeahead_click
-
視頻
https://space.bilibili.com/64169458/channel/collectiondetail?sid=735148
祝您擁有愉快的 Compose 使用體驗!
希望您和我們一樣對這些進展感到興奮!如果您尚未開始,現在就是學習 Jetpack Compose,并幫助您的團隊和開發流程從中受益的最佳時機。準備好體驗更快的開發速度和更高的工作效率吧。祝您擁有愉快的 Compose 使用體驗!也歡迎您持續關注我們,及時了解更多開發技術和產品更新等資訊動態。
-
Jetpack Compose
https://developer.android.google.cn/jetpack/compose
?點擊屏末|閱讀原文|即刻了解 Jetpack Compose 更多相關內容
原文標題:Jetpack Compose 更新一覽 | 2022 Android 開發者峰會
文章出處:【微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
-
谷歌
+關注
關注
27文章
6142瀏覽量
105113
原文標題:Jetpack Compose 更新一覽 | 2022 Android 開發者峰會
文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論