这门课解决什么工作场景,适合谁学

很多 Android 开发者在实际项目中,往往只停留在“会用”框架层面,面对复杂的业务逻辑时,代码容易变得臃肿且难以维护。本课程聚焦于 Kotlin 高级特性与框架底层设计,旨在帮助你从“业务代码搬运工”转型为具备架构思维的开发人员。特别是对于那些希望深入理解 MVC/MVP 模式在 Kotlin 下如何实现、如何利用反射和泛型解耦、以及如何现代化地处理 UI 布局的中级开发者来说,这是一个非常落地的切入点。

课程并不面向零基础新手,要求读者已经掌握基本的 Kotlin 语法和 Android 开发流程。它更适合那些在工作中遇到过 View 层逻辑混乱、网络请求封装繁琐、或者想要提升代码可读性和复用率的在职工程师。通过构建一个完整的 GitHub App 示例,你将学到的不仅仅是 API 的调用,而是如何从零开始搭建一个可维护、可扩展的 Android 工程骨架。

核心内容与学习路径建议

课程由浅入深,分为四个关键阶段。建议优先通读第一章的课程介绍与指南,明确学习目标后再进入实战。第二章“小试牛刀”看似简单,实则是 Kotlin 扩展函数(Extension Functions)的典型应用,重点在于理解如何通过 Boolean、SharedPreferences 等扩展简化日常代码,这是 Kotlin 区别于 Java 的重要习惯养成阶段。

第三章是整门课的骨架核心,详细讲解了 Mvp 框架的接口定义、抽象实现以及 BaseActivity 的构建。这里涉及到了 Java 反射获取泛型实参这一难点,也是解决 Presenter 实例化痛点的关键,务必反复理解泛型型变在其中的作用。第四章进入真实的业务场景——登录模块,重点在于 GitHub API 的集成、鉴权拦截器的开发以及账号管理模块的设计。特别需要注意的是 RxJavaCallAdapter 的定制,这是处理异步请求与线程切换的标准高阶做法。第五章及后续内容则展示了 Anko DSL 在现代 Android 布局开发中的应用,如何用代码替代 XML,实现更灵活的 UI 声明。

学完能独立做什么,资料如何配合练习

完成本课程后,你将能够独立设计并实现一个基于 MVP 模式的 Android 应用基础架构,熟练掌握 Kotlin 扩展函数、反射机制以及 Anko DSL 布局技术。你不再仅仅是调用库,而是能够根据项目需求,自定义网络请求适配器、封装通用的基类组件,从而显著提升团队的开发效率和代码质量。

在学习过程中,建议将资料包中的代码与课程视频同步对照。不要只看视频,必须亲手初始化项目,特别是在第二章和第三章,亲手敲一遍扩展函数和 Base 类的实现,才能真正体会泛型和反射在实际工程中的威力。对于第四章的网络部分,建议自行注册 GitHub 账号,配置环境变量,完整跑通登录鉴权流程,这样才能将理论知识转化为实际的调试经验。

课程目录

第1章 课程介绍(提供问答区答疑解惑) 3 节 | 16分钟 1-1 课前必读(不看会错过一个亿).mp4
 1-2 课程学习指南 (05:42).mp4
 1-3 课程简介 (10:09).mp4
 第2章 小试牛刀 5 节 | 42分钟 2-1 项目初始化 (06:40).mp4
 2-2 Boolean扩展 (11:53).mp4
 2-3 SharedPreferences 扩展 (15:54).mp4
 2-4 Properties扩展 (06:06).mp4
 2-5 本章小结 (01:21).mp4
 第3章 Mvp 框架的开发 8 节 | 46分钟 3-1 Mvp 框架介绍 (04:10).mp4
 3-2 Mvp 框架接口定义 (05:34).mp4
 3-3 Mvp 接口的抽象实现 (08:22).mp4
 3-4 获取泛型实参实例化 Presenter_1 (08:15).mp4
 3-5 Java 反射版本以及生命周期调用 (08:32).mp4
 3-6 BaseActivity 实现 (00:48).mp4
 3-7 泛型型变回顾 (05:12).mp4
 3-8 本章小结 (04:04).mp4
 第4章 登录模块及页面的开发 

11 节 | 85分钟 4-1 GitHub API 使用入门 (04:05).mp4
 4-2 登录流程 (02:07).mp4
 4-3 添加 GitHub 登录相关接口 (11:39).mp4
 4-4 开发登录鉴权拦截器 (07:14).mp4
 4-5 开发账号管理模块 (11:20).mp4
 4-6 开发登录页面 (11:57).mp4
 4-7 登录演示及开发环境用户名密码配置 (09:47).mp4
 4-8 使用 KAE 合成 View及存在的问题 (07:27).mp4
 4-9 使用 Anko 简化我们的代码 (04:15).mp4
 4-

10 定制 RxJavaCallAdapter 添加默认的 Scheduler (10:05).mp4
 4-

11 本章小结 (04:47).mp4
 第5章 使用 Anko Dsl 布局关于页面 

13 节 | 93分钟 5-1 本章概述 (01:41).mp4
 5-2 搭建主页面 (16:07).mp4
 5-3 使用 Anko Dsl 布局关于页面 (07:08).mp4
 5-4 预览 Anko Dsl 布局 (04:28).mp4
 5-5 在 DSL 中使用主题 (02:41).mp4
 5-6 如何支持自定义 (04:44).mp4
 5-7 如何支持自定义 ViewGroup (04:30).mp4
 5-8 DSL 与 XML 性能对比 (04:50).mp4
 5-9 DSL 还是 XML (03:09).mp4
 5-

10 自己动手写 DSL 布局框架 (21:04).mp4
 5-

11 使用@DslMarker (08:12).mp4
 5-

12 自己动手写 DSL 布局框架 II (09:57).mp4
 5-

13 本章小结 (03:41).mp4
 第6章 通用列表及分页的解决方案 

14 节 | 119分钟 6-1 本章概述 (02:06).mp4
 6-2 GitHub 接口分页调研 (04:39).mp4
 6-3 RxJavaCallAdapter 的执行流程 (04:15).mp4
 6-4 实现分页类型 GitHubPaging (08:02).mp4
 6-5 添加对 GitHubPaging 的支持 (11:57).mp4
 6-6 在数据类中使用 Lazy (08:34).mp4
 6-7 开发通用分页的数据模块 (08:46).mp4
 6-8 开发通用列表页面-1 (13:04).mp4
 6-9 开发通用列表页面-2 (19:54).mp4
 6-

10 完成仓库列表页 (10:58).mp4
 6-

11 为列表添加 Tab (11:26).mp4
 6-

12 根据登录状态更新 Tab 及列表 (05:30).mp4
 6-

13 解决 ViewPager 数据刷新的问题 (05:34).mp4
 6-

14 本章小结 (04:00).mp4
 第7章 仓库详情页面的开发 

10 节 | 141分钟 7-1 本章概述 (01:58).mp4
 7-2 主题配色方案 (13:54).mp4
 7-3 实现夜间模式 (19:03).mp4
 7-4 开发通用 DetailItem (18:04).mp4
 7-5 开发仓库详情页面 (19:14).mp4
 7-6 Behavior: 头像与 ActionBar 联动 (22:08).mp4
 7-7 Android 4.4 兼容性问题解决 (17:06).mp4
 7-8 实现仿 QQ 右滑返回 (09:44).mp4
 7-9 实现仿微信右滑返回 (13:39).mp4
 7-

10 小结 (05:25).mp4
 第8章 Retrofit 的原理及 RetroApollo 的实现 9 节 | 86分钟 8-1 GraphQL 简介 (05:55).mp4
 8-2 GraphQL 初体验 (09:38).mp4
 8-3 接入 GraphQL 框架 Apollo-Android (13:18).mp4
 8-4 接入 RetroApollo-Android 框架 (07:32).mp4
 8-5 RetroApollo 动态代理处理请求 (16:38).mp4
 8-6 RetroApollo 解析注解和泛型返回值 (17:42).mp4
 8-7 RetroApollo 返回类型适配 (06:40).mp4
 8-8 RetroApollo 适配 RxJava (04:51).mp4
 8-9 本章小结 (03:01).mp4
 第9章 使用协程重构我们的代码 

13 节 | 127分钟 9-1 协程的基本概念 (09:57).mp4
 9-2 协程框架的使用-1 (14:59).mp4
 9-3 协程框架的使用-2 (13:22).mp4
 9-4 协程框架的使用-3 (09:29).mp4
 9-5 Android 的第一行协程代码 (18:40).mp4
 9-6 协程风格的对话框实现 (05:36).mp4
 9-7 为 RetroApollo 添加协程支持 (10:01).mp4
 9-8 实现自己的协程框架 - 协程的基本实现 (15:56).mp4
 9-9 实现自己的协程框架 - 线程调度 (09:35).mp4
 9-

10 实现自己的协程框架- Delay (02:41).mp4
 9-

11 实现自己的协程框架- runBlocking (06:19).mp4
 9-

12 实现自己的协程框架- Deferred (06:19).mp4
 9-

13 本章小结 (03:37).mp4
 第10章 课程总结 1 节 | 8分钟 10-1 课程总结 (07:39).mp4