⚠️本教程提供中英文字幕和完整课程相关资料
教程演示🔗
Flutter 开发者训练营
描述:
Flutter开发者训练营是由Reso Coder Academy发布的一门全面的Flutter框架培训课程。实际上,这门课程是该学院之前课程的更新和改进版本。课程的所有模块都已重新录制,课程内容完全更新。Flutter是最受欢迎的应用程序用户界面开发框架之一,其开发者和用户社区正在迅速扩大,并受到各种公司的利用。根据发布的数据,Flutter高级程序员的平均收入约为15万美元,这是一个重要的数字。许多公司都使用了Flutter,其中最重要的包括Google、Microsoft、Toyota、Alibaba、eBay等。
Flutter相对于其他框架和开发工具的最重要优势在于其多平台性质。简单来说,程序员可以通过编写一次代码,从Flutter中得到三种不同的应用程序,分别是桌面、移动和Web三个平台的独特代码库。这个培训课程将占用您总共八周的时间,在这8周内,您将在很大程度上掌握这个强大的框架。
要求:
1、需要多少编程经验?
虽然具备一些编程经验会帮助您更快地理解课程内容,但作为初学者,您完全可以参加这个训练营。最初的模块《迅速掌握Dart》和《Flutter基础》将充分准备您应对后续模块中的更难的主题。
这个训练营非常注重实际操作,因此我不会在一开始给您讲太多理论知识,尽管最初的模块中包含了一些。相反,您将在编写真实世界的代码时学到大部分知识。起初,与从孤立的、简单但最终是虚构的示例中学习相比,这可能会感觉更加困难,但它绝对更值得。无论如何,您可以在直播问答和Discord上提问。
毕竟,在您的Flutter职业生涯中,您将要开发真正的应用程序,因此从一开始学会如何编写真实世界的代码将使您处于极大的优势地位。
2、需要什么操作系统?
您可以在Windows、Mac和Linux上完成这个训练营。但是,由于iOS的固有限制,如果您想为iOS开发本机插件,您需要拥有一台Mac——我们将在后面的模块中进行这个操作。除了这个模块外,这个训练营的绝大部分内容都可以在任何操作系统上完成。如果Windows和Mac之间存在任何差异,我都会指出。
您将学到什么:
Flutter和Dart专业环境设置
- Windows平台下的Flutter安装(7:58)
- Windows平台下的Android设置(5:06)
- macOS平台下的Flutter安装(6:39)
- macOS平台下的iOS和Android设置(8:52)
- 将VS Code配置为Flutter集成开发环境(13:57)
- (可选)配置VS Code,使其与我的环境完全一致(3:02)
- Flutter特定的VS Code设置(2:03)
- Dart基础知识快速入门
Dart基础知识
- Dart模块介绍(6:07)
- 变量和基本数据类型(14:14)
- 非空性(6:53)
- 运算符(10:11)
- 控制流 – If和Switch(6:06)
- 控制流 – 循环(5:21)
- 函数 – 基础(5:16)
- 函数 – 参数(10:30)
- 函数 – 高阶(12:50)
- 集合 – 基础(9:13)
- 集合 – 转换(7:50)
- 集合 – 扩展、遍历、扩展(5:01)
- 枚举(6:09)
- Pub包管理系统(6:52)
- 代码规范检查(3:20)
- 类 – 基础(16:30)
- 类 – 静态成员(2:23)
- 类 – 私有成员(6:22)
- 类 – 属性(11:23)
- 类 – 相等性(6:54)
- 继承 – 扩展类(15:37)
- 工厂构造函数(3:56)
- 继承 – 抽象类(4:17)
- 继承 – 接口(6:04)
- 泛型(3:12)
- 混入(5:47)
- 扩展(4:51)
- 关于文件和包的更多内容(3:15)
- 不可变数据类 – 基础(9:52)
- Freezed数据类(11:54)
- Freezed联合类型(16:17)
- 错误处理(6:31)
- 异步编程 – Futures(12:08)
- 异步编程 – Stream基础(5:24)
- 异步编程 – Stream生成器和操作符(6:20)
Flutter基础
- Flutter基础模块介绍(5:29)
- Flutter 101(23:17)
- 重新组织默认应用(6:01)
- 创建输入表单UI(6:15)
- 减少小部件代码重复(2:18)
- 最小和最大范围字段(7:12)
- 字段验证器(2:50)
- 验证和保存表单数据(6:24)
- 将表单提取到单独的小部件中(11:13)
- 导航到随机选择器页面(9:37)
- 实现随机选择器页面(13:19)
- 使用Flutter Hooks重新实现(14:21)
- 创建ChangeNotifier(10:09)
- 使用Provider在整个应用程序中提供ChangeNotifier(15:35)
- 添加Riverpod依赖(5:28)
- 使用ChangeNotifier与Riverpod管理不可变状态(16:24)
- 使用StateNotifier进行不可变状态管理(20:10)
生产级项目 – 仓库查看器
- 仓库查看器模块介绍(14:15)
- 设置项目(8:21)
- 创建OAuth应用程序和个人访问令牌(6:38)
- 发送测试授权请求(5:24)
- OAuth2授权代码流程概述(5:30)
- 架构概述(18:46)
- 添加依赖项(13:15)
- 设置分析选项(4:20)
- 授权失败处理(7:19)
- 从授权基础层开始(7:17)
- 安全存储凭证(14:59)
- 获取已登录凭证(8:48)
- 标识、范围和端点(11:18)
- 创建AuthorizationCodeGrant(6:21)
- 处理
- 令牌撤销(24:04)
- 处理离线注销行为(8:49)
- DioError扩展(5:53)
- 刷新凭证方法(10:07)
- 从授权应用程序层开始(8:57)
- 编写第一个AuthNotifier方法(6:41)
- 创建AuthUriCallback(14:49)
- 协调登录流程(6:14)
- 注销和Auth应用程序层总结(3:53)
- Auth提供程序(12:08)
- 设置呈现层页面(5:37)
- 创建AppWidget(6:32)
- 设置AutoRoute(12:27)
- 创建启动页(9:53)
- 初始化提供程序(7:42)
- 根据AuthState导航(10:39)
- 构建登录页面(12:15)
- 为Auth Webview铺路(8:01)
- Auth回调函数(9:41)
- 创建Webview(7:16)
- 拦截重定向尝试并完成Webview(10:49)
- Android特定的Webview设置(5:57)
- 研究GitHub API端点(29:56)
- 收藏和搜索端点的相似性(6:47)
- 创建GitHub功能文件夹结构(8:10)
- GitHub领域实体(13:34)
- GitHub失败(2:18)
- 从数据传输对象开始(6:39)
- 使用Json Serializable进行转换(10:40)
- 在DTO和实体之间进行转换(3:43)
- GithubRepoDTO(9:50)
- 在层之间转换GithubRepoDTO(3:30)
- ETags和通用缓存的解释(6:23)
- StarredReposRemoteService的第一版(22:24)
- 创建RemoteResponse联合类型(6:10)
- 设置SembastDatabase类(20:43)
- 注册Sembast提供程序(3:32)
- 实现GithubHeaders数据类的第一个版本(9:48)
- 解析链接头以实现分页(28:21)
- 缓存GitHub标头(15:50)
- 获取收藏的仓库页面 – 从实施开始(22:15)
- 获取Starred Response页面 – 处理所有RemoteResponse情况(12:02)
- 将最大页面编号传递给RemoteResponse(15:54)
- 指示数据的新鲜程度(13:41)
- StarredReposRepository实现第1部分 – 仅使用远程服务(12:24)
- StarredReposLocalService – 插入页面(15:30)
- StarredReposLocalService – 读取页面(15:03)
- StarredReposRepository实现第2部分 – 本地服务(7:11)
- OAuth2Interceptor第1部分(18:45)
- OAuth2Interceptor第2部分(12:43)
- 提供OAuth2Interceptor(13:53)
- 创建StarredReposState(21:46)
- StarredReposNotifier – 初始设置(6:24)
- 完成StarredReposNotifier(13:17)
- Starred Repos功能的提供程序(9:14)
- PaginatedReposListView的初始创建(14:32)
- 配置PaginatedReposListView(13:36)
- Repo Tile的初始创建和问题解决(14:24)
- 修复Dio错误的304状态代码分类(5:38)
- Repo Tile第2部分(9:02)
- 加载Repo Tile – Shimmer效果(11:18)
- 加载Repo Tile – 布局(20:40)
- 失败的Repo Tile(25:23)
- 添加分页第1部分(8:52)
- 添加分页第2部分(14:48)
- 无连接提示(14:35)
- 无结果显示(11:16)
- 搜索仓库功能概述(11:12)
- 移除重复 – Repos远程服务(13:05)
- 创建Searched Repos Repository(10:48)
- 移除重复 – Paginated Repos Notifier(12:23)
- Searched Repos提供程序和依赖性通用化的开始(8:52)
- 完成依赖通用化(12:32)
- 创建Searched Repos页面(10:07)
- 修复AutoDispose提供程序中的旧数据问题(5:40)
- 搜索功能的解释(7:41)
- 观察搜索词(12:59)
- 添加搜索词和排序(7:26)
- 删除并将搜索词放在最前面(16:35)
- 搜索历史应用程序层(11:59)
- 创建SearchBar小部件和搜索功能提供程序(13:24)
国际化
- 初始设置(12:54)
- 编写字符串并在应用程序中使用它们(15:29)
- 支持复数字符串(8:23)
- 添加另一种语言(9:51)
本地插件
- 模块介绍和设置(9:34)
- 方法通道的必要性(8:20)
- 探索本地代码并编写Dart代码(13:33)
- 启用Kotlin代码的代码完成(13:03)
- 创建Android通知通道(19:28)
- 在Android上显示通知(12:23)
- 从Flutter应用程序中使用插件并在Android上展示(7:07)
- 在XCode中打开iOS插件项目(6:59)
- 在iOS上显示通知(22:50)