跨平臺開發框架 Lynx 初探

跨平臺開發是目前開發較熱門的方向,React Native 在這方面取得了很大的成功,同時 Flutter 也得到了很是多的關注。React Native 採用 Web 框架開發並使用 Native UI 進行渲染,很大程度上下降了 Native 開發的門檻而且提升迭代的效率,可是也不可避免地存在一些不足之處。git

本人做爲 RN 的長期開發體驗者,深知在有些技術在現有的 RN 這類框架上無法獲得很好的解決。好比首屏的速度,複雜的跟手動畫,和原生 Android 和 iOS 上的體驗確實有必定的差距的。固然這些小小的毛病不能阻礙跨平臺開發技術的發展。本人也在持續的關注 Flutter,這個框架解決了RN上性能的問題,可是也增長了學習成本。github

Lynx

最近發現了跨平臺的一個新框架 Lynx ,從官方簡介來看這個框架還處於 alpha 狀態,目前尚未完整的文檔,只有體驗 demo 。不過在體驗了這個框架提供的 demo以後,感受仍是能夠持續關注下去的。Lynx 官方宣稱擁有和 Native 一致的首屏速度和交互體驗,體驗 demo以後發現首屏速度和交互的確很優秀。框架

體驗

正好在以前編譯 RN 和 Flutter 已經下載好了 Android SDK 和 NDK ,按照 How To Build 進行編譯仍是比較方便的。性能

最終效果和官方給出的動圖是一致的,就是總體的 demo 仍是比較少的,略簡單。頁面開發流程暫時還沒嘗試,只能先看看效果。學習

在 Lynx 的介紹裏面看到了和其餘現有的跨平臺框架相比的一些不同的特性,根據本身的體驗和官方介紹簡單說一下:測試

  1. 頁面首屏展現,看到給出的 demo 就能夠知道,這個和原生的 Android 和 iOS 頁面同樣,均可以作到直出的,基本沒有任何白屏的情況。這一點相比於 RN 確實是一個不錯的點。
  2. 交互動畫,就是跟手動畫,在 RN 上要去實現這類動畫確實是比較難(自己由於中間還要過一層 JSBridge 的緣由),要麼本身拓展 Native 的模塊。而在 demo 上的交互動畫很是順暢,並無出現任何的卡頓,在效果上甚至比 Flutter 幀率更高。
  3. JSBinding 機制,根據官方的說法有更高效的 JSBridge,可是體驗上暫時沒感受出來,稍後去研究一下代碼
  4. 動態發佈測試,這個是全部跨平臺框架必須有的,不算什麼新鮮事。這個看文檔的介紹須要結合腳手架 lynx-cli 。

頁面直接展現和滿幀的交互動畫的實現原理是什麼呢?官方給出了一個簡單的工做流程圖和介紹。理解了這個就基本知道這個問題的答案了,頁面展現快的緣由是由於將首屏的展現變成了排版文件,從而略過了 JS 的執行生成首屏元素的步驟,而交互動畫的實現也是經過了中間的交互動畫引擎在接收到事件後直接響應,從而略過了 JS 的中間步驟。動畫

體驗完Lynx,以爲這個框架仍是值得後續觀望,看下能作到什麼程度。ui

最後

Lynx 框架如今仍是在 alpha 階段,暫時還不能直接用來開發要上線的應用,功能也尚不完備,可是能夠關注它的發展,畢竟這個技術在實現上和 RN 有所區別,也但願能有新的想法,在知足先在的需求的狀況下突破現有的侷限。cdn

嘗試 demo 以後,準備去看看代碼,一探內部實現。Lynx 的倉庫也給出了可使用的 API 列表,後續會根據 API 進行簡單實踐。但願能有更多的跨平臺開發框架出現,推進技術的發展。事件

附上 Lynx 倉庫地址:https://github.com/hxxft/lynx-native

相關文章
相關標籤/搜索