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