本周五下午公司组织了三场分享:
一场是关于前端微架构;
一场是关于flutter的介绍;
一场是关于react native项目实战
flutter最近热度很高, 是由 Google 的工程师团队打造的,用于创建高性能、跨平台的移动应用的框架, RN 也是使用率较高的跨平台移动应用开发框架.
flutter的介绍当中并未介绍实际开发案例, 而选择使用RN技术的项目组则是考虑到由于flutter无法进行动态发布而选择了RN, 使用之后也发现, 之前需要两个人力的工作开发量(1安卓, 1ios)在使用RN 之后人力投入可以优化到1.2人力左右. 听完分享之后, 立马去网上了解了一下 二者的区别, 这里自己简单做一下总结:
flutter与RN的相同点:
1.都是移动开发跨平台解决方案
2.界面的编写都采用响应式视图,维护了一个状态机,只更新改变的最小区域界面
3.都支持热重载hot reload,开发调试非常方便
4.调用系统的service仍然需要封装接口,仍然还是需要懂得native开发
flutter与RN 的区别:
1. 性能方面:
Flutter由于是基于Dart语言, 所以避免了RN的那种通过桥接器与Javascript通讯导致效率低下的问题,所以在性能方面比RN更高一筹,会更接近原生的体验.
2. 学习成本方面:
Flutter是基于Dart语言,相对来说,由于要学习一门新的开发语言所以学习成本比较高, 而RN采用JS语言开发,基于React,对前端工程师更友好.
3. UI 样式方面:
flutter实现跨平台采用了更为彻底的方案, 因为它基于canvas自己实现了一套UI框架, 所以兼容性更好, 而 RN 在在样式方面还是会遇到比较多的问题,且解决起来会有点麻烦.
4.成熟度的方面:
React Native 是在 2015 年发布的,经过 3 年多的发展,已经比较成熟, 虽然也还不完善, 但是Flutter 是在今年 6 月份才推出发布预览版,社区也刚刚发展, 在github上还有两千多个待解决的问题,所以flutter需要更多时间
后面的答疑环节, 其实也对flutter与RN未来的前景和发展趋势做了一些简单的分析: 技术的选择还是要基于实际的开发场景, 如果
flutter能够解决动态发布的问题,那么会有更好的一统跨平台开发的优势, 但是由于谷歌已经将动态发布这个性能从开发列表中取消, 未来怎么样,还很难说.
不错的参考文章链接:
APP跨平台开发技术分析:https://www.jianshu.com/p/3cd9c3c66b09
Flutter和RN对比: https://www.jianshu.com/p/51c4f7f6e446
flutter框架研究与RN对比: http://szuwest.github.io/flutterkuang-jia-yan-jiu-he-yu-rndui-bi.html