Flutter 学习笔记 1

本文的学习笔记来源于:
Flutter 实战
作者:wendux

一、Flutter 为什么采用 Dart 语言开发?

先了解两个概念:JIT 和 AOT

(一)JIT 和 AOT 是什么

JIT:Just in time 动态(即时)编译,边运行边编译。
AOT:Ahead of time,指运行前编译。

这两种编译方式的主要区别在于是否在“运行时”进行编译

JIT 和 AOT 各自的优缺点参考:

AOT,JIT是什么?

(二)为什么是 Dart ,而不是 JavaScript?

  1. 开发效率高

Dart 运行时和编译器支持 Flutter 的两个关键特性的组合:

基于 JIT 的快速开发周期:Flutter 在开发阶段采用 JIT 模式,这样就避免了每次改动都要进行编译,极大的节省了开发时间;

基于 AOT 的发布包:Flutter 在发布时可以通过 AOT 生成高效的 ARM 代码以保证应用性能。而 JavaScript 则不具有这个能力。

  1. 高性能

Flutter 旨在提供流畅、高保真的的 UI 体验。为了实现这一点,Flutter 中需要能够在每个动画帧中运行大量的代码。这意味着需要一种既能提供高性能的语言,而不会出现会丢帧的周期性暂停,而 Dart 支持 AOT,在这一点上可以做的比 JavaScript 更好。

  1. 快速内存分配

Flutter 框架使用函数式流,这使得它在很大程度上依赖于底层的内存分配器。因此,拥有一个能够有效地处理琐碎任务的内存分配器将显得十分重要,在缺乏此功能的语言中,Flutter 将无法有效地工作。当然 Chrome V8的 JavaScript 引擎在内存分配上也已经做的很好,事实上 Dart 开发团队的很多成员都是来自 Chrome 团队的,所以在内存分配上 Dart 并不能作为超越 JavaScript 的优势,而对于 Flutter 来说,它需要这样的特性,而 Dart 也正好满足而已。

  1. 类型安全

由于 Dart 是类型安全的语言,支持静态类型检测,所以可以在编译前发现一些类型的错误,并排除潜在问题,这一点对于前端开发者来说可能会更具有吸引力。与之不同的,JavaScript 是一个弱类型语言,也因此前端社区出现了很多给 JavaScript 代码添加静态类型检测的扩展语言和工具,如:微软的 TypeScrip t以及 Facebook 的 Flow。相比之下,Dart 本身就支持静态类型,这是它的一个重要优势。

编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型

  1. Dart 团队就在你身边

看似不起眼,实则举足轻重。由于有 Dart 团队的积极投入,Flutter 团队可以获得更多、更方便的支持,正如 Flutter 官网所述“我们正与 Dart 社区进行密切合作,以改进 Dart 在 Flutter 中的使用。例如,当我们最初采用Dart 时,该语言并没有提供生成原生二进制文件的工具链(这对于实现可预测的高性能具有很大的帮助),但是现在它实现了,因为 Dart 团队专门为 Flutter 构建了它。同样,Dart VM 之前已经针对吞吐量进行了优化,但团队现在正在优化 VM 的延迟时间,这对于 Flutter 的工作负载更为重要。

二、搭建 Flutter 开发环境

(一)更新环境变量

Flutter SDK 下载完成后需要将 bin 目录添加的系统环境变量中,这一步其实没有什么复杂的,但是刚刚从 windows 系统切换到 mac 系统的同学还是有点不知所措,具体步骤:

  • 打开终端 Terminal,默认是在 Home 目录下,如下图所示。如果不是在这个目录下,可以参考这篇文章修改 Mac Os系统中的根目录和家(home)目录分别指什么,它们有何关系?
终端
  • 创建.bash_profile
    输入touch .bash_profile

  • 编辑.bash_profile文件
    输入open -e .bash_profile

然后在打开的文件中,添加:

PATH="路径:${PATH}"
export PATH

路径是你自己电脑的 Flutter 的 bin 目录的路径,如

PATH="/work/Flutter/flutter/bin:${PATH}"
export PATH
更新环境变量
  • 保存文件,关闭.bash_profile

  • 更新刚配置的环境变量
    输入source .bash_profile

添加完成后,验证“flutter/bin”是否已在PATH中:

echo $PATH

三、Flutter 常用命令

  1. flutter doctor
    查看是否还需要安装其它依赖

  2. flutter channel
    查看所有分支

  3. flutter upgrade
    升级 Flutter SDK

你可能感兴趣的:(Flutter 学习笔记 1)