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。体会不到一秒的从头加载体会。

Flutter这么火为什么不了解一下呢?(上)

美丽的UI

Flutter内置MD规划风格及iOS组件,更有丰富的手势API,流畅的滚动体会和渠道认同感会让用户感到愉悦。

Flutter这么火为什么不了解一下呢?(上)

Flutter这么火为什么不了解一下呢?(上)

现代的呼应式结构(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

进行环境及缺失的依靠检查,并下载需求的依靠。 运转作用如下图:

Flutter这么火为什么不了解一下呢?(上)

在环境及相关依靠检查完结之后,能够开端在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这么火为什么不了解一下呢?(上)

首个创立的Flutter Project工程结构如下:

Flutter这么火为什么不了解一下呢?(上)

文章共享自: