专栏首页Android技术分享Flutter这么火为什么不了解一下呢?(上)

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 : https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL : https://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工程结构如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android开发:手把手带你入门跨平台UI开发框架Flutter

    Flutter理念:“一切皆为Widget”,Widget是Flutter应用程序用户界面的基本构建块,具备以下特点:

    Android技术干货分享
  • 重磅! Flutter 热修复,生态、跨端计划公布

    就个小时之前,Flutter 的产品经理 Tim Sneath 在官方的 Wiki 页面更新了这份 Roadmap 文档,

    Android技术干货分享
  • 移动跨平台框架Flutter详细介绍和学习线路分享

    Flutter是一款移动应用程序SDK,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。 Flutter目标是使开发人员能够交付在不同...

    Android技术干货分享
  • 跨平台技术演进及Flutter未来

    移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成...

    程序亦非猿
  • Flutter 学习路线图

    Flutter越来越火,学习Flutter的人越来越多,对于刚接触Flutter的人来说最重要的是如何学习Flutter,重点学习Flutter的哪些内容。下面...

    老孟Flutter
  • 闲鱼基于Flutter技术的架构演进和创新

    最近一段时间一直学习Flutter,也尝试写一下Demo,但是在用的时候。从一开始惊艳到了,觉得写起来很爽,各种UI效果实现起来很棒,而且由于渲染机制,还让双端...

    Demo_Yang
  • 2020 Flutter开源资源索引

    (3)Flutter Create 是我们发起的一次开发竞赛 https://github.com/pinkeshdarji/FlutterCreateSub...

    jerrypxiao
  • Flutter系列(一)——详细介绍

    Flutter 是谷歌推出的开发移动UI框架,可以快速的在IOS和Android上构建高质量的原生用户界面。

    Demo_Yang
  • Flutter系列(一)——详细介绍

    Flutter 是谷歌推出的开发移动UI框架,可以快速的在IOS和Android上构建高质量的原生用户界面。

    Demo_Yang
  • Flutter the Future

    Flutter Interact 2019在双12的凌晨结束了,6个多小时的大会,每一分钟都让一个开发者感到惊艳。

    用户1907613

扫码关注云+社区

领取腾讯云代金券