close
安卓進階漲薪訓練營,讓一部分人先進大廠

大家好,我是皇叔,最近開了一個安卓進階漲薪訓練營,可以幫助大家突破技術&職場瓶頸,從而度過難關,進入心儀的公司。

詳情見文章:沒錯!皇叔開了個訓練營

來源|Jetpack Compose 博物館

原文鏈接 https://android-developers.googleblog.com/2022/05/whats-new-in-jetpack-compose.html

Jetpack Compose 1.0 發布已經快一年了,在此期間我們看到社區是它的熱情,例如欣賞 Kotlin 語法的簡潔性、使 UI 開發變得更加便捷和更輕鬆的聲明式方法。

社區中的 Compose

我們已經看到許多公司開始大規模使用 Compose,例如 Compose 於 Play Store 團隊密切合作,他們在很早的時候就開始嘗試 Compose ,並了解到它不僅更有趣,而且對他們的開發人員生產力的提高也很有幫助。

Play Store 團隊:「所有新的 Play 商店功能都建立在這個框架之上,Compose 有助於為應用程序解鎖更快的速度和更順暢的發布。」

Twitter 團隊一直在應用程序的不同部分使用 Jetpack Compose。

Twitter 團隊:「Compose 讓我們更容易定義我們自己的組件,並使他們的 API 合約更加明確、靈活和直觀。」

Airbnb 團隊也採用了 Compose。

Airbnb 團隊:「 Jetpack Compose 是我們技術戰略的關鍵部分。生產力的提升是巨大的。」

我們很高興看到在這些大型又複雜的生產環境中使用 Compose, Compose 不進讓他們在 UI 開發中體驗到了更多的樂趣,而且提高了相關工程的優勢!

「以上這些只是幾個示例,因為 Play 商店中排名前 1000 的應用程序中有 100 多個正在使用 Compose」。

這些密切合作以及始終聽取 Android 社區的反饋是我們開發過程的核心,也是推進我們未來路線圖的關鍵。

我們現在專注於支持更高級的用例,包括:

新的 API 和功能改進
新工具
更容易使用 Compose 進行構建

我們知道 Compose 從根本上改變了 UI 的構建方式,為了幫助開發進行必要的思維轉變,我們將發布更多關於高級主題的指導、演講和代碼實驗室,以及更深入的視頻,以便幫助開發者編寫更出色的應用。

Compose 1.2 測試版

今天,我們發布了Compose 1.2 的第一個 beta 版本,其中包含許多功能和改進。

文本改進

字體填充:我們通過可自定義的參數 includeFontPadding 解決了問題跟蹤器中投票最多的錯誤之一,這裡建議開發者將此值設置為 false,「因為這將使布局中的文本可以更精確地對齊」。

我們的計劃在未來版本中將其設置為的默認值,如果將值設置為 false 導致應用出現問題,請在上述 issue 中告知我們。此外當 includeFontPadding 設置為 false 時 ,可以通過設置 lineHeightStyle 參數來調整可組合文本的行高,結合起來可以是這樣的

Text(text=myText,style=TextStyle(lineHeight=2.5.em,platformStyle=PlatformTextStyle(includeFontPadding=false),lineHeightStyle=LineHeightStyle(alignment=Alignment.Center,trim=Trim.None)))

可下載字體:Compose 1.2 還在 Compose 中引入了可下載的字體,開發者可以使用 Compose 的新 API 來異步訪問 Google 字體,甚至可以定義備用字體,而無需任何複雜的設置。

使用可下載字體,開發者可以保持較小的 APK 大小並改善運行狀況,因為多個應用程序可以通過 provider 共享相同的字體。文字放大鏡:Android 文本提供了一個放大鏡控件,可以更輕鬆地選擇文本,Compose 現在也支持文本放大鏡。拖動選擇時會顯示放大鏡,以幫助查看手指下的內容,Compose 1.1.0 將放大鏡用於文本字段中的選擇,現在 Compose 1.2.0 支持文本字段中的放大鏡和 SelectionContainer , 放大鏡也得到了增強以匹配 Views 中 Android 放大鏡的精確行為。

布局功能和改進懶布局

隨着懶布局的發布, API LazyVerticalGrid 和 LazyHorizontalGrid 已經從實驗性階段的畢業,一個新的實驗性 API 被添加,稱為 LazyLayout,它允許開發者實現自己的自定義惰性布局。

與 CoordinatorLayout 交互

當在視圖系統中嵌入可組合滾動的 CoordinatorLayout 時,開發者現在可以確保它們的滾動行為是可互操作,這讓可摺疊工具欄的設置更加容易。現在開發者可以通過 rememberNestedScrollInteropConnection 將調用新實驗方法的結果傳遞給 nestedScroll 修飾符來選擇加入此行為

窗口插圖

Accompanist 里 insets 庫現在已使用該類升級到 Compose Foundation 庫,使用 WindowInsets對象,相關內容可以在我們關於 Compose 與現有 UI 集成的文檔中閱讀有關它的更多信息。

窗口尺寸等級

為了更容易設計、開發和測試可調整大小的布局,我們發布了窗口大小類 - 一系列可配置的 viewport breakpoints。material3-window-size-class 作為 Material 3 庫集的一部分,它們現在在新庫中以 alpha 形式提供,開發者可以在支持不同的屏幕尺寸文檔中閱讀有關尺寸類的更多信息,並查看 Crane 中的示例實現。

專注於 performance

為了幫助開發者了解和改進應用程序的性能,我們非常關注新的性能工具和指南,有了 performance,就可以更容易讓開發者理解的 App 可能卡頓的原因和位置。

從 Android Studio Dolphin 開始,開發者現在可以使用 Layout Inspector 檢查recomposition 的頻率,大量的 recomposition 可以幫助開發者指向可以優化方向。

此外,Android Studio Electric Eel 現在包括一個 recomposition 熒光筆,這是一個用於查看哪些 composables 項何時 recomposition 的視覺輔助工具。

Compose 從根本上改變了編寫 UI 的方式,因此開發者可以採用一些新的方式來確保應用的性能。

新發布的 compose-performance 建議如何編寫和配置 Compose 應用程序以獲得最佳性能。

在 I/O 演講中也有 Jetpack Compose 中的常見性能問題,Compose 團隊描述了常見的性能錯誤以及如何修復它們。

性能是一個需要持續關注的領域,我們正在努力改進擴展工具和指導,同時我們非常感謝大家對我們迄今為止所做的工作的反饋嗎,如有什麼問題可以在問題跟蹤中提出你的錯誤或在 KotlinLang Slack 組中提問。

新工具

除上述改進之外,還有開發工具也在更新,幫助你更有效地使用 Compose。Android Studio Dolphin,現在是 Beta 版,為 Compose 的開發帶來了令人興奮的功能。除了重組計數,新的工具還包括動畫協調,這樣你就可以一次看到動畫的所有變化細節,以及 MultiPreview 注釋,幫助你為多種屏幕尺寸構建。為了使你能夠更快地迭代Android Studio Electric Eel(在Canary中)帶來了 LiveEdit 功能。

為 Wear OS 編寫 Compose

我們很高興看到 Compose for Wear OS 進入 Beta 版!遵循與任何其他 Jetpack 庫相同的原則,Beta 意味着它的功能完整且 API 穩定,開發者現在可以開始構建 Wear 的應用。

改進指南

此次我們添加並修改了許多關於 Compose 的指南:

在 Compose 中的 State 上新的研討會和改進的codelab
關於 Compose 中基本布局的 新研討會和改進的codelab
新的性能文檔
更新了自定義輸入的文檔
I/O 討論 Jetpack Compose 中的常見性能陷阱和Compose中的惰性布局
對於那些不熟悉編程的人,現在可以使用 帶有 Compose 的 Android 基礎課程

最後

我們希望你能像我們一樣發現這些新功能,如果你還沒有開始,現在是時候學習Jetpack Compose了。



為了失聯,歡迎關注我防備的小號


微信改了推送機制,真愛請星標本公號👇


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()