Flutter调研结果

2019-11-25  本文已影响0人  sxyxsp123

1:原生开发与跨平台技术对比

1.1 原生开发

原生应用程序是指某一个移动平台(比如iOS或安卓)所特有的应用,使用相应平台支持的开发工具和语言,并直接调用系统提供的SDK API,原生开发有以下主要优势:

主要缺点:

1.2 跨平台技术简介

针对原生开发面临问题,跨平台技术应运而生,根据其原理,主要分为三类:

下面主要说一下第三种(自绘UI+原生)跨平台技术方案(其他方案介绍请查看移动技术简介 )这种技术的思路是,通过在不同平台实现一个统一接口的渲染引擎来绘制UI,而不依赖系统原生控件,所以可以做到不同平台UI的一致性。<mark>注意,自绘引擎解决的是UI的跨平台问题,如果涉及其它系统能力调用,依然要涉及原生开发</mark>基于此目前Flutter的优缺点如下:

主要优点

主要缺点

针对移动端的系统底层的一些服务以及硬件相关的操作,目前有两种方案:

1: flutter官方插件管理平台pub提供了一些基础的插件开发者使用.这些插件的基本原理是内部封装iOS和android端的原生API,对上层调用者提供统一的dart接口(例如:操作摄像头的camera 插件,用于本地文件存储的shared_preferences 插件)。

2:开发者自己开发一些插件供Flutter调用(需要对两端系统sdk都比较了解)

2:Flutter应用概况

2.1.国内使用Flutter的主流应用

2.2.国外使用Flutter的主流应用

2.3.Flutter社区App列表

Flutter社区App列表
这个社区收集了热度较高的Flutter App数据,总数为346个,其中92个为开源项目

2.4.GitHub的Flutter项目列表

GitHub的Flutter项目列表
GitHub上flutter相关的项目有23,323个,其中分布于各平台的特性插件大致有5K+,Android的有400+

总结:
经过调研我认为,Flutter确实解决了UI的跨平台问题,UI层面性能接近原生,目前确实发展十分迅速,但是生态远远没到成熟的地步,这对于资源有限的应用开发团队来说是很致命的,且现在在开发调试上还是有些痛苦的,比如无法准确定位错误堆栈等。

上一篇 下一篇

猜你喜欢

热点阅读