Skip to content

Flutter 学习路线

这条路线按“能跑起来、能理解原理、能做工程、能上线排错”的顺序组织。每个主题都对应一个学习目标,配套文章补齐概念、命令、结构图、项目实践和排错路径。

Flutter 学习路线图

文本学习路线

阶段重点对应内容
建立定位Flutter 解决什么问题,和 WebView、React Native、原生开发有什么边界01
跑通工程SDK、Dart、项目目录、热重载、pubspec、第一屏02-03、动手入门路径
理解核心Widget/Element/RenderObject、约束布局、状态和生命周期04-06、核心架构
做成应用路由、接口、缓存、动画、插件、平台能力07-11、项目实战路线
工程化性能、测试、架构分层、组件库、发布和观测12-16、项目实战路线完整项目承接清单
能排问题依赖、构建、白屏、卡顿、线上异常17、排错手册
形成路线把知识组织成可持续练习路径18

推荐顺序是:Flutter 概览 -> 核心架构 -> 动手入门路径 -> 项目实战路线 -> 完整项目承接清单 -> 排错手册。读完后再回到下面的主题目录,可以检查自己是否已经覆盖了关键知识点。

编号主题学习重点配套阅读
01Flutter 的定位:为什么它不是套壳 Web从框架定位、渲染方式和跨端边界理解 Flutter 适合做什么、不适合做什么。Flutter 概览核心架构
02环境、Dart 与第一个可运行 App跑通 SDK、设备、项目目录、热重载和第一个页面,建立可复现开发链路。动手入门路径
03Dart 基础、空安全与异步模型掌握 Dart 语法、空安全、Futureasync/await 和主 isolate 的基本边界。动手入门路径
04Widget、Element、RenderObject 三层模型理解 Widget 是配置、Element 管位置和生命周期、RenderObject 负责布局绘制。核心架构
05约束布局:Constraints go down, sizes go up用父约束、子尺寸、父定位这条规则解释 Row、Column、ListView 的常见布局问题。核心架构
06状态、生命周期与重建边界区分局部状态、页面状态、业务状态和持久状态,控制重建范围和资源释放。项目实战路线
07路由、导航、深链与页面组织理解页面栈、参数、登录拦截、深链和返回行为,避免路由散落在业务组件里。项目实战路线
08网络、JSON、错误处理与接口层建立 DTO、业务模型、Repository、错误模型和重试策略,避免页面直接耦合接口。项目实战路线
09本地存储、缓存与离线体验按偏好、token、结构化数据、文件缓存和同步队列区分本地存储方案。项目实战路线
10手势、动画、CustomPainter 与动效系统理解手势命中、动画控制器、自定义绘制和重绘边界,避免动效拖慢页面。核心架构
11平台通道、插件、FFI 与原生能力理解 MethodChannel、EventChannel、FFI 和插件配置,处理权限、线程和错误边界。核心架构排错手册
12渲染流水线、性能优化与 DevTools区分 build、layout、paint、raster、内存和网络问题,用 DevTools 定位瓶颈。核心架构排错手册
13测试、质量门禁与 CI用单元测试、Widget 测试、集成测试和 CI 命令保证项目可持续迭代。项目实战路线
14架构分层、状态管理与可维护项目结构设计 presentation、application、domain、data、core、shared 的职责边界。项目实战路线
15组件库、主题、设计系统与工程规范把颜色、字号、间距、基础组件、业务组件和页面模板沉淀成稳定规范。项目实战路线
16打包发布、签名、多环境与线上观测梳理 dev/test/prod、Android/iOS 签名、版本、崩溃、日志、性能和回滚。项目实战路线
17常见疑难排查:依赖、构建、白屏、卡顿按环境、依赖、构建、运行、布局、网络、性能、发布阶段定位问题。排错手册
18从新手到高手的项目路线图把入门、核心、工程和进阶阶段串起来,形成持续练习和项目落地路线。项目实战路线完整项目承接清单

推荐节奏

新手按 01-06 建立基本心智模型,再进入 07-12 补工程能力,最后通过 13-18 把质量、发布和项目路线补齐。

有移动端或前端经验的开发者,可以重点看 01、04、05、06、08、11、12、14、16,再用实战项目验证边界。

学完后的自检问题

  • 能否说明 Flutter 为什么采用声明式 Widget 和自绘渲染。
  • 能否解释 Widget、Element、RenderObject 分别负责什么。
  • 能否说清楚父级约束、子级尺寸、父级定位这套布局规则。
  • 能否写出包含加载、空数据、成功、失败的页面状态。
  • 能否把接口、缓存、错误和页面展示分层处理。
  • 能否判断一个平台能力应该用插件、平台通道还是 FFI。
  • 能否用 DevTools 区分 build 慢、layout 慢、paint 慢和 raster 慢。
  • 能否给一个 Flutter 项目设计测试、发布、日志和崩溃收集链路。
  • 能否从需求出发拆出页面、接口、状态、缓存、权限和发布验收项。
别急,先让缓存热一下。