Kraken v0.8.0 釋出 — 支援 Flutter 2.0

染陌同學發表於2021-07-08

官網:openkraken.com/

Github: github.com/openkraken/…

66084423.jpg

自 2021年4月21日開源以來,北海(Kraken)就迎來了社群極大的關注。作為一款相容 W3C 標準的渲染引擎,打造出高效能,輕量,可擴充套件的產品一直是 Kraken 團隊奮鬥的目標。經過近 2 個多月的迭代,在修復了“億點點”的 bug 後,Kraken 終於迎來了 0.8.0 版本。

更新內容

支援 Flutter 最新 stable 版本

0.8 版本支援最新的 Flutter stable 版本 — v2.2.2,並且完美支援 Dart Null Safety。

效能提升

在這個版本中,我們優化了 Bridge 的執行效能,通過之前的調查研究我們發現 JavaScript Bindings 中每一次屬性訪問的呼叫,都會對已知的屬性集合做一次額外的拷貝,因此我們優化這塊的實現來減少不必要的拷貝。

通過這個的優化策略,Kraken 0.8 版本相比 0.7 版本提升了 10% 的首屏效能。

0.7.0vs0.8.0.gif

Flexbox layout 效能增強

Flexbox 佈局的效能也得到了增強,我們新增了判斷樣式是否變更的策略來減少一些不必要的 layout 操作,進一步壓縮了提升了 flexbox 所消耗的時間,即使頁面中存在多層 flexbox 巢狀的情況,也能快速生成頁面。

新的 HTML 標籤和新的 CSS 屬性單位

在標籤和 CSS 能力方面,我們在 0.8.0 版本新增 h1-h6,strong 等常用 HTML 語義話標籤的支援,並且新增了 vmin & vmax CSS 單位,同時還支援文字樣式的繼承。

在佈局能力上,我們新增了 margin 雙邊距合併的,雖然這個功能在 W3C 小組看來是個 design mistake,但是我們依然打算去支援它,提供相容 W3C 標準的渲染能力始終是 Kraken 的主要目標。

image-20210702221853035

大量問題修復

開源之後,社群同學反饋了很多 Kraken 使用上的問題,其中包括整合應用黑/白屏,vue/react 頁面無法執行,事件冒泡不符合 W3C 標準行為,以及一些其他的報錯問題。

在 v0.8.0 版本,上訴的問題中都已經被解決,在這裡還要再次感謝社群使用者的支援。如果沒有你們的幫助,我們做不到這些。

社群使用情況

在 Kraken 開源之後,有多家公司都向 Kraken 團隊表示,他們將嘗試接入 Kraken 到他們的 App 中去,目前已知的公司包括:

  1. 優酷
  2. 高德地圖
  3. QQ 音樂
  4. 陸金所
  5. 塗鴉科技

如果你的產品也在嘗試使用 Kraken,歡迎在評論區進行回覆。

What's Next

目前 Kraken 團隊的首要目標是提供極致的啟動效能,我們將在下個版本(0.9)推出更快的技術方案來提升應用的啟動效能:

  • 支援 Quickjs,提供 Bytecode 載入支援。
  • 支援 HTML 文字格式,支援 SSR 渲染方案。

歡迎持續關注 Kraken 的進展,如果你有任何和 Kraken 有關的問題,歡迎在 Kraken 的 Github Repo 上發起討論。

相關文章