ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码
当前位置:首页 >> 网络编程 >> IOS开发 >> Pluto - iOS 上一个高性能的排版渲染引擎

Pluto - iOS 上一个高性能的排版渲染引擎(1/3)

来源:网络整理     时间:2018-02-11     关键词:

本篇文章主要介绍了" Pluto - iOS 上一个高性能的排版渲染引擎",主要涉及到方面的内容,对于IOS开发感兴趣的同学可以参考一下: 导语 Pluto 是 iOS 上的一个排版渲染引擎,通过 JSON/JS 文件可以很方便地描述界面元素,开发效率很高,并且在流畅度,内存等方便有保证Qzone ...

导语 Pluto 是 iOS 上的一个排版渲染引擎,通过 JSON/JS 文件可以很方便地描述界面元素,开发效率很高,并且在流畅度,内存等方便有保证

Qzone Feed 业务复杂,样式很多。每次新增一种 Feed 样式,开发工作量很大,需要跟版本。样式之间耦合严重,每改一种样式,另一种样式可能会受影响。

 Pluto - iOS 上一个高性能的排版渲染引擎

基于这样的背景下,Feed Team 急需一个比较成熟的渲染引擎,他至少需要解决以下问题:

  • 提升开发效率。

  • 样式之间独立,不互相耦合。

  • 新增和修改 Feed 样式不需要跟版本。

  • 无论采取什么方案,列表的滑动流畅度必需保证至少跟现有的一样。

基于这样的需求,我们重新盘点了市面上比较成熟的排版渲染引擎 ComponentKit,新的开发框架比如 React Native,甚至参考 Android 的排版系统。都难以同时解决上述问题,最终决定我们自己来做一个,一个专注性能和开发效率的排版引擎,Pluto。目前 Pluto 已经应用于 QQ,Qzone 上大部分的空间 Feed 样式,关于 Pluto 和这些现有的排版渲染引擎对比的细节,我后面会说明,我们先来看看 Pluto 用起来是怎么样的。

首先需要一个排版描述:

 Pluto - iOS 上一个高性能的排版渲染引擎

以上排版数据的结果如下,左边是一个图片控件,右边是文字控件。

 Pluto - iOS 上一个高性能的排版渲染引擎

想必看到这里,大家应该知道 Pluto 是什么东西了。上面的 JSON 文件阅读起来也非常自然,直接。接下来要解决的问题比较多。这里重点描述点击事件、模板、重用、扩展。分别解决热更新,开发效率,性能优化、功能扩充,四个方面的问题。

点击事件

Pluto 还可以通过 json 描述绑定事件响应的 js 脚本,比如以下 json 文件:

 Pluto - iOS 上一个高性能的排版渲染引擎

图片组件被点击的时候,可以找到相应的 js 文件,调用 onClick 方法。

模板

相关图片

相关文章