导读

为什么要学习 Dart?

众所周知,Flutter 在跨平台、性能方面有着得天独厚的优势,然而 Flutter 应用开发离不开 Dart,所以学习好 Dart 技能是掌握 Flutter 应用开发的必备技能

但国内有关 Dart 的文章和资料并不多见,成体系的 Dart 文章更是少之又少。本专栏作者通过阅读了大量国外有关 Dart 的优秀文章以及结合自己积累的 Flutter 开发经验,深入浅出讲解 Dart 要点,让你可以获得 Dart 官方文档之外的 Dart 技能和原理分析

学习一门新语言会不会太难?

学习 Flutter 应用开发存在两大隐性的学习成本:新语言 Dart 的学习Flutter Develop Kit 的学习。另外,Flutter 官方文档过于繁多,也成为很多人迟迟不愿意尝试 Flutter 或是在用 Flutter 开发时遇到瓶颈的原因。

本专栏从 Flutter 应用开发所必需的 Dart 技能出发,按照优先级,有选择地挑选必备 Dart 技能,做到只学习真正重要的 Dart 技能点,从而进一步降低学习门槛。

另一方面,如果你有其他语言功底(如 Java、C#、C++、Kotlin 等),通过本专栏上手 Dart 将达到事半功倍的效果!在接下来文章中我将会采用其他语言和 Dart 对比的方式来介绍 Dart,利用不同语言在语法特性上的相似点,帮你节省学习成本!

此外,在专栏的最后,我们还将结合实战 Flutter 项目,从 0 到 1 实现一个真实的 Flutter 项目!学习过程中,如果遇到任何问题,都可以在专栏专属交流群里和作者及其他同学一起交流!

专栏简介

本专栏是一个 Dart 语言开发指南,由浅入深地分析了 Dart 语法特性的方方面面,最终目的是更快、更牢地上手 Flutter 应用的开发。以及还会针对性深入 SDK 源码层分析背后的实现原理,从而真正掌握 Dart 的开发。

此外本专栏还会紧跟 Dart 最新发布版本的语法特性(目前最新是Dart 2.7),会把最新的语法特性使用技巧分享出来,比如 Dart 2.7 的扩展方法、可空与非空类型、泛型强化-声明处型变等。

本专栏致力于解决最为关心的两个问题。

问题一:学习新语言 Dart,需要花费很大的精力?

为了解决这个问题,一方面本专栏并不是所有 Dart 语法都会涉及,而是经过认真挑选后将我们认为很重要、使用很频繁的语法点列出来。比如 Dart 中的反射,由于在 Flutter 中无法使用,所以本专栏就没有涉及,从而避免增加不必要的学习成本。

另一方面,如果有其他语言功底,上手 Dart 特别快,比如 Java、C#、C++、Kotlin 等。此外在接下来文章中将会采用 Kotlin 和 Dart 对比方式来介绍 Dart,选用 Kotlin 语言不仅仅因为本人是 Kotlin 语言的*粉,而是它们俩在语法特性上简直太像了。

问题二:国内有关深入 Dart 语言开发的资料少之又少,而有关 Flutter 学习资料又太多了, 如何系统地学习?

Flutter上手容易但是深入却比较难。其实归根结底有些原因在于 Dart 知识功底掌握并不够、不够深入,没有充分利用起 Dart 的语法特性,导致最后提升很难。为

了解决这一问题,我通过阅读了大量国外有关 Dart 的优秀文章以及结合自己积累的开发经验,沉淀了一些自己感悟和见解并且以专栏形式分享出来。

本专栏将会从使用场景、特性原理、源码分析等几个方面来介绍 Dart 相关的知识点。可以帮助开发者由浅入深、系统全面地掌握 Flutter 开发的必备 Dart 技能,从而轻松快速上手 Flutter 应用的开发。

专栏亮点

  • 重点内容全面覆盖:从 Dart 基本语法开始到高阶语法,如 Dart 异步、Dart VM 等,透彻讲解每个重要语法点!

  • 紧跟最新 Dart 版本语法特性:以最新 Dart 版本 (2.7) 为基准,介绍 Dart 的最新语法特性,同时紧跟 Dart 官方发布,持续更新 Dart 语法技能

  • 深入 Dart 语法背后的原理:不仅会介绍 Dart 语法怎么使用、在哪使用;而且还会深入语法源码内部,剖析其背后实现原理,即使遇到 Dart 原理面试题也能轻松面对!

  • 通过与其他语言语法对比来学习:学习一门新语言,最好最快的方式就是对比学习,我们将 Dart 与 Java、Kotlin、Javascript 等语言语法对比学习,助你快速掌握上手新语言!

  • 结合 Flutter 实战项目:实践是检验学习的最好方法,最后我们将从 0 到 1 实现一个高仿开眼 APP 的 Flutter 实战项目

专栏结构

本专栏主要分为三个部分。

导读

一、基础篇。通过开头两篇,我们将逐步讲解 Dart 中一些常见的基本语法,如:变量和常量、基本数据类型、流程控制选择和循环等。后续内容会着重深入分析 Dart 中的集合、函数、集合操作符函数、面向对象、继承和 minxins、类型系统和泛型、library 的使用,以及 Dart 最新加入的语法可空非空类型、扩展函数 extension、泛型强化等。

二、进阶篇。这部分主要讲解 Dart 异步编程中的核心功能以及Dart 2.6 版本加入的 Dart 与 C 的互相调用。最后,我们还会对 Dart 虚拟机运行原理进行分析和说明,通过学习你将会理解 Flutter 的 hot reload 的原理。

三、实战篇。俗话说养兵千日用在一时,光说不练假把式,最后我们会通过一个高仿开眼 App 的 Flutter 实战项目把本专栏前面的知识融会贯通加以应用。(注意:由于最后部分篇幅有限,我们将不会详细介绍 Flutter 组件的使用,但我们将会在 github 上提供完整源码。)

实战项目效果展示

导读

导读

基础篇

  • 1. 初探 Dart 语法 01
  • 2. 初探 Dart 语法 02
  • 3. 掌握如何让函数更好地调用
  • 4. 掌握 Dart 集合的使用
  • 5. 深入分析 Dart 集合源码
  • 6. 掌握 Dart 集合操作符函数使用
  • 7. 深入分析 Dart 集合操作符源码
  • 8. 掌握 Dart 的面向对象基础
  • 9. 深入理解 Dart 中的继承和 Minxins
    1. 深入理解 Dart 中的类型系统和泛型
    1. 掌握 Dart 中库 library 的使用
    1. 尝鲜 Dart 2.7 最新语法之可空与非空类型
    1. 尝鲜 Dart 2.7 最新语法之扩展方法
    1. 尝鲜 Dart 2.7 最新语法之泛型强化:声明处型变

进阶篇

    1. 异步编程之 Isolate 和 EventLoop
    1. 异步编程之 Future
    1. 异步编程之 Streams
    1. 异步编程之 async和await
    1. 异步编程之同步异步生成器函数

实战篇

    1. Dart 与 C 的互相调用
    1. Dart 虚拟机运行原理
    1. Flutter 实现高仿开眼 APP 的页面开发 01
    1. Flutter 实现高仿开眼 APP 的页面开发 02
    1. Flutter 实现高仿开眼 APP 的页面开发 03

作者简介

导读

你将获得什么

  • Flutter 开发必备的 Dart 技能点

  • Dart 开发基本技能以及每个语法应用的场景

  • Dart 语法背后的原理

  • 实际上手真实 Flutter 项目

  • Dart 编程语言学习方法和思维

  • 了解 Dart VM 的运行原理

适宜人群

  • 前端、移动端开发者

  • 有一定 Flutter 开发基础并想进一步提升的开发者

  • 对 Dart 或 Flutter 感兴趣的开发者