前言

Flutter 是 Google 推出的一款跨平台移动应用开发框架,于2017年首次亮相。Flutter 的出现,让开发者可以使用同一份代码,同时开发出 Android 和 iOS 两个平台的应用,同时还可以支持 Web、Windows、macOS 等多个平台。

本文将从 Flutter 的发展历程、特点、优势和应用场景等方面进行介绍,希望能够帮助读者更好地了解 Flutter。

Flutter:一部从无到有,再到改变移动开发格局的崛起史_flutter

一、Flutter 的发展历程

2015年,Google 开始着手研发 Flutter,当时的目标是解决 Android 平台上的 UI 开发问题。2017年5月,Flutter 首次亮相,成为了 Google I/O 大会上的一大亮点。随后,Flutter 开发团队开始加速推进 Flutter 的开发和推广工作。

2018年,Flutter 进入了 Beta 版本,并且在 Google I/O 大会上发布了 Flutter 1.0 版本,正式宣布上线。同年,Flutter 开发团队还推出了 Flutter for Web,让开发者可以将 Flutter 应用直接部署到 Web 端。此外,Flutter 开始得到了越来越多的关注和认可,成为了开发者和企业的热门选择。

2019年,Flutter 2.0 版本发布,正式支持 Web、Windows、macOS 等多个平台。Flutter 开发团队还推出了 Flutter for Desktop 和 Flutter for Embedded,让 Flutter 的应用场景更加广泛。同时,Flutter 开发团队还加强了对 Dart 语言的支持,提高了 Flutter 应用的性能和稳定性。

2020年,Flutter 发展迅速,成为了移动开发领域的一大热门。Flutter 开发团队继续推出了多个版本,包括 Flutter 2.2 和 Flutter 2.5 等。Flutter 2.5 版本中,新增了许多新特性,包括 Null safety、Flutter for Chrome OS 等。此外,Flutter 还得到了越来越多的企业和开发者的认可和使用,如阿里巴巴、腾讯、京东等。

二、Flutter 的特点和优势

1. 快速开发

Flutter 使用 Dart 语言进行开发,具有快速编译和热重载的特点,可以大大提高开发效率。同时,Flutter 还提供了丰富的组件库和开发工具,让开发者可以快速构建出美观、流畅的应用。

2. 跨平台

Flutter 可以同时支持 Android 和 iOS 两个平台,还可以支持 Web、Windows、macOS 等多个平台。开发者只需要编写一份代码,就可以在多个平台上运行。

3. 自定义 UI

Flutter 提供了丰富的 UI 组件和动画效果,同时还支持自定义 UI。开发者可以根据自己的需求,自由地构建出独特的 UI。

4. 高性能

Flutter 使用了 Skia 图形引擎,可以提供流畅的动画效果和高性能的渲染能力。同时,Flutter 还可以使用 AOT 或 JIT 编译器,提高应用的性能和运行速度。

5. 活跃的社区

Flutter 拥有一个庞大的开发者社区,开发者可以在社区中获取到丰富的资源和支持。同时,Flutter 开发团队也积极地与社区互动,不断推出新的版本和特性。

三、Flutter 的应用场景

1. 移动应用开发

Flutter 最初是为移动应用开发而设计的,可以帮助开发者快速构建出流畅、美观的应用。Flutter 还提供了丰富的组件库和开发工具,可以大大提高开发效率。

2. Web 应用开发

Flutter for Web 让开发者可以将 Flutter 应用直接部署到 Web 端。Flutter for Web 提供了丰富的组件库和工具,可以帮助开发者构建出高性能、流畅的 Web 应用。

3. 桌面应用开发

Flutter for Desktop 和 Flutter for Embedded 让 Flutter 的应用场景更加广泛。开发者可以使用 Flutter 构建出高性能、流畅的桌面应用和嵌入式应用。

4. 游戏开发

Flutter 的高性能和流畅的动画效果,使其成为了游戏开发的热门选择。开发者可以使用 Flutter 构建出各种类型的游戏,如跑酷游戏、休闲游戏等。

四、结语

作为一款新兴的跨平台移动应用开发框架,Flutter 在短短几年时间内就取得了不俗的成绩。Flutter 的快速开发、跨平台、自定义 UI、高性能和活跃的社区等特点和优势,让它成为了移动开发领域的一大热门。

未来,Flutter 还将继续不断推出新的版本和特性,不断完善自己的生态系统。相信 Flutter 将会在移动应用开发领域中发挥越来越重要的作用。

为了能够方便大家快速学习Flutter, 这里整理了Flutter学习路线图以及《Flutter Dart 语言编程入门到精通》&《Flutter实战:第二版》帮助大家配置相关环境,学习Flutter 的基本语法以及最后的项目实际利用。


学习路线:

Flutter:一部从无到有,再到改变移动开发格局的崛起史_flutter_02

Dart语言是Flutter的开发语言,所以我们需要掌握Dart语言的基础知识

《Flutter Dart 语言编程入门到精通》

第一章 Dart语言基础

  • 环境准备
  • 基础语法

第二章 Dart 异步编程

  • Dart的事件循环
  • 调度任务
  • 延时任务
  • Future详解
  • async和await
  • lsolate

Flutter:一部从无到有,再到改变移动开发格局的崛起史_Web_03

第三章 异步之 Stream 详解

  • 什么是Stream
  • 单订阅流
  • 广播流
  • Stream Transformer
  • 总结

第四章 Dart标准输入输出流

  • 文件操作

Flutter:一部从无到有,再到改变移动开发格局的崛起史_Dart_04

第五章 Dart 网络编程

  • TCP服务端
  • TCP客户端
  • UDP服务端
  • UDP客户端
  • HTTP服务器与请求
  • WebSocket

第六章 Flutter 爬虫与服务端

  • Dart爬虫开发
  • Dart服务端
  • 创建Flutter项目演示
  • 总结

第七章 Dart 的服务端开发

  • 注册登录实现

第八章 Dart 调用C语言混合编程

  • 环境准备
  • 测试Dart ffi接口
  • 总结

第九章 LuaDardo中Dart与Lua的相互调用

  • Lua C API
  • 创建运行时
  • Dart调Lua
  • Lua调Dart

Flutter:一部从无到有,再到改变移动开发格局的崛起史_Web_05

掌握了Dart语言之后,咱们就可以通过实战来掌握Flutter的知识点

《Flutter实战:第二版》

第一章:起步

  • 1.1 移动开发技术简介
  • 1.2 初始Flutter
  • 1.3 搭建Flutter开发环境
  • 1.4 Dart语言简介

第二章:第一个Flutter应用

  • 2.1 计数器应用实例
  • 2.2 Widget简介
  • 2.3 状态管理
  • 2.4路由管理
  • 2.5包管理
  • 2.6 资源管理
  • 2.7 调试Flutter应用
  • 2.8 Flutter异常捕获

Flutter:一部从无到有,再到改变移动开发格局的崛起史_flutter_06

第三章:基础组件

  • 3.1 文本及样式
  • 3.2 按钮
  • 3.3 图片及ICON
  • 3.4 单选开关和复选框
  • 3.5 输入框及表单
  • 3.6 进度指示器

第四章:布局类组件

  • 4.1 布局类组件简介
  • 4.2 布局原理与约束(constraints)
  • 4.3 线性布局(Row和Column)
  • 4.4 弹性布局(Flex)

Flutter:一部从无到有,再到改变移动开发格局的崛起史_flutter_07

第五章:容器类组件

  • 5.1 填充(Padding)
  • 5.2 装饰容器(DecoratedBox)
  • 5.3 变换(Transform)
  • 5.4 容器组件(Container)
  • 5.5 剪裁(Clip)
  • 5.6 空间适配(FittedBox)
  • 5.7 页面骨架(Scaffold)

第六章:可滚动组件

  • 6.1 可滚动组件简介
  • 6.2 SingleChildScrollView
  • 6.3 ListView
  • 6.4 滚动监听及控制

Flutter:一部从无到有,再到改变移动开发格局的崛起史_Dart_08

第七章:功能型组件

  • 7.1 导航返回拦截(WillPopScope)
  • 7.2 数据共享(InheritedWidget)
  • 7.3 跨组件状态共享
  • 7.4 颜色和主题
  • 7.5 按需rebuild(ValueListenableBuilder)
  • 7.6 异步UI更新(FutureBuilder、StreamBuilder)
  • 7.7 对话框详解

第八章:事件处理与通知

  • 8.1 原始指针事件处理
  • 8.2 手势识别
  • 8.3 Flutter事件机制
  • 8.4 手势原理与手势冲突
  • 8.5 事件总线
  • 8.6 通知 Notification

Flutter:一部从无到有,再到改变移动开发格局的崛起史_Web_09

第九章:动画

  • 9.1 Flutter动画简介
  • 9.2 动画基本结构及状态监听
  • 9.3 自定义路由切换动画
  • 9.4 Hero动画
  • 9.5 交织动画
  • 9.6 动画切换组件(AnimatedSwitcher)
  • 9.7 动画过渡组件

第十章:自定义组件

  • 10.1 自定义组件方法简介
  • 10.2 组合现有组件
  • 10.3 组合实例:TurnBox
  • 10.4 CustomPaint 与 Canvas
  • 10.5 自绘实例:圆形背景渐变进度条
  • 10.6 自绘组件:CustomCheckbox
  • 10.7 自绘组件: DoneWidget
  • 10.8 水印实例: 文本绘制与离屏渲染

Flutter:一部从无到有,再到改变移动开发格局的崛起史_Web_10

第十一章:文件操作与网络请求

  • 11.1 文件操作
  • 11.2 通过HttpClient发起HTTP请求
  • 11.3 Http请求库-dio
  • 11.4 实例:Http分块下载

第十二章:Flutter扩展

  • 12.1 包和插件
  • 12.2 Flutter Web

第十三章:国际化

  • 13.1 让App支持多语言
  • 13.2 实现Localizations
  • 13.3 使用Intl包
  • 13.4 国际化常见问题

Flutter:一部从无到有,再到改变移动开发格局的崛起史_flutter_11

第十四章:Flutter核心原理

  • 14.1 Flutter UI 框架(Framework)
  • 14.2 Element、BuildContext和RenderObject
  • 14.3 Flutter启动流程和渲染管线
  • 14.4 布局(Layout)过程
  • 14.5 绘制(一)绘制原理及Layer

第十五章:一个完整的Flutter应用

  • 15.1 Github客户端示例
  • 15.2 Flutter APP代码结构
  • 15.3 Model类定义
  • 15.4 全局变量及共享状态
  • 15.5 网络请求封装
  • 15.6 APP入口及主页
  • 15.7 登录页
  • 15.8 多语言和多主题

Flutter:一部从无到有,再到改变移动开发格局的崛起史_开发者_12