跨平台开发框架 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

相关文章
相关标签/搜索