買以太坊 買以太坊
Ctrl+D 買以太坊
ads

POS:為什么除了Flutter我們還需要另一個跨平臺開發框架_redcommunitytoken

Author:

Time:1900/1/1 0:00:00

不久前,谷歌正式推出 Jetpack Compose 1.0 版本。近日,JetBrains 在此基礎上發布了 Compose Multiplatform Alpha 版本,旨在將 Compose 擴展到桌面和 Web 端。

Compose Multiplatform 由 Compose for Desktop 和 Compose for Web 組成,通過 Kotlin Multiplatform 支持許多不同的平臺。其中,Compose Desktop 采用 Google 的 Skia 圖形庫,來實現在 Windows、macOS 和 Linux 上的 UI 繪制,借此在所有支持的操作系統中提供統一的體驗,類似于 Flutter 的做法。

根據 Kotlin 團隊的說法,相比起 Electron 框架,Compose Multiplatform 在內存消耗、安裝大小和 UI 渲染性能等方面將有更明顯的優勢。隨著 Alpha 版本的發布,Compose Multiplatform 還收獲了新的 Android Studio 插件,包括對在 IDE 中顯示組件預覽的支持以及許多附加功能。

我們希望通過本文幫助大家進一步了解 Compose 的跨平臺能力,以及 JetBrains 將 Compose 從 Android 擴展到這些其他平臺背后的主要驅動力是什么。

Bitget已支持Alchemy Pay的入金解決方案:4月18日消息,加密交易所Bitget已支持加密貨幣支付提供商Alchemy Pay的入金解決方案,Bitget用戶可使用當地法定貨幣購買加密貨幣。[2023/4/18 14:10:01]

由谷歌打造的 Jetpack Compose 是一款用于在 Android 應用程序之內構建用戶界面的官方框架,上周剛剛發布 1.0 版本。與此同時,Android Studio 代號“極狐”的首個穩定版 2020.3.1 也正式亮相。

盡管才剛迎來 1.0,但谷歌表示“目前 Play Store 中已經有超過 2000 款應用程序在使用 Compose——更重要的是,就連 Play Store 這款應用本身也在使用 Compose。”谷歌方面還表示,“我們一直在與一些頂級應用的開發人員進行合作,他們的反饋和支持幫助我們使 1.0 版本更加強大。”

Compose 是一套 聲明式 框架,其最大特色在于擺脫了傳統 Android 方法中的層級結構,或者說布局與控制樹。Compose 用戶界面通過編寫帶有 @Composable 注釋的函數(用于描述屏幕狀態)來定義,也就是所謂函數生成用戶界面。谷歌 Android 開發團隊解釋道,“隨著應用程序狀態的變化,你的 UI 也會自動更新,這讓快速構建 UI 變得更加簡單。”

zkSync Era主網已恢復出塊:4月1日消息,據 zkSync Era 區塊鏈瀏覽器顯示,zkSync Era 主網目前已恢復出塊。此前報道,zkSync Era 主網今早疑似出現宕機情況,暫停出塊時長約為 4 小時。[2023/4/1 13:39:14]

Jetpack Compose for Android 迎來 1.0 版本

Compose 基于 Kotlin 開發,而 Kotlin 與 Android Studio(即官方指定的 Android IDE)均來自開發工具廠商 JetBrains。雖然 Jetpack Compose 專為 Android 打造(與谷歌的 Flutter 框架不同),但 JetBrains 公司堅信 Compose 完全能夠獲得跨平臺能力。

Compose Multiplatform 可以說是該框架面向 MacOS、Linux、Windows 以及 Web 開設的一個端口,目前剛剛發布 1.0 Alpha 版本。雖然尚處于早期開發階段,但 JetBrains 表示,其已經“為開發人員帶來能夠基本安全使用的穩定 API”。

加密托管機構Xapo Bank集成閃電網絡,并與Lightspark達成合作:金色財經報道,加密托管機構XapoBank整合了基于比特幣的閃電網絡,并與Lightspark合作,該公司由前FacebookCrypto負責人DavidMarcus掌舵,并于2017年將其機構業務出售給Coinbase,以專注于零售領域。XapoBank的用戶現在可以在任何接受閃電支付的供應商處即時即時支付不超過100美元的小額消費,而無需支付高額交易費和等待漫長的區塊鏈確認時間。[2023/3/2 12:39:09]

TheRegister 就此事詢問了 JetBrains 公司 Compose 項目負責人 Nikolay Igotti,希望了解為什么該公司在擁有了已經廣泛應用于 IntelliJ IDEA IDE 及多種豐富變體的桌面應用程序跨平臺 Java 框架之外,還要費力開發 Compose for Desktop。Igotti 的回答是,“舊有 Java 框架基本上就是修改版的 Swing。Swing 屬于默認 JDK UI 框架,Swing 和 AWT(Abstract Windows Toolkit,抽象窗口工具包)。Compose 則完全是另一碼事,當然我們也在設計中考慮到了互操作性需求……Swing 這套框架太陳舊了,最早出現在上世紀九十年代末。多年來人們對于 UI 的設計思路已經天翻地覆,Swing 顯然滿足不了要求了。”

以太坊開發者:Solana官方庫中存在一個任何dep更新都可能將木馬帶入SOL應用程序的漏洞:金色財經報道,以太坊開發者Evan Van Ness分享了一位開發者的帖子,他注意到該項目官方web3.js 庫中有一個潛在的關鍵問題,該問題可能會損害普通用戶和愿意構建基于 SOL 的應用程序的開發人員。在下載該庫后,該開發者在一個202MB的軟件包中看到了723個依賴項。在解壓庫時,又有310MB的文件被創建,其中有17000多個文件。問題是,所有的存儲庫都有一個非綁定的版本范圍,這意味著任何更新都有可能通過庫給基于SOL的應用程序帶來惡意軟件。

庫的安全漏洞是一個嚴重的問題,需要修復以避免未來的安全問題,但考慮到各種技術問題和最近的網絡停機,很明顯,生態系統充滿了錯誤、技術問題和其他問題,使Solana無法取代以太坊等網絡。[2022/8/12 12:22:00]

JetBrains IDE 中的 Compose for Desktop 項目

Compose 與 Swing 有一個比較大的共同點:與其他使用本機控件的跨平臺框架,比如例如 Java 的 SWT(Standard Widget Toolkit)以及微軟的 Xamarin 有所不同,它們選擇自主繪制控件。Compose 使用的 Skia 開源圖形庫,也在谷歌 Chrome、Flutter 及其他眾多框架當中得到廣泛應用。那這是否意味著 Compose 應用程序將沒有自己的原生外觀?對此,Igotti 的回應是,“這取決于開發人員的選擇,取決于他們如何為應用程序設置主題。在這方面,Compose 的情況與 Flutter 等其他框架沒什么區別。”

數據:以太坊“非0”地址數量超8100萬,創歷史新高:金色財經報道,據區塊鏈分析公司Glassnode最新數據顯示,以太坊非零地址數量達到 81,462,347 個,創下歷史新高。[2022/5/29 3:49:01]

那 Compose for Desktop 應用程序是否依賴于 JVM(Java Virtual Machine)運行?Igotti 表示,“我們也知道,JVM 應用程序的發布情況可能比較棘手。因此我們提供自己的 Gradle 插件,其使用 jpackage 與 Jlink 以 JVM 應用程序為基礎制作原生應用程序。Mac 的.dmg、Windows 的 MSI、Linux 的 deb 包等均可實現,大家用不著擔心 JVM。”

也就是說,開發成果將會是一款被精心包裹起來的 JVM 應用程序。JetBrains 還有一款用于解決這個問題的 Kotlin/Native 編譯器,“預計將在未來發布,或者專門用于桌面開發。”

對應用程序的另一種思考方式

那 Web 應用程序方面呢?Igotti 回應稱,“我們使用 Kotlin/JS 編譯器。”Compose 的 Web 版本不如桌面版先進,說明文檔中也警告稱“API 尚未最終確定,預計會發生重大變化。”此外,雖然 Web 版本確實使用 Compose 模型,但 API 卻完全不同,而且會使用 HTML 與 CSS。所以,Web 版與 Compose for Desktop 之間能夠共享的代碼應該比較少。

據 Igotti 介紹,“Compose 代表著一種不同的應用程序思考方式。狀態即 UI 的真實來源,而 UI 本身是無狀態的,其表達永遠由狀態計算得出。在這方面,Compose for Web 采用一組相同的原語,完全相同的狀態管理思路。但是對于具體的小部件集合與排列方式,Web 版與桌面版之間確實無法互通。”

說到這里,為什么要把 Compose for Android 擴展到多種其他平臺之上?“Compose 的目標受眾主要分為三類。首先是使用 Kotlin 與 Compose 的 Android 開發人員,他們希望把自己的開發成果交付至其他平臺;其二是純 Kotlin 開發人員,他們希望以‘一次編寫、隨處運行’的方式開發新的應用程序;第三則是那些不太熟悉 Kotlin 或者 Compose,但又希望開發出精美 UI 的用戶,我們希望能為他們提供實現目標的工具。”

Igotti 并沒有給出具體的發布日期,但表示自己希望 Beta 版能在今年秋天發布,“我們也希望能在今年之內推出 1.0 版本。”項目本身是完全開源的,“二十一世紀了,框架在大多數人們心目中就不應該收費。我們只是想開發一款長期缺失的軟件”,補足 JetBrains 當前商業模式中的工具鏈。

需要注意的是,Compose 并不提供可視化設計器。Igotti 提到,“大多數開發者都不喜歡圖形 UI 構建器”,聲明式 UI 與設計內容預覽才是最受歡迎的解決思路。“因此我們提供預覽機制,您可以在 composable 函數上添加注釋,并在無需運行應用程序的前提下快速預覽。”

JetBrains 認為目前工具市場對于桌面應用程序開發者的支持并不到位,公司組織的內部開發者調查也在一定程度上證實了這個結論。“桌面開發現在有點‘二等公民’的意思……這可是個需要高度關注的小眾市場。”

那么,JetBrains 會在自己的其他工具中使用 Compose 嗎?事實上,他們的 JetBrains Toolbox(用于管理已安裝的 IDE)已經在使用 Compose,但 Igotti 表示短時間內 Compose 還無法取代 IntelliJ IDEA 等現有框架。“編輯器是其中最復雜也最重要的組件,經歷了 20 年的發展演進,我們幾乎不可能在中途進行重寫了。無論是 JetBrains 還是我個人,都不打算強迫每個人都轉而使用 Compose。我們的目標是為原有框架選項滿足不了的用戶提供新的解決方案。”

那么,為什么除了 Flutter 之外,我們還需要另一個跨平臺框架?雖然谷歌的 Flutter 最開始主要面向移動設備,但現在也開始向桌面及 iOS 進軍,甚至比 Compose 還搶先了一步。不過,根據 StackOverflow 的最新調查,Flutter 使用的語言為 Dart;盡管 Dart 語言的人氣正在增長(正是受到 Flutter 的推動),但仍然無法與 Kotlin 相提并論。

更重要的是,Compose 的發展勢頭頗為強勁——其 GitHub repo 拿下 5000 多個星,上報問題的數量也非常多。雖然諸多問題代表著“麻煩”不斷,但也恰恰說明了這是開發者們所熱切關注的方向。

Compose 代表著一種獨特的 UI 構建方法,也許最期待 Compose 跨平臺功能的受眾,正是那些曾在 Android 上使用過它、又特別喜歡這種 UI 構建體驗的開發者。

Tags:OMPCOMPPOSCOMCOMP價格COMPLUS NETWORKPOSCHEredcommunitytoken

幣安app下載
RMRK:讀懂最強NFT協議RMRK:像HTML一樣靈巧的NFT協議_MRK價格

撰文:PAKA Labs研究員 MIDDLE.XReviewed : Shawn Lin 林曉( 文中部分內容翻譯自?RMRK官方博客?)1990年12月25日.

1900/1/1 0:00:00
BOND:Ondo Finance:讓DeFi收益風險可控化_ETH

在 2020 年初期,DeFi 合約的總鎖倉量只有不到 10 億美元,而在 2021 年巔峰時期總鎖倉量達到了驚人的 900 億美元.

1900/1/1 0:00:00
ESS:讀懂 Tranchess Protocol:自帶杠桿設計的「加密結構化基金」_tranchess幣

導語:Tranchess?Protocol 將母基金(Queen)拆解為兩個不同風險回報的子基金產品 (Bishop、Rook),從而實現更復雜但高效的鏈上資產管理方式.

1900/1/1 0:00:00
MON:看Binemon用“邊玩邊賺”游戲模式改造GameFi行業_nem

根據DappRadar最近一段時間數據顯示,Binemon是目前增長速度最快的NFT游戲之一,玩家以加密貨幣Token的形式獲得獎勵,然后可以兌換成現金.

1900/1/1 0:00:00
PUNK:如何利用NFT+DAO幫助“角色IP”快速試錯和成長?_MYNFT價格

我們每天都在消費以角色為中心的流行娛樂。成功的角色可以成為一個系列的基礎,例如星球大戰、漫威、哈利波特,這些系列可以跨越幾十年的時間鴻溝,并被成功整合到跨平臺和媒體類型的產品中.

1900/1/1 0:00:00
ECO:DAOrayaki 奧斯特羅姆:公共事務的治理之道_Play It Forward DAO

DAOrayaki DAO研究獎金池:資助地址: 0xCd7da526f5C943126fa9E6f63b7774fA89E88d71投票進展:DAO Committee 4/7 通過賞金總量:.

1900/1/1 0:00:00
ads