Google 在 2018 世界移动大会上发布 Flutter 的 Beta 版本。
Flutter 是 Google 用以帮助开发者在 Android 和 iOS 两个平台,同时开发高质量原生应用的全新移动 UI 框架。
Flutter 兼容现有的代码,免费且开源,在全球开发者中广泛被使用。
一、Flutter优缺点
优点:
- 性能强大,流畅
- 路由设计优秀
- 单例模式
- 优秀的动画设计
- UI跨平台稳定
- 可选静态的语言,语言特性优秀
缺点:
- 假装跨平台,躲不开原生代码
- 组合而不是继承的思路
- Widget的类型难以选择
- 糟糕的UI控件API
- 糟糕的资源管理设计
- 墙
总结
Flutter
主要的坑就在于需要非常了解原生的环境,其实跨平台的框架都是如此,想要通过跨平台的API就拿下双端的开发任务,对认真学习的原生开发者来说也是不公平的。
主要的优势则在于动画流畅,很多开发者反应比原生安卓还流畅(存疑),至少在iOS上是看不到卡顿的,安卓上动画也很稳定,性能上展示了Google
的硬实力
二、flutter跟React Native、Weex等区别
React Native、Weex等一直存在一个问题,就是性能跟原生App存在很大的差异。这跟它们的原理有很大的关系,下面从原生App,RN、Weex,Flutter的简单原理说一下它们的不同。
-
原生App
苹果2008年发布iOS,Google 2009年发布Android,它们的SDK是基于两种不同的编程语言Objective-C 和 Jave.现在又有了Swift和Kotlin。上面是原生App的一个简单架构,开发人员直接调用平台SDK进行UI开发。由于语言及SDK的不同,所以开发人员必须为两个平台分别开发App。
-
WebViews
最早的跨平台方案是基于JaveScript 和 WebView的,像PhoneGap、Cordova、Ionic等。UI通过WebView来显示html代码,系统服务则通过一个中间层桥接到JaveScript中去。
-
React Native
RN不仅桥接系统服务,也将系统UI也桥接到了JaveScript中,这样写出来的UI最终也会渲染成原生的控件。如上图这样,UI的渲染是很频繁的,要使UI不卡顿,必须达到60Fps。但是桥接会花一定的时间。所以这样的架构有时候会有性能问题。
-
Flutter
Flutter使用Dart语言开发,Dart可以被编译(AOT)成不同平台的本地代码,让Flutter可以直接和平台通讯而不需要一个中间的桥接过程,从而提高了性能。
三、flutter安装教程
安装步骤:
1.由于国内被墙,需要设置下载镜像
1 2 3 |
|
2.从github下载flutter包
git clone -b dev https://github.com/flutter/flutter.git
3.设置flutter为全局可执行
1 |
|
4.安装flutter所需相关依赖(可能安装时间较长,请耐心等待)
完毕之后可能会有issues提示,部分工具或依赖未安装。
我在安装完毕之后
1).提示需要android studio、ios toolchain、Intelij等,这三个工具选择安装其一即可,我选择的是安装andriod studio sdk,issue上有下载地址。
下载andriod studio也较慢,需要耐心等待(本人通过代理下载)。
下载完毕之后,执行flutter doctor -v,查看,提示你为andriod sdk变量未配置
配置andriod studio sdk环境变量
1 |
|
添加变量配置
1 2 3 4 |
|
保存然后执行:
1 |
|
此时在执行flutter doctor -v,可以看到提示变量已配置
1 |
|
2).还有提示Android licenses问题,按照描述执行指令,一直同意即可
3)在android sdk配置后变量之后,还提示需要安装flutter plugin和dart plugin
打开android studio,选择右上角菜单 android studio => Preferences=>Plugins 搜索安装flutter和dart即可
5.如果顺利通过前四步,基本算是大功告成了吧。(通过flutter doctor -v查漏补缺)
6. 设置Android模拟器
1 2 3 4 5 6 7 8 |
|
7.创建新应用
1 2 3 4 5 |
|