1、前言
个人认为跨平台的开发技术是大势所趋,因为这可以节省人力、物力。说白了就是“省钱”。跨平台一直都在探索中,最早的webview,到后来的react native、weex,在到现在的flutter、kotlin native。我使用react native并在实际项目中使用大概有1年的时间,但后来放弃了,原因有很多,不仅仅是react native 存在诸多问题,还有一个很大的问题的团队会的不多。我们既然选择的coding,我们就应该知道这是一个活到老学到老的,新技术的诞生我们不一定要用到实际项目中,但我们可以画一些时间研究研究,看看它能解决什么问题,是否能提高我们的开发效率,就像android studio 仅仅1年就干死了eclipse,多学一些东西总是没有坏处的,回到主题,Flutter vs React Native 到底哪个好?我们从下面几个方法对比下:
2、对比
1、环境搭建
React Native:环境搭建比较复杂,我印象中当时至少搞了1天。
flutter:很容易,下载sdk,然后在android studio中安装flutter和Dart 2个插件即可,IOS环境未测试,但应该也一样。
2、开发ide
React Native:我当时使用的是android studio开发,没有代码提示(据说现在有了),开发效率不高。
flutter:开发环境比较完善。
3、混合开发
React Native:可以混合开发,而且可以1个activity对应一个React Native文件。
flutter:可以混合开发,但android中只能存在一个activity继承FlutterActivity。
4、性能
React Native:通过js桥接原生控件
flutter:有一套自己的渲染机制,理论上性能要比React Native,但肉眼所看的性能体验基本没区别,但React Native list 性能比较差。
5、第三方库
React Native:目前看社区还是比较活跃的,而且facebook很重视。
flutter:google亲儿子,刚刚起步,但发展应该不错。
所有的跨平台都有一个问题就是第三方库的支持,比如登录、分享、推送等都需要第三方去适配,但第三方很少去适配,所以混合开发会是主流
6、热重载
React Native 和flutter都有热重载技术,这比原生节省了很多开发时间,尤其是项目比较大的时候你会发现修改一个小地方然后编译运行,然后可以去休息了。。。
7、维护、升级
React Native:升级是一个很危险的事情。
flutter:还没具体升级。
8、学习成本
包括Kotlin在内我都觉得学习成本不是很高,一周基本都可以入门,高级api随用随查就好。
9、发展前景
个人感觉Flutter会好一些,主要是因为亲儿子。
10、跨平台
React Native:虽然打着跨平台,但很难做到一套代码全部适用。
Flutter:仅仅是demo阶段,不好说。。。
最后说说这些跨平台的使用,个人觉得目前这些技术都还不成熟,这些技术可以作为一个辅助,比如一些设置、关于等页面完全可以使用,最后强烈推荐 Kotlin,绝对可以提升30%以上的开发效率。
交流
如果你对Flutter还有疑问或者技术方面的疑惑,欢迎加入Flutter交流群(微信:laomengit)。
同时也欢迎关注我的Flutter公众号【老孟程序员】,公众号首发Flutter的相关内容。
Flutter地址:http://laomengit.com 里面包含160多个组件的详细用法。