Flutter环境搭建
[!Tip] Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。
重点:
- 跨平台:现在Flutter至少可以跨4种平台,甚至支持嵌入式开发。我们常用的有Linux、Android、IOS,甚至可以在谷歌最新的操作系统上Fuchsia进行运行,经过第三方扩展,甚至可以跑在MacOS和Windows上,到目前为止,Flutter算是支持平台最多的框架了,良好的跨平台性,直接带来的好处就是减少开发成本。
- 原生用户界面: 它是原生的,让我们的体验更好,性能更好。用官方的话讲就是平滑而自然的滑动效果和平台感知,为您的用户带来全新的体验。(可以看一下图片,这是Flutter的表现)
- 开源免费:这个不用多说,我们只要学会并使用,这些都是免费的。这对于大公司是非常必要的,有人说你可以用破解版什么的....说明你还是小公司,我们公司的软件全部是正版,就更不用说操作系统和生产环境了,否则各种公司的侵权官司你都解决不了。
主流框架对比
- Cordova:个人认为Flutter可以完胜了,因为Cordova还是基于网页技术进行包装,利用插件的形式开发移动应用的,就这一点。无论是性能还是体验,Flutter都可以完胜了。
- RN(React Native):RN的效率由于是将View编译成了原生View,所以效率上要比基于Cordova的HTML5高很多,但是它也有效率问题,RN的渲染机制是基于前端框架的考虑,复杂的UI渲染是需要依赖多个view叠加.比如我们渲染一个复杂的ListView,每一个小的控件,都是一个native的view,然后相互组合叠加.想想此时如果我们的list再需要滑动刷新,会有多少个对象需要渲染.所以也就有了前面所说的RN的列表方案不友好。
- Flutter:吸收了前两者的教训之后,在渲染技术上,选择了自己实现(GDI),由于有更好的可控性,使用了新的语言Dart,避免了RN的那种通过桥接器与Javascript通讯导致效率低下的问题,所以在性能方面比RN更高一筹;有经验的开发者可以打开Android手机开发者选项里面的显示边界布局,发现Flutter的布局是一个整体.说明Flutter的渲染没用使用原生控件进行渲染。
120fps超高性能
Flutter采用GPU渲染技术,所以性能极高。
Flutter编写的应用是可以达到120fps(每秒传输帧数),这也就是说,它完全可以胜任游戏的制作。而我们常说的RN的性能只能达到60fps,这也算是Flutter的一个超高竞争力吧。官方宣称Flutter甚至会超过原生性能。
如果你想迈入移动游戏领域,学习Flutter也是一个非常好的选择。
Flutter生态情况
- Google公司出品和推广,并且在中国也有推广中心
- 第三方组建也在迅猛发展:https://github.com/Solido/awesome-flutter
- 很多公司已经开始使用 Aibaba Tencent JD
Flutter开发环境搭建Windows版
系统的基本要求
- 操作系统:必须windows7以上64位操作系统。(这个一般都能很好的满足)
- 磁盘空间:大于3个G,虽然官方说的是400M,但是你还需要安装Android Studio 和 虚拟机,所以至少要3个G左右,如果能达到5个G就更好了(满足多个虚拟机的要求)。
- 需要Git环境:Flutter需要git环境的支持,所以这个也要有,作为一个前端,这个是必备工具,所以我在文章中就不教大家安装了。
JAVA环境的安装
百度搜索下载安装Java,然后配置环境变量即可使用,在命令行输入java
显示如图:
下载安装 FlutterSDK
去官网下载Flutter安装包,下载地址:https://flutter.io/sdk-archive/#windows (这个官方会经常改动,如果不可用,请通知我,我再进行修改。)我选择的版本是0.9.4。
将安装包zip解压到你想安装Flutter SDK的路径(如: E:\fluter\flutter;注意,不要将flutter安装到需要一些高权限的路径如C:\Program Files\,这个没必要跟我一样,凭借自己喜好设置就好)。
在Flutter安装目录的flutter文件下找到flutter_console.bat,双击运行并启动flutter命令行,接下来,你就可以在Flutter命令行运行flutter命令了。
配置
环境变量
,Flutter的执行是要进行联网的,由于国内的原因,所以你需要设置环境变量(墙翻的好,这步可以省略.视频中有具体讲解)
export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
- 如果你想在任何地方都可以执行
Flutter
命令,你需要把Flutter SDK的目录配到环境变量中的path条目下。(这个也看视频吧)
使用flutter doctor测试
在终端中输入flutter doctor,结果如下即可
Android studio 安装
- 下载Android Studio:直接到官网进行下载就可以了
- 安装Android Studio 软件
- 打开Android Stuido 软件,然后找到Plugin的配置,搜索Flutter插件,然后点击安装,重新启动一下Android Studio软件。
安装 Android 证书
在终端输入
flutter doctor --android-licenses
然后会提示你选Y/N,不要犹豫,一律选择Y,就可以把证书安装好。(说的都是一大堆一大堆的英文,我也看不懂是啥)
Flutter刚运行时可能的错误
Launching lib/main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Resolving dependencies...
* Error running Gradle:
ProcessException: Process "/Users/rabbit/develop/android/flutter_app/android/gradlew" exited abnormally:
Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.
FAILURE: Build failed with an exception.
* Where:
Build file '/Users/rabbit/develop/android/flutter_app/android/app/build.gradle' line: 25
* What went wrong:
A problem occurred evaluating project ':app'.
> Could not resolve all files for configuration 'classpath'.
> Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
Searched in the following locations:
https://jcenter.bintray.com/com/android/tools/lint/lint-gradle-api/26.1.2/lint-gradle-api-26.1.2.jar
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 0s
Command: /Users/rabbit/develop/android/flutter_app/android/gradlew app:properties
Finished with error: Please review your Gradle project setup in the android/ folder.
第一步:修改掉项目下的android目录下的build.gradle文件,把google() 和 jcenter()这两行去掉。改为阿里的链接。
maven { url 'https://maven.aliyun.com/repository/google' }
maven { url 'https://maven.aliyun.com/repository/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/groups/public' }
第二步:修改Flutter SDK包下的flutter.gradle文件,这个目录要根据你的SDK存放的位置有所变化。比如我放在了D盘Flutter目录下,那路径就是这个。
D:\tools\Android\flutter\packages\flutter_tools\gradle
打开文件进行修改,修改代码如下(其实也是换成阿里的路径就可以了)。
buildscript {
repositories {
//jcenter()
// maven {
// url 'https://dl.google.com/dl/android/maven2'
// }
maven{
url 'https://maven.aliyun.com/repository/jcenter'
}
maven{
url 'https://maven.aliyun.com/nexus/content/groups/public'
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
}
}
vscode下开发flutter
打开VSCode的Flutter插件界面,然后用在搜索框中输入Flutter
,第一个就是Flutter插件了。点击install
就可以进行安装了(具体看下图)。
然后flutter run
预览
写一个HelloWorld程序
mport 'package:flutter/material.dart';
//主函数(入口函数),下面我会简单说说Dart的函数
void main() =>runApp(MyApp());
// 声明MyApp类
class MyApp extends StatelessWidget{
//重写build方法
@override
Widget build(BuildContext context){
//返回一个Material风格的组件
return MaterialApp(
title:'Welcome to Flutteraa',
home:Scaffold(
//创建一个Bar,并添加文本
appBar:AppBar(
title:Text('Welcome to Flutter'),
),
//在主体的中间区域,添加一个hello world 的文本
body:Center(
child:Text('Hello World'),
),
),
);
}
}