想开发你自己的抖音 APP 吗?本课程将带领大家使用最新的、革命性的 Google 跨平台 UI 框架 Flutter 来开发一款类似于抖音的短视频社交 APP 围观。本课程主打实战,内容来自于真实在线应用 围观 APP 的开发经验汇总,因此具备很强的工程实践参考性。本课程内容包含 63 个课时、680 分钟视频、3 个开源项目和大约 10000 行代码,覆盖了 Dart 语言、Flutter 框架和产品功能开发等移动应用开发的各个方面。只要用心学习完本课程,并理解清楚所有代码,则完全可以胜任初级或中级移动开发工程师岗位。

课程地址

适用人群

有一定编程基础,学习过至少一门编程语言,如有 Web 前端开发经验则学习起来会更轻松。

课程资料

  1. Dart 语言示例代码
  2. Flutter 组件使用示例
  3. 围观 APP 参考代码

课程答疑

学习过程中遇到任何问题可至 叽歪论坛 发帖提问,请先按 此贴 说明申请会员,以便享受会员服务。

内容介绍

本课程共包含四个章节,其中前两个章节讲解 Dart 语言,第三个章节讲解 Flutter 框架,第四个章节为围观 APP 实战开发。如果对 Dart 语言和 Flutter 框架有一定了解,又急于进入实战开发的同学,可以直接进入实战章节。如果觉得实战章节学习起来比较困难,可以再回过头去学习前面的章节。

Dart 语言基础

Dart 是一门类型安全的语言,同时还支持动态类型,因此兼具了静态类型和动态类型语言的优点。Dart 同时支持 JIT 及时编译和 AOT 预编译,这样就可以在开发时使用 JIT 编译来快速查看运行效果,而在开发完成后使用 AOT 编译程序为二进制代码来提升运行性能。Dart 语言专门针对 UI 开发进行了优化,在语法上有些类似 JavaScript,但设计更加严谨,开发体验上也更加友好。

本章节讲解 Dart 语言基础内容,共计包含 9 个课时,主要是面向过程编程,包括变量、类型、函数、操作符、控制流程和异常等。本章节和下一章节里所用的示例代码已公开为 GitHub Gist Dart 语言示例代码

Dart 语言进阶

本章节讲解 Dart 语言进阶内容,共计包含 9 个课时,包括面向对象编程,以及泛型、库、异步、生成器、可调用类、类型定义、元数据和注释等。

Flutter 框架基础

Flutter 是 Google 在 2017 I/O 大会上推出的全新 UI 框架,目前主打移动平台,包括 Android 和 iOS,未来还会扩展到其它平台,包括桌面平台。经过一年多时间的发展,Flutter 团队于 2018/12/4 号正式释放出了 1.0 版本。关于 Flutter 的更多介绍可参阅笔者博客文章 JW Flutter Demo 之开发环境搭建

本章节讲解 Flutter 框架基础,共计包含 20 个课时,包括开发环境搭建、布局、导航和交互等。本章节里所讲的 Flutter 组件用例代码已在 GitHub 上开源 JW Flutter Demo

围观 APP 开发实战

本章节通过实战开发一款类似于抖音的短视频社交 APP 围观来深入理解和学习 Flutter 框架,其中会用到许多 Flutter 组件和第三方库,涵盖了 Flutter 移动应用开发的大部分场景。除此以外,还会学到许多真实的工程实战经验,比如如何提高代码调试效率、如何通过配置增加代码的灵活性、如何通过缓存和持久化提升用户体验等。本章节的参考代码已在 GitHub 上开源 Weiguan Lite。建议大家在学习过程中不要直接照抄代码,先自己编码实现某个功能后再去对比阅读参考代码,这样才能理解得更深刻。

完整目录

Flutter 移动应用开发实战
├── 章节1 Dart 语言基础
│   ├── 课时1 介绍
│   ├── 课时2 Hello Dart
│   ├── 课时3 重要概念
│   ├── 课时4 变量
│   ├── 课时5 内置类型
│   ├── 课时6 函数
│   ├── 课时7 操作符
│   ├── 课时8 控制流程语句
│   └── 课时9 异常
├── 章节2 Dart 语言进阶
│   ├── 课时1 类
│   ├── 课时2 泛型
│   ├── 课时3 库
│   ├── 课时4 异步
│   ├── 课时5 生成器
│   ├── 课时6 可调用类
│   ├── 课时7 类型定义
│   ├── 课时8 元数据
│   └── 课时9 注释
├── 章节3 Flutter 框架基础
│   ├── 课时1 介绍
│   ├── 课时2 安装
│   ├── 课时3 配置 IDE
│   ├── 课时4 Hello World
│   ├── 课时5 布局机制
│   ├── 课时6 布局步骤
│   ├── 课时7 水平和垂直布局
│   ├── 课时8 常用布局组件
│   ├── 课时9 布局实例
│   ├── 课时10 导航器
│   ├── 课时11 进入新页和返回
│   ├── 课时12 跨页面传递数据
│   ├── 课时13 使用命名路由
│   ├── 课时14 跨页面传递组件
│   ├── 课时15 导航器嵌套
│   ├── 课时16 无状态和有状态组件
│   ├── 课时17 创建有状态组件
│   ├── 课时18 管理状态
│   ├── 课时19 手势
│   └── 课时20 交互实例
└── 章节4 围观 APP 开发实战
    ├── 课时1 产品需求
    ├── 课时2 框架与导航
    ├── 课时3 配置与主题
    ├── 课时4 定义数据模型
    ├── 课时5 管理应用状态
    ├── 课时6 请求服务端数据
    ├── 课时7 启动应用
    ├── 课时8 注册/登录/退出
    ├── 课时9 管理个人资料
    ├── 课时10 展示图片
    ├── 课时11 播放视频
    ├── 课时12 发布动态
    ├── 课时13 展示动态
    ├── 课时14 喜欢动态
    ├── 课时15 删除动态
    ├── 课时16 用户主页
    ├── 课时17 关注用户
    ├── 课时18 Android 打包
    └── 课时19 iOS 打包

参考资料

  1. Dart
  2. DartPad
  3. Dart Packages
  4. Flutter