字節跳動團隊跨平臺UI框架Lynx開源,已用于TikTok等
3月5日消息,Lynx團隊今日宣布開源跨平臺UI框架Lynx,這是一套幫助Web開發者復用現有經驗,通過一份代碼同時構建移動端原生界面與Web端界面的技術方案。
Lynx專為多樣化、富交互的場景打造,已用于TikTok等應用中。官方介紹稱:“它有著高性能、多功能的渲染引擎、性能優先的雙線程UI編程范式、以及基于Rust的現代工具鏈等諸多特性。”
具體來看,Lynx擁抱了開發者熟悉的Web開發范式,使開發者能夠像在Web上一樣繼續使用標記語言和 CSS。Lynx 原生支持了CSS動畫和過渡、CSS選擇器和變量用于主題化定制,以及漸變、裁剪和遮罩這樣的現代CSS視效能力。
Lynx最具代表性的架構決策之一是靜態強制劃分用戶腳本的運行環境,將用戶腳本拆分跑在了兩個獨立的運行時上:
一個主線程運行時,它由PrimJS這個專為Lynx優化的JavaScript引擎驅動,有著獨享的同步 UI 操作權限,用于處理初始啟動和高優事件處理等任務;
另一個則是后臺運行時,作為用戶代碼的默認執行環境,以確保主線程的低負載和非阻塞。
這一架構帶來了Lynx的兩大“殺手锏”:
首幀直出(Instant First-Frame Rendering,IFR):用研表明:如果渲染足夠快(而Lynx正是如此),那么在界面過渡時就無需多余的反饋。Lynx通過短暫阻塞主線程,確保首幀一次性完整呈現,因為用戶不會看到空白,可以給用戶帶來一種即刻響應的感知體驗。
主線程腳本(Main Thread Script,MTS):它是一小段靜態調度的代碼,被授予在主線程運行的權力,用于處理高優的事件和手勢行為,非常適合那些要求極致跟手、快速響應的場景,以實現原生交互觸感。
在內部實踐中,Lynx團隊宣稱觀察到許多從Web遷移到Lynx的界面,普遍能縮短2–4 倍的啟動時間。內部性能測試同時表明,相比同類技術,“Lynx在iOS上不相上下,在安卓上則持續領先”。
Lynx最初由字節跳動的工程團隊開發,并將由該團隊繼續推進其演進。作為在一系列應用中廣泛使用 Lynx 的重要用戶,TikTok認可Lynx的創新與潛力,促進Lynx的開源發布,在資金、技術優化、社區推廣和生態建設等方面提供支持。
IT之家附開源地址如下:
https://lynxjs.org/zh/index.html
【來源: IT之家 】