IT之家 12 月 20 日消息,據(jù) JetBrains 發(fā)布,JetBrains 的 Kotlin 聲明式 UI 框架 Compose Multiplatform 已更新至 1.0 版,可供生產(chǎn)使用!
JetBrains 將介紹一些亮點(diǎn),希望你能和 JetBrains 一樣期待框架的發(fā)布:
在桌面上,你可以快速高效地創(chuàng)建具有精美用戶界面的 Kotlin 應(yīng)用。
在 Web 上,你可以使用 Compose for Web 的穩(wěn)定 DOM API 構(gòu)建生產(chǎn)級動(dòng)態(tài) Web 體驗(yàn),并實(shí)現(xiàn)與所有瀏覽器 API 的完全互操作。 未來版本將提供對 Material UI 微件的支持。
總體而言,現(xiàn)在各平臺間(包括 Android,使用與 Google 的 Jetpack Compose 的兼容)的專業(yè)知識和代碼共享都得到了大幅簡化。
接下來 JetBrains 將逐一介紹這些亮點(diǎn)。
掃碼訪問 Compose Multiplatform 網(wǎng)站
桌面版 Kotlin UI
在很長一段時(shí)間內(nèi),如果你想為 Kotlin 桌面應(yīng)用程序構(gòu)建用戶界面,你都必須使用傳統(tǒng)的 Java UI 框架,因?yàn)闆]有任何 Kotlin 庫支持桌面的現(xiàn)代化 UI 開發(fā)風(fēng)格。 這一狀況將被 Compose Multiplatform 改變。 JetBrains 這就來探索新的框架會如何改善為 Kotlin 應(yīng)用編寫 UI 的體驗(yàn)。
構(gòu)建用戶界面的聲明式方法
Compose Multiplatform 為聲明式,代碼反映了應(yīng)用的 UI 結(jié)構(gòu),讓你無需擔(dān)心將數(shù)據(jù)從模型復(fù)制到視圖或開發(fā) UI 刷新邏輯之類的事情。 全能高效的框架將讓 UI 開發(fā)成為一種享受。 在這個(gè)示例中,當(dāng) TextField 的內(nèi)容被編輯后,Text 標(biāo)簽的內(nèi)容將被更新,無需任何額外代碼:
var text by remember { mutableStateOf("Hello, World!") } Column { Text(text) //text label TextField(text, {text = it}) //text field }
Compose Multiplatform 入門簡單,上手體驗(yàn)類似于 React 或 Google 的 Jetpack Compose 之類的聲明式 UI 框架。Compose Multiplatform 使用了許多相同的概念,應(yīng)該會讓你倍感親切。
React
https://zh-hans.reactjs.org/
Jetpack Compose
https://developer.android.com/jetpack/compose
通過硬件加速實(shí)現(xiàn)出色的運(yùn)行時(shí)性能
現(xiàn)代化用戶界面對性能相當(dāng)敏感,因此 JetBrains 花了大量精力來提高 Compose Multiplatform 的速度。 它使用的圖形庫 Skia 經(jīng)過了良好優(yōu)化,已被性能敏感的應(yīng)用程序廣泛采用,包括新型瀏覽器。 這意味著 Compose Multiplatform 支持桌面上的所有主流硬件加速引擎,例如 DirectX、Metal 和 OpenGL。 對于硬件加速不可用的環(huán)境,Compose 也提供了優(yōu)化的軟件渲染程序。
Skia
https://skia.org/
通過預(yù)覽工具縮短迭代周期
在 UI 開發(fā)中,最耗時(shí)的任務(wù)之一是為了取得完美顯示效果而重建應(yīng)用程序。Compose Multiplatform IDEA 插件將簡化這一過程。 它的內(nèi)置實(shí)時(shí)預(yù)覽功能可供微調(diào) UI 的組件 / 部件和創(chuàng)建多個(gè)迭代,而無需重建或重新啟動(dòng)應(yīng)用程序。 這將大幅縮短開發(fā)周期。
插件
https://plugins.jetbrains.com/plugin/16541-compose-multiplatform-ide-support
通過自動(dòng)應(yīng)用程序打包信心滿滿地交付桌面應(yīng)用
將應(yīng)用程序帶給用戶,不僅需要妥善的開發(fā),也需要合適的打包。 在這一領(lǐng)域,Compose Multiplatform 也可以發(fā)揮作用。Gradle 插件支持將應(yīng)用程序打包為 msi、dmg 和 deb 格式,包括 MacOS 的簽名和公證。
將應(yīng)用程序打包
https://github.com/JetBrains/compose-jb/tree/master/tutorials/Native_distributions_and_local_execution
MacOS 的簽名和公證
https://github.com/JetBrains/compose-jb/blob/master/tutorials/Signing_and_notarization_on_macOS/README.md
Android 上 Jetpack Compose 與 Java UI 框架的互操作性
Jetpack Compose 是 Google 為構(gòu)建原生 UI 打造的 Android 現(xiàn)代化工具包,在移動(dòng)開發(fā)者中越來越受歡迎。 如果你以前使用過它,那么 Compose Multiplatform 對你來說會非常容易上手,因?yàn)檫@兩個(gè)框架共享了大部分 API。如果桌面應(yīng)用程序已經(jīng)具有使用典型 Java UI 框架構(gòu)建的用戶界面,則無需從頭重新編寫代碼即可與 Compose Multiplatform 一起使用。 通過出色的互操作性,你可以將使用 Compose 編寫的 UI 組件添加到現(xiàn)有 Java UI 中。 你還可以將現(xiàn)有 Java 控件添加到使用 Compose Multiplatform 構(gòu)建的任何新應(yīng)用。
使用 Compose Multiplatform 向?qū)Э焖偕鲜?/strong>
Compose Multiplatform 上手過程從未如此簡單。 在 IntelliJ IDEA 2021.1 以上版本中,只需幾下點(diǎn)擊即可創(chuàng)建一個(gè)簡單的 Compose Multiplatform 項(xiàng)目。
IntelliJ IDEA
https://www.jetbrains.com/zh-cn/idea/
JetBrains 還準(zhǔn)備了大量教程來幫助你熟悉 Compose Multiplatform 的桌面目標(biāo)。
大量教程
https://github.com/JetBrains/compose-jb/tree/master/tutorials
Compose for Web
除了桌面之外,Compose Multiplatform 還為處理 DOM 提供了強(qiáng)大的聲明式 Kotlin / JS API。
DOM
https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction
它具有現(xiàn)代化 Web 框架中你想要和需要的所有功能,包括全面的 DOM API、內(nèi)置 CSS-in-JS 支持、對 SVG 的支持、類型化輸入等。Compose Multiplatform 的 Web 目標(biāo)以純 Kotlin 編寫,并充分利用了語言的類型系統(tǒng)和習(xí)語。 這讓你可以使用你在其他 Kotlin 目標(biāo)中可能已經(jīng)熟悉的開發(fā)工作流。
多平臺支持
使用 Compose Multiplatform,你并不會受限于以桌面和 Web 平臺(均已直接支持)為目標(biāo)。 你還可以使用 Google 開發(fā)的著名 UI 框架 Jetpack Compose 以 Android 為目標(biāo)。 這兩個(gè)框架共享公共 API 與核心,因此具有完美的互操作性。 這意味著你不必重新編寫常見 UI 和狀態(tài)管理代碼。 只需編寫一次,然后根據(jù)需要在各個(gè)平臺上重用即可。
如果你要將現(xiàn)有 Android 應(yīng)用程序帶到桌面或 Web,Compose Multiplatform 可以幫助你輕松實(shí)現(xiàn)。 它允許你從單個(gè) Kotlin 項(xiàng)目管理應(yīng)用程序的所有目標(biāo)。
要使用 Compose 快速開始構(gòu)建面向多個(gè)平臺的應(yīng)用,你可以使用 IntelliJ IDEA 2021.1 以上版本中的 Kotlin 項(xiàng)目向?qū)А?/p>
即使當(dāng)前不需要開發(fā)多平臺應(yīng)用程序,你在一個(gè)平臺上的知識和專長在另一個(gè)平臺上也會發(fā)揮作用。
自測試版以來發(fā)生了什么變化?
在 Compose Multiplatform 1.0 中,JetBrains 最關(guān)注的是確保框架可實(shí)際用于生產(chǎn)應(yīng)用程序。 因此,此版本主要解決質(zhì)量和穩(wěn)定性問題,同時(shí)修正關(guān)鍵問題和錯(cuò)誤。
真實(shí)生產(chǎn)經(jīng)驗(yàn)
雖然 Compose Multiplatform 本月才正式上線,但它先前已用于部分生產(chǎn)應(yīng)用程序。 例如,在 JetBrains,JetBrains 早在 2021 年初就開始在 Jetbrains Toolbox App (https://www.jetbrains.com/zh-cn/toolbox-app/) 中采用 Compose Multiplatform。 這個(gè)用于 JetBrains IDE 的管理應(yīng)用程序每月有超過 1,000,000 名活躍用戶,在 4 個(gè)月前完全從 C++ 和 Electron 遷移到了 Compose Multiplatform。
總結(jié)
通過 Compose Multiplatform,Kotlin 開發(fā)者能夠以強(qiáng)大的框架為桌面和 Web 應(yīng)用程序創(chuàng)建精美的 UI。
現(xiàn)在是嘗試 Compose Multiplatform 的最佳時(shí)機(jī)! 最簡單的入門方法是查看官方教程。 使用 IntelliJ IDEA 2021.1 以上版本的內(nèi)置 Kotlin 項(xiàng)目向?qū)?,你可以輕松開始創(chuàng)建第一個(gè) Compose Multiplatform 項(xiàng)目并以 Kotlin 構(gòu)建聲明式用戶界面。
官方教程
https://github.com/JetBrains/compose-jb/tree/master/tutorials
JetBrains 希望你喜歡它!
廣告聲明:文內(nèi)含有的對外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。