需求目的
在移动互联网时代,应用平台越来越多,有 Android、iOS、H5、小程序、快应用等,而小程序目前又有很多服务商,比如微信小程序、支付宝小程序、百度小程序、头条小程序、QQ轻应用,
我们的应用想要在用户能触达的平台和服务商中都能提供相应的产品服务,针对不同的端去编写多套代码,做各端的应用,产品运营和开发成本显然非常高,这时候只编写一套代码就能够适配到多端的能力就显得极为需要,那有没有什么技术方案可以解决这个问题呢,让我们能一次开发,统一配置,到处提供统一服务。
多端统一技术方案是我们想要寻找的,我们需要寻找一套可靠、高效、一次开发,多端运行的优秀技术解决方案,来提升我们产品上线的效率,降低实现的技术成本,以及达到最好的产品效果。
结论总结
为此,我们对业界流行的一些技术方案进行了调查和预研,通过各个维度的综合比较,做出方案选型结论如下:
基于各个维度的综合比较,我们最终决定选择 Taro 作为我们多端统一技术方案选型。
Taro 是一套遵循 React 语法规范的 多端开发 解决方案。使用 Taro,我们可以只书写一套代码,再通过 Taro 的编译工具,
将源代码分别编译出可以在不同端(微信/百度/支付宝/字节跳动小程序、QQ轻应用、快应用、H5、React-Native (可以嵌入iOS,Android原生App,体验较好))运行的代码。
依托 Taro 多端适配能力,丰富的自建组件库,强大的生态,活跃的社区,以及积极专业的开发者团队,可以保障我们用很低的开发成本实现多端应用的统一。
考虑因素
项目因素
- 项目规模,我们的应用需要支撑x级用户的使用
- 重要程度,xxx是我们团队及部门目前最主要的产品突破点
- 时间要求,目前xxx已经有很多产品需求,对于多平台的实验,技术实现时间上肯定是越快越好
- 需要支持SEO
- 希望是实现沉浸式的体验
- 希望能达到比现在更好的性能体验
- 希望能在更多的端实现统一的产品体验
团队因素
- 项目目前技术栈主要是 Vue + Next + VueX + Node
- 成员技术栈 Vue React Flutter React-Native
- 成员对现有技术的满意度以及对新技术的期望
技术因素
- 能否满足功能需求
- 能否满足性能需求
- 易用性
- 可维护性
- 可扩展性
- 技术成熟度
- 社区活跃度
- 开发者或支持团队活跃度
- 是否存在license问题
- 学习曲线如何