Flutter环境搭建

这几年,移动跨平台的趋势可以说是越来越明显,技术实现上也是百花争艳,不过究其实现,无外乎有那么几种。

  • Web 流:也被称为 Hybrid 技术,它基于 Web 相关技术来实现界面及功能。
  • 代码转换流:将某个语言转成 Objective-C、Java 或 C#,然后使用不同平台下的官方工具来开发。
  • 编译流:将某个语言编译为二进制文件,生成动态库或打包成 apk/ipa/xap 文件。
  • 虚拟机流:通过将某个语言的虚拟机移植到不同平台上来运行。

这方面具体的介绍可以查看我之前文章的介绍:移动跨平台开发方案总结。相比较于目前比较好的跨平台开发,有几个比较好的框架:React Native,Flutter和Weex。对于React Native 想必大家应该不陌生,ReactNative 简称是RN ,是 Facebook于15年开源的一个跨平台的框架,目前已经趋于稳定。Flutter则是由Google基于Dart语言开发的一个移动跨平台开发框架,实际上就是以前的Sky SDK,是React Native的竞争对手。Weex 则是阿里开发的一套简单易用的跨平台开发方案,使用较少,没有前面两个名气大。

Flutter 和 React Native 区别

在正式介绍Flutter之前,让我们先来看一下Flutter和React Native实现上的一些异同。 对React Native 稍有了解的读者都知道, React Native 是基于组件进行开发的,这和原生APP的开发思路是一致的,不同的是 React Native提供的组件都是继承自原生Native 的 View 组件,通过调用原生的平台组件来实现UI的绘制工作。比如React Native 中的 ListView 在 Android 中就是继承自 ListView ,还有 RecycleView,对于IOS来说则是TableView组件。

然而 Flutter 则不同,它的所有 UI 组件都是一帧一帧画出来的。Flutter不需要底层的转换操作,因而在界面绘制上更加准确灵活。其次它还非常人性化的贴近了平台的特性,比如 Android 的 Material Design 在 Flutter 就默认支持了进去。

编写语言方面,两平台都是为了推广自己的技术,Flutter 使用的是 Dart 语言开发(基本没怎么听说过),而 React Native 则使用 JSX来开发的,借鉴了React的很多东西。

Dart简介

相信并没有几个读者知道还有 Dart 这种语言,说实在的我也没怎么听过。Dart 是Google于2011年推出的定位应用编程的语言,据说目的是取代传统的JS。相比同时代的go定位服务器系统,Dart可以说并不是很成功。学习Dart可以通过中文社区来学习:http://www.cndartlang.com/。当然,Dart也提供了在线编写运行代码的功能,官方地址为:https://www.dartlang.org/

Flutter环境搭建

Flutter是Google推出的一款是移动端跨平台开发框架,使用Dart语言编写,一套代码即可同时在Android和iOS平台运行,支持android 4.1以上 和 iOS8以上版本,官方地址为:https://flutter.io/。如果想要了解更多的内容,也可以通过官方的文档来了解:https://flutter.io/faq/#what-is-flutter

1,下载SDK

“工欲善其事,必先利其器”,学习任何一门技术都需要先搭建相关的开发环境,并来一个Hello Word。搭建Flutter环境,读者可以通过Flutter托管在Github上的源码地址来学习。

1,首先,在mac的Terminal输入命令将Flutter SDK下载到本地。命令如下:

git clone -b beta https://github.com/flutter/flutter.git

由于我是Mac 系统,那么Flutter SDK 下载完后的完整路径为:Users/xiangzhihong/Flutter/flutter/ 。接下来需要配置环境变量,打开终端依次输入如下命令:

cd $HOME
open -e .bash_profile

添加 Flutter SDK 的路径:

export PATH=${PATH}:/Users/xiangzhihong/Flutter/flutter/bin:$PATH

然后使用下面的命令更新刚配置的环境变量。

source .bash_profile

然后使用命令行“flutter doctor”来检测其他的一些依赖,安装 Futter 剩余依赖项。

cd ./flutter
flutter doctor

这个命令会检查环境并在窗口显示报告,Dart SDK与Flutter捆绑在一起;没有必要单独安装Dart。

最后,Flutter SDK下载后的路径: /Users/用户名/flutter,要注意的是flutter文件夹下面有多个同名的flutter文件夹,真正的SDK路径只到顶层flutter文件夹。

依赖安装完成后,如果不意外,输出内容如下:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v0.1.7, on Mac OS X 10.12.6 16G1212, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.0)
[!] iOS toolchain - develop for iOS devices (Xcode 9.2)
    ✗ libimobiledevice and ideviceinstaller are not installed. To install, run:
        brew install --HEAD libimobiledevice
        brew install ideviceinstaller
    ✗ ios-deploy not installed. To install:
        brew install ios-deploy
[✓] Android Studio (version 3.0)
[✓] Connected devices (1 available)

2, 安装idea插件

到jetbrains的官网下载idea开发工具,并为idea添加Flutter插件。

安装完成后重启idea,在新建项目的时候左侧菜单栏有Dart和Flutter说明这两个安装完成了,右边红色方框设置Flutter SDK。

3,测试运行项目

新建一个Flutter工程,工程名不能含大写字母。

如果在创建的过程中出现如下错误,那么Close Project,然后重新打开即可。 如果我们只想简单的实现”Hello World”,用下面的代码替换掉main.dart里面的代码即可。

import 'package:flutter/material.dart';
void main(){
  runApp(new Center(child: new Text('Hello Flutter!')));
}

然后选择模拟器运行即可。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏沈唁志

几款常见的PHP模板引擎

2604
来自专栏Java帮帮-微信公众号-技术文章全总结

WordPress你要会用

WordPress你要会用 虽然是PHP开发的,但不能忽律它的简单化 WordPress介绍 WordPress是一种使用PHP语言开发的博客平台,用...

4135
来自专栏ROBOTEDU

OMRONFZ系列视觉与ABB机器人的通信

ABB与OMRON之间的通信,本例采用以太网TCP无协议模式通信。通过以太网由ABB机器人程序控制ONRON视觉的场景切换,拍照判断及其判断数据的 接收。 ?...

4725
来自专栏梦魇小栈

adb(Android Debug Bridge,Android调试桥)常用命令

说到 ADB 大家应该都不陌生,即 Android Debug Bridge,Android 调试桥,身为 Android 开发的我们,熟练使用 ADB 命令将...

2303
来自专栏DeveWork

WordPress 网站开发“微信小程序”实战(二)

本文是“WordPress 开发微信小程序”系列的第二篇,本文记录的是开发“DeveWork极客”小程序v1.1 的过程。一如既往,目标读者为了解WordPre...

2737
来自专栏杨逸轩 ' sBlog

什么是静态和动态网页?

3057
来自专栏Material Design组件

Human Interface Guidelines —— Edit Menus

1256
来自专栏python+iOS学习交流

7年iOS架构师教你如何快速提高并掌握 iOS开发核心技能

首先你要花点时间针对objective-c语言的学习;毕竟这个是iOS开发的基础(你也可以尝试用Swift,但此项目只是针对OC),编程套路其实都是差不多,多写...

1591
来自专栏编程微刊

小程序模拟请求服务器json数据

怎么请求服务器json数据? 如果你是一枚前端,不会写后端接口的话 又想测试数据,看自己写的效果的时候 不要慌 那么,把你的json放在服务器底下 模...

1462
来自专栏张戈的专栏

修复WordPress升级4.2外观菜单中显示选项无法点击问题

WordPress 升级 4.2 之后,目前发现存在如下 3 个问题: 有部分主题的前台会产生大量的 404 错误请求(站外资源); 评论表情名称变更导致表情无...

2916

扫码关注云+社区