首頁>科技>

作者 / Google 產品總監 Karen Ng

Jetpack Compose 是一個現代化的 UI 工具包,旨在幫助開發者通過原生平臺 API 簡單快捷地在全 Android 平臺構建精美應用,它能大幅降低程式碼量幷包含互動式工具,以及使用直觀的 Kotlin API,為您的應用增添活力。現在,我們正式釋出 Jetpack Compose 的 Alpha 版本,邀請您體驗!

開發者們通過構建應用演繹價值和實現理想。開發效率的提升離不開三個重要因素: 程式語言、整合開發環境 (IDE) 以及使用者介面 (UI) 框架。我們為大家帶來的 Jetpack Compose,目的就是為了讓您 (我們也是!) 能在構建 UI 上更加高效!

起初,我們計劃通過一系列的 Android Jetpack 開發庫解決 Android 開發中最困難、最常見的問題,幫助開發者們在所有的 Android 版本上執行高品質的應用。現在 Google Play 商店排名前一萬的應用中,已經有 84% 的應用使用了 Jetpack 庫。

進而,我們還了解到 Kotlin 深受開發者的喜愛,現在在排名前一千名的應用中,有超過 70% 的應用使用了 Kotlin,60% 的專業 Android 開發者都在使用 Kotlin。Google Home 應用使用了 Kotlin 之後,在某些情況下減少了 80% 程式碼行數,NullPointerExceptions 與過去同期相比減少 33%。還有,多鄰國 (Duolingo) 應用使用了 Kotlin 之後,肉眼可見的程式碼行數平均減少了 30%。

最後,我們通過社群收集到了一些強烈的建議,開發者們希望可以使用一些宣告式的 API 來降低 UI 構建的難度。Jetpack Compose 結合剛剛提到的三點優勢應運而生——可大規模構建高品質應用的 API、直觀的程式語言以及響應式的程式設計模型。

Jetpack Compose: Alpha 版現已釋出

Jetpack Compose Alpha 版本 提供了用於構建成熟 Android 應用所需的功能,不僅有高效的工具,還可以和現有 Android 檢視進行互操作,您無需重新編寫您的應用。Compose API 是與一組使用 Material Design 規範的示例應用 一起設計和開發的!我們很高興釋出這些應用!您還可以直接在 Android Studio 中 匯入和瀏覽最新的示例。

Alpha 版本釋出內容如下:

AnimationsConstraint Layout無障礙初步支援輸入和手勢與檢視的互操作性 (可以在您現有的 app 中混合可以組合的功能)懶載入列表Material UI 元件效能優化測試文字和可編輯文字主題和圖形Window 管理

在與 JetBrains Kotlin 團隊 的緊密合作下,我們也為 Android Studio 4.2 canary 添加了一系列新功能來幫助您使用 Compose 構建應用:

Compose 程式碼自動補全Compose 預覽註解部署單個可組合的元件到任何裝置上互動式 Compose 預覽可以生成程式碼的 Kotlin 編譯器外掛適用於 Compose 的示例資料 APIRomain 的視訊 - Jetpack Compose:https://www.bilibili.com/video/BV1Vv411q7HnCompose 的程式設計思想

Compose 使用的程式設計模型與 Android 上現有的構建 UI 的模型完全不同。從歷史上看,Android 的檢視層次結構一直被描述為 UI 元件樹。隨著 app 狀態的變化,需要更新 UI 層次結構來顯示當前的資料。更新 UI 最常見的方法是使用像 findViewById() 這樣的方法去遍歷 UI 元件樹,並通過呼叫類似下面的這些方法來改變節點:

button.setText(String)
container.addView(View)
img.setImageBitmap(Bitmap)

這些方法會改變元件的內部狀態。這不僅乏味繁瑣,而且手動更新檢視也會增加出錯的可能性 (例如忘記更新檢視)。Jetpack Compose 是一種完全基於宣告式元件的方法,這意味著您需要將 UI 描述為將資料轉換為 UI 層級結構的函式。當基礎資料發生變化時,Compose 框架會自動為您更新 UI 層次結構,從而使您可以輕鬆快速的構建 UI。

觀看視訊: 用 Compose 思考:https://youtu.be/SMOhl9RK0BA與現有 Android 檢視完全互操作

對於現有的專案和程式碼庫來說,採用任何新的框架都是一個很大的改變,這就是為什麼我們把 Compose 設計得和 Kotlin 一樣容易採用——它從一開始就可以與現有的 Android 程式碼完全互操作。

是否遷移到 Compose 取決於您和您的團隊。如果您正在構建一個新的 app,最好的選擇可能是使用 Compose 來實現 app 的整個 UI 介面。我們知道大多數人都有大量的現有程式碼庫,可以將 Compose 與現有的 UI 設計結合起來,而無需重寫應用。

可以通過以下兩種主要的方式將 Compose 與基於檢視的 UI 結合起來:

您可以新增 Compose 元素到現有的 UI,或者建立一個全新的基於 Compose 的螢幕,或者是向現有的 fragment 或檢視佈局中新增 Compose 元素。您可以將基於檢視的 UI 元素新增到可組合的函式中。這樣做可以將不基於 Compose 的元件新增到基於 Compose 的元件中,例如: MapView 或 WebView。

我們也釋出了一個新庫 MDC Compose 主題介面卡,它可以讓您在 Compose UI 中複用現有的 Material Components 主題。

要了解更多相關資訊,請參閱 Compose for existing apps codelab 或檢視以下兩個示例:

Tivi 和 Sunflower 展示了如何在現有專案中整合 ComposeCrane 示例應用 展示了如何在 Compose 嵌入一個 MapView觀看視訊: 將 Compose 加入現有的應用:https://youtu.be/PjQdFmiDgwk強大的工具

Android Studio 中包含了輔助您使用 Jetpack Compose 的強大工具,可以幫助您快速迭代 UI 元素。

藉助 Compose 佈局預覽,您可以預覽 Compose 元件,而無需將應用部署到裝置或模擬器。在開發應用時,您的預覽會更新,以幫助您更快地檢查變更。要建立佈局預覽,請編寫一個不使用任何引數的 Composable 函式,並新增:

@Preview annotation

完成應用構建後,預覽功能的 UI 會出現在 Android Studio 的 Preview 窗格中。

Android Studio 提供了 互動式預覽模式 。在互動式預覽模式下,您可以在 UI 元素中點選或輸入,UI 將會響應,就像是在已安裝的應用中一樣。

您也可以將單個可組合功能部署到物理裝置或 Android Emulator。Android Studio 會建立一個新的 Activity,其中包含由將該功能所生成的 UI,並將其部署到您在裝置上的應用。這樣您就可以實際體驗測試 UI,而無需重新安裝整個應用或導航到當前頁面。

開始使用 Jetpack Compose

要開始使用 Jetpack Compose,請參閱 Compose 教程 並 進行設定。或者直接進入 示例應用 並在 "Compose by Example" 中瀏覽這些應用:

觀看視訊: Compose 示例:https://youtu.be/DDd6IOlH3io

歡迎訪問 Compose 學習計劃,了解包括 新增的 Codelab 和擴充套件文件的更多 Compose 資源。

我們還在提升 API 的穩定性和優化效能,因此目前還不建議您將 Compose 完全投入到生產環境中。但我們希望大家可以試用並向我們 分享反饋。您也可以加入 Kotlin Slack 的 #compose 頻道或在微信留言區與我們討論。Compose 1.0 預期將在 2021 年釋出。

  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 開通美國沃爾瑪賬號有什麼條件?DSV和賣家賬號有什麼不同?