前言
歷經 3 個月的開發後,北海 Kraken 釋出了全新的 v0.11.0 版本。如果你對 還不是那麼瞭解,那麼你可以跳到文末閱讀我們往期的文章來了解 Kraken 是什麼以及它解決了哪些場景下的問題。
這個版本我們主要進行了幾次大的重構,面向未來地給出更合理的架構設計。同時,還增加了 以及自動化的 CI 工具以衡量首屏效能以及支援了 Textarea。此外,Flutter 的版本也正式升級到了 2.8 。詳細的更新紀錄檔可以參考。
下面為大家介紹該版本的一些重要更新。
更新內容
支援 textarea 標籤
在本次更新中,Kraken 支援了 textarea 標籤,使用者可以通過該標籤支援多行純文字的編輯。如果業務場景需要編輯(提交)大量的純文字資訊時,這個標籤可以滿足需求。
增加自動化 Benchmark 統計及衡量首屏效能
首屏效能是衡量引擎效能的一個重要重要指標,首屏效能意味著白屏時間的長短,對使用者體驗有著非常大的影響。Kraken 通過將 QuickJS 作為預設的 JS 引擎,使用者可以直接下發 ByteCode 格式的檔案來優化應用程式的 JS 執行時間。
Kraken 基於 衡量首屏資料,該 Benchmark 是一個實際業務場景比較常見的商品列表頁。統計從載入完成並開始執行入口檔案到 window 上的 load 事件觸發的時間,以此衡量實際使用者從開啟頁面到可見的時間。
會在當分支 merge 到 main 分支時自動採集以及上傳 Kraken 與 Webview 之間的上述效能資料,多次採集後去除抖動並計算平均值。
具體的最新效能資料可以點選 檢視。
TSC 會議直播
我們期望通過 TSC 的機制來讓社群的貢獻者更多地參與共建,同時規劃以及對設計的討論能夠更加透明,讓每個關注 Kraken 的同學瞭解 Kraken 已經有什麼能力,正在做什麼功能以及未來要怎麼樣發展。基於此,我們在每兩週例行的 TSC 會議上開始嘗試直播,讓大家能夠了解到 Kraken 的一些討論以及規劃。
更詳細的共同作業機制以及入群看直播的方式請移步 來了解更多。
重構事件機制
為了形成面向未來的架構設計,以及更好地解決目前已有手勢互動及事件體系的複雜度,我們對事件機制進行了一次大的重構。重構後,開發者無論使用 Dart 還是 JavaScript 去監聽事件做對應處理,體驗上是完全一致的。未來,我們也會基於此在下個版本支援 HTMLView 以支援純 Dart 的 Web 渲染,敬請期待。
規範釋出規則
TSC 會議上我們明確了版本的迭代以及釋出計劃,後續我們將會採用更加規範化的釋出規則,具體規則如下:
-
增加例行 Patch 位版本釋出時機:每週的週四, 採取搭火車的形式,將 main 分支上的內容釋出 x.y.(z+1)。
-
如遇緊急 Bugfix, maintainer 可以隨時決定釋出 x.y.z+(n+1) 的版本,如
0.10.2+1
。此決策需至少 2 名 tsc 成員同意。 -
增加每天的 nightly version (prerelease) 機器人自動化釋出 例如
0.10.3-nightly.${commit-hash}。
Flutter 版本支援
0.11.0 版本,Kraken 繼續升級所依賴的 Flutter 版本,目前我們已經將依賴的版本升至 2.8.1 。
此外,0.11.0 版本會繼續支援 Flutter 2.5.3 的版本,直到 0.12.0 版本釋出為止。
注:Kraken 0.11.0 只會釋出支援 Flutter 2.8.1 版本的 release 包,支援 Flutter 2.5.3 版本的 release 包需要開發者在 Kraken 的 Github 上 checkout 對應 的原始碼下來自行編譯。
Roadmap
此外,我們也明確了今年計劃做的一些新的功能,把具體的一些目標確定了下來,詳細細節可以檢視。我們的迭代計劃可以直接從 中檢視。
其他更新
除了以上介紹的能力之外,我們也修復了大量的 bug,詳細請見 。
關於北海 KRAKEN 更多的內容
社群共同作業機制
我們期望通過一種良好的社群共同作業機制,來與社群的眾多開發者一起共建 Kraken 底層能力及生態。 Kraken 團隊通過的方式來參與 Kraken 功能迭代以及 issue 討論等工作。同時,通過由一部分共同作業者組成的來確定技術方向、釋出以及客製化標準等工作。
簡單地說,只要向 Openkraken Group 提交一定品質和數量的程式碼即可成為共同作業者;對專案提交建設性的貢獻後,TSC 成員有權提名共同作業者參與到 TSC 中。
Kraken 團隊期望通過一種友好、共同參與的共同作業機制,讓社群的開發者能夠更好地參與到對專案的演進中去,讓每個人的聲音都能被聽到,共同促進 Kraken 以及 Web 標準 的發展。
更詳細的共同作業機制可以移步 。,