跨平台其实是一个老生常谈的话题,技术方案也是历经变迁,但始终热点不断,究其原因有二:首先,移动端原生技术需要配备iOS和Android两套团队和技术栈,且存在发版周期限制,开发效率上存在天然缺陷;其次,原生跨平台技术虽然出道较早,但是各方案都难以做到完美,因此也没有大一统的技术垄断。 其实这些问题都有一个统一的回答:看(业务、团队等)场景,看(业务、团队等)需求。每一种原生跨端方案在一定历史阶段内,都有其存在的意义和价值。 用数据来说话,可以对比下Flutter和ReactNative的几个维度: 1、生态对比 Flutter的基础数据:Watch3。6K,Fork19。9K,Starred134K,Issues数量目前一共是5K,已关闭5万。 ReactNative的基础数据:Watch3。7K,Fork21。6K,Starred100K,Issues数量1。9K。 Fork代表潜在的开发者,有近两万人关注这门语言。Star数自不必说,证明它的受欢迎程度。选择第三方框架时,看Star数也会帮助开发者降低筛选成本。 双方Watch、Fork分数相差无几,Star数落后。结合时间周期考虑,Flutter胜出。 2、性能PK Listviewbenchmarking:列表测试。 Heavyanimationstest:用Lottie来测Heavyanimationstest,看同屏有很多AE动画的情况下,哪方的表现更出色。 Evenheavieranimationstest:更复杂的动画效果上的表现 从Listview这一项的比较来看,Flutter吊打ReactNative。 从动画这一项来说,ReactNative的表现是比Flutter胜出的,可能是因为Flutter没有针对Lottie这种动画场景做优化导致的。 更复杂的动画效果上的表现性能上Flutter已经大于等于ReactNative。 仅仅综合以上两项对比来看的话,Flutter已经出现了一定的优势,这也是为什么很多企业和开发者在逐步抛弃ReactNative的原因。 当然,这只是片面分析,要根据实际情况进行取舍,欢迎大家讨论。