Flutter技术调研及可行性结论

2019-03-26  本文已影响0人  Yagami3zZ

前言:

随着Flutter的快速发展,以及在国内外应用中作为跨平台方案使用的普及,Flutter吸引了无数开发者的眼光。我们也对Flutter从以下方向进行了技术方面的调研,并在项目中进行了接入开发实战,最终给出如下的可行性结论。

调研方向:

1、Flutter介绍

2、跨平台程度,UI/平台对应的API调用

组件UI:
API调用:
遇到的问题及解决方案:
跨平台相关总结:

Flutter很好的提供了,页面布局导航,动画,手势,交互,网络,线程,数据库,生命周期管理,与原生平台通信等跨平台相关,几乎所有所需要功能的支持和实现。同时官方和社区提供的大量插件,为跨平台的功能开发和实现提供了很大的便捷。

3、与现有项目兼容度,可混合/兼容

主要内容:
混编开发:
遇到的问题及解决方案:
项目混合开发相关总结:

Flutter完全支持项目的混合开发,但在涉及到混合栈堆叠的时候,相关便捷性会降低(比如Native页面-->Dart页面-->Native页面-->Dart页面 )

4、测试调优

......

......

Flutter提供了很多工具和特性,帮助调试Flutter应用程序,保证开发者代码的健壮性和应用程序的性能表现。

5、打包部署

Flutter提供为Android 和 iOS平台进行多渠道配置,发布,持续构建和部署的方法。

6、与原生体验的比较

7、热更新

8、第三方库支持

网络库Http Dio
数据库Sqlite , SharePreference

图片库Cached network image
DeviceInfo
Firebase
WebView通信
Webview Plugin
Image_Picker
Date_Picker
Url_launcher
电池
相机
......

在官方插件库Pub上提供了官方和开发者开发的大量插件,以满足开发者的日常开发需要。目前已有大量开发者在使用这些插件,开发者也可以自己开发相关插件并上传供其他人使用。

9、学习成本,(开发/部署)

Dart的语法个人觉得比较简单,很像是Java+Kotlin的结合体。但是Flutter本着万物皆为Widget的原则,提供了接近30多种不同的布局widget,日常中用的也有如Container、Padding、Center、Align、Row、Column、Stack、ListView等上十种,在布局方面的学习曲线较长,学习成本较高。

10、学习资源,参考资料等

官方文档:https://flutter.cn
Widget目录:https://flutter.cn/docs/reference/widgets
API文档:https://docs.flutter.cn/
插件库Packages:https://pub.flutter-io.cn/flutter
官方维护Plugins : https://github.com/flutter/plugins
Flutter Wiki: https://github.com/flutter/flutter/wiki/Add-Flutter-to-existing-apps
iOS风格组件:https://flutter.cn/docs/development/ui/widgets/cupertino
Samples : https://github.com/flutter/samples/blob/master/INDEX.md
各App Flutter实践总结...

11、Flutter在国内的应用及相关开发实践总结:

闲鱼:https://www.zhihu.com/org/xian-yu-ji-zhu/posts?page=1
今日头条:https://mp.weixin.qq.com/s/-vyU1JQzdGLUmLGHRImIvg
美团:https://tech.meituan.com/2018/08/09/waimai-flutter-practice.html
网易新闻:https://mp.weixin.qq.com/s/a0in4DqB8Bay046knkRr1g
爱奇艺: https://mp.weixin.qq.com/s/f4j3_NGxjAjqNmecc5XrjA
饿了么:https://juejin.im/post/5b8d46c3e51d4538e710bc78
京东,高德,Now直播等...

12、Flutter开发角色定位:

13、Flutter槽点(只列举个人觉得最影响的):

14、可行性结论 (得分越高越好,满分为5分):

跨平台支持(UI组件/API) 项目兼容度 学习成本 与原生体验的比较 热更新 第三方库支持 市场应用情况
分数 4.5 4 3 5 1 4 4

结合上述的调研和分析,使用Flutter进行项目的开发是完全可行的,而且也是比较有发展前景的。不过如何确定Flutter和Native端开发的边界,会是一个非常重要且需要慎重思考的问题。

上一篇 下一篇

猜你喜欢

热点阅读