Flutter这么火为什么不了解一下呢?(上)
Flutter是Google移动UI结构,用以创立高质量的native接口,真正跨渠道,同时在iOS和Android上运转。Flutter是免费开源的,全球开发者及安排均能够运用。
Flutter有又几个特色:
1.快速开发 毫秒级的热加载快速地将修正应用到app。运用丰富的可彻底自定义的组件在几分钟内就能够构建native界面。
2.极具表现力,灵活的UI 快速地将特性会集到native终端用户体会。运用分层结构能够完整地自定义UI,从而完结快速绘制及灵活的规划。
3.native功能 Flutter组件包含了一切渠道的关键差异,例如滚动,导航,图标和字体。使得Flutter在iOS和Android上运用能够获得彻底的native功能体会。
快速开发
Flutter热加载技能有助于你快速且简略地进行实验,构建UI,增加特性,而且快速修正bug。体会不到一秒的从头加载体会。
美丽的UI
Flutter内置MD规划风格及iOS组件,更有丰富的手势API,流畅的滚动体会和渠道认同感会让用户感到愉悦。
现代的呼应式结构(Modern,reactive framework)
运用Flutter呼应式结构和丰富的渠道,布局和功能组件是的UI构建非常简略。运用灵活而且强大的API(2D,动画,手势,功能等)能够处理在UI上各种问题。
int counter = 0;
void increment() {
// Tells the Flutter framework that state has changed,
// so the framework can run build() and update the display.
setState(() {
counter++;
});
}
Widget build(BuildContext context) {
// This method is rerun every time setState is called.
// The Flutter framework has been optimized to make rerunning
// build methods fast, so that you can just rebuild anything that
// needs updating rather than having to individually change
// instances of widgets.
return new Row(
children: <Widget>[
new RaisedButton(
onPressed: increment,
child: new Text('Increment'),
),
new Text('Count: $counter'),
],
);
}
}
运用native特性和SDKs
咱们运用渠道APIs,第三方SDKs和native代码开发APP。Flutter能够让你在iOS和Android继续运用Java,Swift,Objective-C代码而且运用native特性。
拜访渠道特性很简略。下边的代码片段开端:
var batteryLevel = 'unknown';
try {
int result = await methodChannel.invokeMethod('getBatteryLevel');
batteryLevel = 'Battery level: $result%';
} on PlatformException {
batteryLevel = 'Failed to get battery level.';
}
setState(() {
_batteryLevel = batteryLevel;
});
}
学习如何运用包(packages),或许写platform channels,运用native代码,APIs和SDKs。
一致的开发规范
Flutter具有东西及库协助你简略快速地在iOS和Android上实现你的主意。若你还没有任何移动开发经验,那么Flutter将会是你构建美丽的移动APP的一种简略快速的额方式。若你是有经验的iOS或许Android开发人员,那么你能够运用Flutter组件,而且继续运用已有的Java/Objective-C/Swift程序。
构建 美丽的APP UI 丰富的2D GPU加快APIs 呼应式结构 动画/动作 APIs 兼容Android Material组件及苹果组件款式
流程的编码体会 急速热加载技能 IntelliJ:重构,主动补足功能等 Dart语言及中心库 包办理
具有App一切特性 与移动OS APIs&SDKs互操作性 Maven/Java Cocoapods/ObjC/Swift
优化 测验 Unit测验 继承测验 无设备测验
Debug IDE debug 基于网络debug 异步/唤醒感知 表达式求值程序
装备 时间线 CPU和内存 应用功能图标
布置 编译 Native ARM程序 消除无效代码
发布 App商场 Play Store
标题装置Flutter
在国内装置Flutter需求首要需求一个值得信任的国内镜像。在镜像上边保存着Flutter需求的依靠及相关库,包等。为了运用Flutter,需求运用一个备用存储位置,咱们需求装备环境变量。 装备环境变量名: PUB_HOSTED_URL 和 FLUTTER_STORAGE_BASE_URL。
在windows系统中,需求在环境变量设置中添加:
PUB_HOSTED_URL : pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL : storage.flutter-io.cn
然后运转Git指令(条件是装置了GitBash东西):
git clone -b dev https://github.com/flutter/flutter.git Flutter
Flutter文件夹需求留意:文件夹存放的途径上不要出现空格,否则在IDE中进行工程创立后会有正告,SDK环境途径上存在分隔符。
在clone完结之后,即Flutter Sdk下载完毕,还需求装备Flutter环境: xxxx/Flutter/bin目录下。
从头打开一个指令行,在其间输入指令
flutter doctor
进行环境及缺失的依靠检查,并下载需求的依靠。 运转作用如下图:
在环境及相关依靠检查完结之后,能够开端在Android Studio中进行创立工程行为。
留意:Android Studio 预览版中无法保证运转Flutter成功。因此需求运用稳定版AS,且需求3.0版别以上。
Android Studio中需求装置Flutter Plugin,Dart Plugin两个插件。
Dart SDK也需求手动装置,直接下载zip包免装置。
成功准备好IDE环境之后,就能够创立Flutter Project了,默认创立Flutter Application就能够了,按照IDE创立提示一直到最终完结。
需求留意:相同由于网络环境,直接运转Flutter Project是不可行的,UI会一直停留在Gradle正在初始化工程。这时需求修正build.gradle装备中的中央Maven库到一个可信赖的公共Maven库。 这儿我修正成Ali的Maven库
buildscript {
ext.kotlin_version = '1.1.51'
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
google()
}
// ......
}
// ......
allprojects {
repositories {
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
}
google()
}
// ......
然后再次sync工程,进行运转。
首个创立的Flutter Project工程结构如下:
文章共享自: