Flutter 概述

Posted code小生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter 概述相关的知识,希望对你有一定的参考价值。

  1. 跨平台的产生

节省成本:省人力成本,一个会跨平台的人,可以把 androidios 工作完成。

高效快速:只需要维护一套代码、多平台使用。

  1. 简单介绍 Flutter

Flutter 是 Google 公司推出的完全免费、开源的移动 UI 框架,可以快速在 iOS、Android 上

构建高质量的 UI 界面以及接近原生的用户体验,Flutter 可以与现有的原生代码一起工作,也就是

混合开发(阿里、咸鱼、美团),通过通讯管道就可以互相调用。

Fuchsia 操作系统也是使用 Flutter + Dart 语言

Flutter 也可以开发 Web 项目

  1. 目前众多的跨平台技术以及各自优缺点

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 线程中运行,并由事件循环驱动。

  1. 项目打包(Android 简单,iOS 难)

1、 同样的功能,Flutter 的 apk 会⽐ipa 更⼩⼀些,这其中的⼀部分原因是 Flutter 使⽤的 Skia

在 Android 上是⾃带的。

2、 对⽐React Native ,Flutter 的 Apk 更⼩⼀些。这其实是因为 javascriptcore 在 iOS 上是内置的原因。

  1. Flutter 适合场景?

传统项目都适合,游戏不适合。

  1. Flutter 官方遇到 issues 的态度?

修复 issues 周期长,遥遥无期。衍生出第三方框架。

  1. 原生还是 Flutter?

其实最“简单”的开发手段还是原生开发,主要是丰富的第三方框架,多得让你挑不过来,缺点

就是得维护俩个平台(成本问题)

总结:目前现有的项目用flutter开发也是可行的,毕竟大厂都在尝试。相对于有些业务的项目可能要维护三端代码,iOS,安卓,flutter。这个需要项目团队考量。

相关阅读








如果你有写博客的好习惯

点个在看,小生感恩❤️

以上是关于Flutter 概述的主要内容,如果未能解决你的问题,请参考以下文章

Flutter各版本发布时间及特性概述

Flutter各版本发布时间及特性概述

Flutter学习-单子布局Widget

Flutter 10天高仿大厂App及小技巧积累总结

Flutter引擎介绍

Flutter学习笔记:搭建Flutter开发环境