需求目的
在设备多、APP搭载方法增多、各平台技术孤立的时代,作为公司的基础技术开发团队,为了提高产品开发效率、降低实现的技术成本、达到最佳的产品效果,需要寻找可靠和优秀的技术解决方案
考虑因素
项目因素
在项目规模上,我们的APP应用需要支持(百万)用户的使用重要度是,
相对于时间要求、目前项目众多的产品需求、多平台实验,技术实现的时间一定越早越好
需要SEO的支持吗?
是实现沉浸式的体验吗?
你想体验比现在更好的表演吗?
希望在更多的边缘实现统一的产品体验
团队因素
项目目前的技术堆栈主要是React成员技术堆栈Vue React
成员对现有技术的满意度和对新技术的期待
技术因素
能否满足功能的需要能满足性能的需要吗
使用方便性
保守性
可扩展性
技术成熟度
社区活跃度
开发者和支持小组的活跃度
有许可证的问题吗
学习曲线怎么样
技术选型
候选技术
本机开发阿里韦EX
脸书rn
谷歌平板电脑
京东泰罗
美团MpVue
d云联合应用
腾讯网
你要去哪里,Nanachi
滴Mpx
网易考拉Megalo
微信支付Omi-mp
滴滴Chameleon
初步筛选
京东太郎d云联合应用
美团MpVue
腾讯网
滴滴Chameleon
目前的跨平台方案大致三种类型说明和对比
598c3b1e14de79.png?from=pc">详细对比
多端支持
流行活跃度
开发工具
组件库/工具库/Demo
综合对比图
GitHub
chameleon: github.com/didi/chamel…mpvue: github.com/Meituan-Dia…Taro: github.com/NervJS/tarouni-app: github.com/dcloudio/un…WePY: github.com/Tencent/wep…实践反馈
支持宝小程序
不支持Swipe
不支持授权登陆
百度小程序
不支持个人开发注册appid
Taro和uniapp对比
Taro
优缺点:
Taro在App端使用的是React Native的渲染引擎,原生的UI体验较好,但据说在实时交互和高响应要求的操作方面不是很理想。
微信小程序方面,结合度感觉没有那么顺滑,有一些常见功能还是需要自己去封装。
另外就是开发环境难度稍高,需要自己去搭建iOS和Android的环境,对于想要一处开发到处应用的傻瓜式操作来讲,稍显繁琐。
但Taro 3的出现,支持了React 和 Vue两种DSL,适合的人群会更多一点,并且对快应用的支持也更好。
学习成本:
React、RN、小程序、XCode、Android Studio
uni-app
优缺点:
uni-app在App渲染方面,提供了原生渲染引擎和小程序引擎的双选方案,加上自身的一些技术优化(renderjs),对于高性能和响应要求的场景展现得更为流畅。
另外它整体的开发配套流程也做得很容易上手。比如有丰富的插件市场,使用简单,支持大量常用场景。
还比如它的定制IDE——HBuilder,提供了强大的整合能力。在用HBuilder之前,我心想:“还要多装一个编辑器麻烦,再好用能有VS Code好用?”用过之后:“真香!”
虽然用惯了VS Code对比起来还是有一些痛点没有解决,但是对于跨平台开发太友好了,其他缺点都可以忍受。HBuilder里支持直接跳转到微信开发者工具调试,支持真机实时预览,支持直接打包小程序和App,零门槛上手。
不过,uni-app也还是不够成熟,开发中也存在一些坑,需要不时到论坛社区去寻找答案。
学习成本:
Vue、小程序
总结
跨平台方案目前来看都不完善,适合以小程序、H5为主,原生APP(RN)为辅,不涉及太过复杂的交互的项目。
uni-app 开发简单,小项目效率高,入门容易debug难,不适合中大型项目。 Taro 3 开发流程稍微复杂一点,但复杂项目的支持度会稍好,未来可以打通React和Vue,但新版本暂时还不支持RN。
不考虑原生RN的话二者差不多,考虑RN目前Taro3不支持,只能选uni-app;开发效率uni-app高,有自家的IDE(HBuilderX),编译调试打包一体化,对原生App开发体验友好;个人技术栈方面倾向于Taro/React,但项目角度uni-app/Vue比较短平快,社区活跃度也比较高。结果评审
评审意见:
xxx
xxxx
xxxxx
做出决定