Flutter 概述
Posted code小生
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter 概述相关的知识,希望对你有一定的参考价值。
-
跨平台的产生
节省成本:省人力成本,一个会跨平台的人,可以把 android、ios 工作完成。
高效快速:只需要维护一套代码、多平台使用。
-
简单介绍 Flutter
Flutter 是 Google 公司推出的完全免费、开源的移动 UI 框架,可以快速在 iOS、Android 上
构建高质量的 UI 界面以及接近原生的用户体验,Flutter 可以与现有的原生代码一起工作,也就是
混合开发(阿里、咸鱼、美团),通过通讯管道就可以互相调用。
Fuchsia 操作系统也是使用 Flutter + Dart 语言
Flutter 也可以开发 Web 项目
-
目前众多的跨平台技术以及各自优缺点
Cordova Apache, 前身 PhoneGap
优势
1、iOS 和 Android 基本上可以共用代码,纯 web 思维,开发速度快, 简单方便,
一次编码,到处运行。如果熟悉 web 开发,文档很全, 系统级支持封装较好,所
有 UI 组件都是有 html 模拟,可以统一使用;
2、可实现在线更新,允许动态加载 web js;
3、文档多,开发者多,遇到问题容易解决,技术成熟;
劣势
占用内存高一些,不适合做游戏类型 App, web 技术午无法解决一切问题,对于比
较耗能的地方无法利用 native 的思维实现优势互补,如高体验的交互,动画等。
简单讲:卡顿
ReactNative -Facebook
优势
1、虽然不能做到一次编码到处运行,但是基本上即使是两套代码,也是相同的 jsx邮箱:service@jingtumzs.com 网址:www.JingtumZS.co地m址:深圳市福田区皇岗路 5001 号深业上城(南区)T2 栋 2910
语法,使用 js 进行开发。用户体验高于 HTML,开发效率较高;
2、Flexbox 布局据说比 Native 的自适应布局更加简单高效;
3、可实现在线更新 AppStore 审核政策调整:允许运行于 javascriptCore 的动态
加载代码。更贴近于原生开发;
劣势
对开发人员要求较高,要懂 web 知识,当官方封装的控件、API 无法满足需求时
就必然需要懂一些 Native 的东西去扩展,扩展性不如 web,也远远不如 Native Code。
Flutter Google 公司
优势
1、Flutter 内置了对 Material Design 和 Cupertino 的 UI 常见组件库;提供了可定
制的 UI 组件,不再受制于 OEM 控件的限制,所以 Flutter 拥有接近平台原生的优
秀性能;
2、开发者可以借助于 Flutter 轻松画出接近原生的界面、动画;
3、借助可移植的 GPU 加速的渲染引擎以及高性能本地 ARM 代码运行时以达到跨
平台的高质量用户体验。
劣势
1、需要原生协作,维护 3 套代码(主要是打包流程)
2、Flutter 目前致命缺点就是成熟度不足,国内 SDK 大厂接入少
3、不支持热更新;
4、目前质量和成熟度很低 github 上的 issue 有 5k+,很容易掉坑里;
5、原生可视控件融合不好,比如 webview、video、map;
6、UI 库不适合国情;
7、学习成本略高(Flutter 采用 Dart 语言开发,需要一切都要重新学习);
8、第三方库很少。
小程序 微信、阿里...
优势
1、方便,无需下载,无需安装,即用即走。
2、打开速度比普通的 H5 要稍快,但比原生 APP 慢。
3、运行速度跟 APP 差不多,开发成本跟 H5 差不多,相对来说开发成本比 APP
要低。
劣势
1、顾名思义,就是小,这样导致无法开发大型一些的程序,功能较单一。
2、‘相对’来说还不稳定,开发方法时常有修改,导致短时间内经常要升级维护。
3、不能跳转外链网址,所以间接影响了小程序的开放性。
4、需要像 APP 一样审核上架,这点比 HTML5 即做即发布要麻烦些。
Dart 语言简单介绍
1、Dart 语⾔语法类似 Kotlin、Swift、JS ,所以 Android 原⽣开发者、HTML5 前端开发者、
使用 Swift 的 iOS 开发者上手较快。
2、官⽅也提供了包括 iOS 、React Native 等开发者迁移到 Flutter 上的⽂档,所以就算你
不懂 Dart 也可以看着代码摸索。
3、Dart 是单线程执行模型,支持 Isolates(在另一个线程上运行 Dart 代码的方式)、事件循环和异步编程。除非您启动一个 Isolate,否则您的 Dart 代码将在主 UI 线程中运行,并由事件循环驱动。
-
项目打包(Android 简单,iOS 难)
1、 同样的功能,Flutter 的 apk 会⽐ipa 更⼩⼀些,这其中的⼀部分原因是 Flutter 使⽤的 Skia
在 Android 上是⾃带的。
2、 对⽐React Native ,Flutter 的 Apk 更⼩⼀些。这其实是因为 javascriptcore 在 iOS 上是内置的原因。
-
Flutter 适合场景?
传统项目都适合,游戏不适合。
-
Flutter 官方遇到 issues 的态度?
修复 issues 周期长,遥遥无期。衍生出第三方框架。
-
原生还是 Flutter?
其实最“简单”的开发手段还是原生开发,主要是丰富的第三方框架,多得让你挑不过来,缺点
就是得维护俩个平台(成本问题)
总结:目前现有的项目用flutter开发也是可行的,毕竟大厂都在尝试。相对于有些业务的项目可能要维护三端代码,iOS,安卓,flutter。这个需要项目团队考量。
相关阅读
1
2
3
4
5
点个在看,小生感恩❤️
以上是关于Flutter 概述的主要内容,如果未能解决你的问题,请参考以下文章