Hybird 框架需要与 Web 用同一套实现吗?

知乎有自己的 Hybird 框架。早期的时候是客户端自己维护 HTML/JS/CSS ;后来觉得交给前端维护更好,就写了一套 WebView 与 JS 交互的集合;再后来有了 Hybird 框架。开始做这套东西的时候前端已经迁移至 React 了,我们也曾经引入过 React Native ,但 RN 集成到客户端里面有很多问题,后来是放弃了。但我个人也没接触过 RN ,对此不做评价。

从前端具备控制客户端内部 WebView 的展示能力开始,其实现和 Mobile Web 差别不大,可以说是 Mobile Web 针对客户端 Hybird 做了适配,可以说现在 Hybird 里跑的是 React 。我对这种 Hybird 和 Mobile Web 用同一套实现的方式是质疑的。

早期客户端自己维护 HTML/JS/CSS 的时候,页面加载速度基本维持在 500ms 左右,那时候我们用的是 Zepto.js ,样式更新通过发版解决;后来逐渐过渡到前端维护,尽管做了 JS/CSS 缓存更新机制,加载速度最快也在 800ms ;现在正在做整个页面的预加载机制,但是页面加载的速度还会出现很慢的情况。我开始盲目地对 React 在 Android WebView 上的性能产生质疑,或者说如果只是做一个 Hybird 的单页面,用重(?)框架真的合适?

另外一个原因在于,如果前端与客户端没有联调好全部功能,可能在前端点着点着就窜到了 Mobile Web 页面,这样的用户反馈在早期并不少见,而且现在的开放过程中也经常遇到。即使是简单页面,端与端之间的联调也是相对比较浪费时间的,开发体验不是很好。不知道其他使用 Hybird 框架的公司是怎样的。对前端来说使用同一套实现能简化很多逻辑,但是在客户端角度,还是希望 Hybird 上运行是足够简单高效的单页面。

返回