Jetpack Compose Alpha 版現已發佈!

做者 / Google 產品總監 Karen Nghtml

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

開發者們經過構建應用演繹價值和實現理想。開發效率的提高離不開三個重要因素: 編程語言、集成開發環境 (IDE) 以及用戶界面 (UI) 框架。咱們爲你們帶來的 Jetpack Compose,目的就是爲了讓您 (咱們也是!) 能在構建 UI 上更加高效!git

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

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

最後,咱們經過社區收集到了一些強烈的建議,開發者們但願可使用一些聲明式的 API 來下降 UI 構建的難度。Jetpack Compose 結合剛剛提到的三點優點應運而生——可大規模構建高質量應用的 API、直觀的編程語言以及響應式的編程模型。性能優化

Jetpack 的 Hello World

Jetpack 的 Hello World微信

Jetpack Compose: Alpha 版現已發佈

Jetpack Compose Alpha 版本 提供了用於構建成熟 Android 應用所需的功能,不只有高效的工具,還能夠和現有 Android 視圖進行互操做,您無需從新編寫您的應用。Compose API 是與一組使用 Material Design 規範的示例應用 一塊兒設計和開發的!咱們很高興發佈這些應用!您還能夠直接在 Android Studio 中 導入和瀏覽 最新的示例。app

Alpha 版本發佈內容以下: 框架

  • Animations
  • Constraint Layout
  • 無障礙初步支持
  • 輸入和手勢
  • 與視圖的互操做性 (能夠在您現有的 app 中混合能夠組合的功能)
  • 懶加載列表
  • Material UI 組件
  • 性能優化
  • 測試
  • 文本和可編輯文本
  • 主題和圖形
  • Window 管理

在與 JetBrains Kotlin 團隊 的緊密合做下,咱們也爲 Android Studio 4.2 canary 添加了一系列新功能來幫助您使用 Compose 構建應用:編程語言

  • Compose 代碼自動補全
  • Compose 預覽註解
  • 部署單個可組合的組件到任何設備上
  • 交互式 Compose 預覽
  • 能夠生成代碼的 Kotlin 編譯器插件
  • 適用於 Compose 的示例數據 API

<iframe src="//player.bilibili.com/player.html?aid=243908273&bvid=BV1Vv411q7Hn&cid=214566113&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

Compose 的編程思想

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。

與現有 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 或查看如下兩個示例:

強大的工具

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 學習計劃,瞭解包括 新增的 Codelab 和擴展文檔的更多 Compose 資源。

自咱們 去年 開源 Jetpack Compose 以來,衆多開發者爲咱們提供了寶貴反饋,使咱們有了今天的成就,感謝你們!

咱們還在提高 API 的穩定性和優化性能,所以目前還不建議您將 Compose 徹底投入到生產環境中。但咱們但願你們能夠試用並向咱們 分享反饋。您也能夠加入 Kotlin Slack 的 #compose 頻道或在微信留言區與咱們討論。Compose 1.0 預期將在 2021 年發佈。

相關文章
相關標籤/搜索