〖课程介绍〗:
本课程以GitHub APP业务为主线,将Kotlin高级特性与关键技术贯穿始末,带你写出更具Kotlin风格的android APP;同时结合真实场景,带你设计与实现高质量通用框架,充分提升编程思维。

〖课程目录〗:
-
第1章 课程介绍(提供问答区答疑解惑) 试看3 节 | 16分钟
-
本章主要介绍课程安排,以及开发环境的配置
-
收起列表
-
图文:1-1 课前必读(不看会错过一个亿)
-
视频:1-2 课程学习指南 (05:42)试看
-
视频:1-3 课程简介 (10:09)试看
-
第2章 小试牛刀5 节 | 42分钟
-
本章主要完成一个基于扩展方法、Lambda 表达式和运算符 Boolean 的扩展、 以及基于属性代理的 SharedPreferences 和 Properties 的扩展,一方面为课程的后续内容做铺垫,另一方面也帮助学院能够快速进入状态。
-
收起列表
-
视频:2-1 项目初始化 (06:40)
-
视频:2-2 Boolean扩展 (11:53)
-
视频:2-3 SharedPreferences 扩展 (15:54)
-
视频:2-4 Properties扩展 (06:06)
-
视频:2-5 本章小结 (01:21)
-
第3章 Mvp 框架的开发8 节 | 46分钟
-
本章主要运用泛型和反射的知识开发一个基于运行时反射获取泛型实参来完成 View与Presenter 绑定以及实例注入的框架,对比 Java 反射以及 Kotlin 反射在 Kotlin 当中的运用,同时对泛型的型变作进一步深入的讲解。
-
收起列表
-
视频:3-1 Mvp 框架介绍 (04:10)
-
视频:3-2 Mvp 框架接口定义 (05:34)
-
视频:3-3 Mvp 接口的抽象实现 (08:22)
-
视频:3-4 获取泛型实参实例化 Presenter_1 (08:15)
-
视频:3-5 Java 反射版本以及生命周期调用 (08:32)
-
视频:3-6 BaseActivity 实现 (00:48)
-
视频:3-7 泛型型变回顾 (05:12)
-
视频:3-8 本章小结 (04:04)
-
第4章 登录模块及页面的开发11 节 | 85分钟
-
本章主要梳理 GitHub Api 的鉴权流程,完成登录页面的开发。其中涉及到使用 Kotlin-android-extensions 来简化 findViewById 的操作以及 Parcelable 接口实现的模板代码,使用 Retrofit 处理网络请求,并完成第一次对 RxJavaCallAdapter 的定制以支持对 RxJava 中 observeOn 的通用配置。…
-
收起列表
-
视频:4-1 GitHub API 使用入门 (04:05)
-
视频:4-2 登录流程 (02:07)
-
视频:4-3 添加 GitHub 登录相关接口 (11:39)
-
视频:4-4 开发登录鉴权拦截器 (07:14)
-
视频:4-5 开发账号管理模块 (11:20)
-
视频:4-6 开发登录页面 (11:57)
-
视频:4-7 登录演示及开发环境用户名密码配置 (09:47)
-
视频:4-8 使用 KAE 合成 View及存在的问题 (07:27)
-
视频:4-9 使用 Anko 简化我们的代码 (04:15)
-
视频:4-10 定制 RxJavaCallAdapter 添加默认的 Scheduler (10:05)
-
视频:4-11 本章小结 (04:47)
-
第5章 使用 Anko Dsl 布局关于页面 试看13 节 | 93分钟
-
本章重点讲解如何使用 Anko Dsl 编写布局,其中包括如何支持第三方 View 和 ViewGroup,DSL 布局与 XML 布局的性能对比,两种布局方案在各个方面的对比和使用建议。本章最后也仿照 Anko Dsl 从零开始开发一套 Dsl 的布局框架,并介绍 Dsl 中涉及到的隐式 Receiver 的问题以及 DslMarker 注解的使用。…
-
收起列表
-
视频:5-1 本章概述 (01:41)
-
视频:5-2 搭建主页面 (16:07)试看
-
视频:5-3 使用 Anko Dsl 布局关于页面 (07:08)
-
视频:5-4 预览 Anko Dsl 布局 (04:28)
-
视频:5-5 在 DSL 中使用主题 (02:41)
-
视频:5-6 如何支持自定义 (04:44)
-
视频:5-7 如何支持自定义 ViewGroup (04:30)
-
视频:5-8 DSL 与 XML 性能对比 (04:50)
-
视频:5-9 DSL 还是 XML (03:09)
-
视频:5-10 自己动手写 DSL 布局框架 (21:04)
-
视频:5-11 使用@DslMarker (08:12)
-
视频:5-12 自己动手写 DSL 布局框架 II (09:57)
-
视频:5-13 本章小结 (03:41)
-
第6章 通用列表及分页的解决方案14 节 | 119分钟
-
本章主要对 GitHub 的接口分页进行分析和调研,并以此再次对 RxJavaCallAdapter 做定制和扩展,完成对 GitHub 接口分页的通用支持;梳理了 Gson 的对象实例化流程,分析了在数据类中使用 lazy 导致的空指针的问题的原因;同时也对 FragmentPagerAdapter 不能正常清空数据的问题做了分析和解决。…
-
收起列表
-
视频:6-1 本章概述 (02:06)
-
视频:6-2 GitHub 接口分页调研 (04:39)
-
视频:6-3 RxJavaCallAdapter 的执行流程 (04:15)
-
视频:6-4 实现分页类型 GitHubPaging (08:02)
-
视频:6-5 添加对 GitHubPaging 的支持 (11:57)
-
视频:6-6 在数据类中使用 Lazy (08:34)
-
视频:6-7 开发通用分页的数据模块 (08:46)
-
视频:6-8 开发通用列表页面-1 (13:04)
-
视频:6-9 开发通用列表页面-2 (19:54)
-
视频:6-10 完成仓库列表页 (10:58)
-
视频:6-11 为列表添加 Tab (11:26)
-
视频:6-12 根据登录状态更新 Tab 及列表 (05:30)
-
视频:6-13 解决 ViewPager 数据刷新的问题 (05:34)
-
视频:6-14 本章小结 (04:00)
-
第7章 仓库详情页面的开发10 节 | 141分钟
-
本章中实现了 GitHub App 的昼夜模式切换,开发了支持头像与 ActionBar 联动的 Behavior,处理了对 5.0 以下的版本的兼容性问题,分别完成了仿 QQ 和 微信的聊天页面右滑返回上一页的效果,除此之外,还运用属性代理开发了 ObjectPropertyDelegate 这个框架优化代码。…
-
收起列表
-
视频:7-1 本章概述 (01:58)
-
视频:7-2 主题配色方案 (13:54)
-
视频:7-3 实现夜间模式 (19:03)
-
视频:7-4 开发通用 DetAIlItem (18:04)
-
视频:7-5 开发仓库详情页面 (19:14)
-
视频:7-6 Behavior: 头像与 ActionBar 联动 (22:08)
-
视频:7-7 android 4.4 兼容性问题解决 (17:06)
-
视频:7-8 实现仿 QQ 右滑返回 (09:44)
-
视频:7-9 实现仿微信右滑返回 (13:39)
-
视频:7-10 小结 (05:25)
-
第8章 Retrofit 的原理及 RetroApollo 的实现9 节 | 86分钟
-
GraphQL Api 相比 RESTFul Api 有更灵活更稳健的特点,本章主要涉及认识和使用 GraphQL 来请求 GitHub Api。在深入剖析 Retrofit 的原理之后,参考 Retrofit 开发 RetroApollo 框架来简化请求操作,这其中涉及到了对注解、泛型和反射知识的灵活运用。…
-
收起列表
-
视频:8-1 GraphQL 简介 (05:55)
-
视频:8-2 GraphQL 初体验 (09:38)
-
视频:8-3 接入 GraphQL 框架 Apollo-android (13:18)
-
视频:8-4 接入 RetroApollo-android 框架 (07:32)
-
视频:8-5 RetroApollo 动态代理处理请求 (16:38)
-
视频:8-6 RetroApollo 解析注解和泛型返回值 (17:42)
-
视频:8-7 RetroApollo 返回类型适配 (06:40)
-
视频:8-8 RetroApollo 适配 RxJava (04:51)
-
视频:8-9 本章小结 (03:01)
-
第9章 使用协程重构我们的代码13 节 | 127分钟
-
本章主要阐述协程的概念,分析 suspend 函数的原理,用实例讲解了官方协程框架的使用方法,开发一个 Golang 风格的 Deferred 扩展,实现一个协程风格的对话框扩展,最后从零开始使用标准库的协程 Api 来带着大家开发一个高仿官方协程框架的简化版本,完成包括启动协程、线程调度、协程等待等功能,让学员真正了解 …
-
收起列表
-
视频:9-1 协程的基本概念 (09:57)
-
视频:9-2 协程框架的使用-1 (14:59)
-
视频:9-3 协程框架的使用-2 (13:22)
-
视频:9-4 协程框架的使用-3 (09:29)
-
视频:9-5 android 的第一行协程代码 (18:40)
-
视频:9-6 协程风格的对话框实现 (05:36)
-
视频:9-7 为 RetroApollo 添加协程支持 (10:01)
-
视频:9-8 实现自己的协程框架 – 协程的基本实现 (15:56)
-
视频:9-9 实现自己的协程框架 – 线程调度 (09:35)
-
视频:9-10 实现自己的协程框架- Delay (02:41)
-
视频:9-11 实现自己的协程框架- runBlocking (06:19)
-
视频:9-12 实现自己的协程框架- Deferred (06:19)
-
视频:9-13 本章小结 (03:37)
-
第10章 课程总结1 节 | 8分钟
-
本章将带大家一起回顾和总结本次进阶课程所学到的内容重点,难点等。
-
收起列表
-
视频:10-1 课程总结 (07:39)
有需要联系v;加客服窗口的联系方式
摘要:本文以GitHub App为背景,深入探讨了Kotlin在Android开发中的高级特性和框架设计。通过对Kotlin语法、函数式编程、协程等特性的详细讲解,以及GitHub App的框架设计分析,旨在帮助开发者更好地理解和应用Kotlin,提高Android开发效率。
1、Kotlin语法特性
Kotlin作为一种现代的编程语言,具有简洁、安全、互操作性强等特点。在GitHub App中,Kotlin的语法特性得到了充分体现。首先,Kotlin的扩展函数和属性委托功能,使得代码更加简洁易读。例如,在GitHub App中,通过扩展函数可以轻松实现按钮点击事件的绑定。其次,Kotlin的协程特性,使得异步编程变得简单高效。在GitHub App中,协程被广泛应用于网络请求、数据加载等场景,提高了应用的响应速度和用户体验。
此外,Kotlin的集合操作符和流式API,使得数据处理更加灵活。在GitHub App中,通过这些特性可以轻松实现数据筛选、排序、映射等操作,提高了数据处理的效率。最后,Kotlin的空安全特性,有效避免了空指针异常,提高了代码的健壮性。在GitHub App中,空安全特性被广泛应用于数据解析和业务逻辑处理,降低了代码出错的可能性。
总之,Kotlin的语法特性在GitHub App中得到了充分的应用,使得代码更加简洁、高效、安全。
2、函数式编程
函数式编程是Kotlin的一个重要特性,它使得代码更加模块化、易于测试和维护。在GitHub App中,函数式编程被广泛应用于数据处理、事件处理等场景。首先,Kotlin的Lambda表达式和函数引用,使得函数式编程变得简单易用。例如,在GitHub App中,通过Lambda表达式可以轻松实现事件监听和回调函数的编写。其次,Kotlin的集合操作符和流式API,使得函数式编程在数据处理方面具有强大的功能。在GitHub App中,通过这些特性可以轻松实现数据筛选、映射、折叠等操作,提高了数据处理效率。
此外,Kotlin的递归函数和尾递归优化,使得函数式编程在处理复杂逻辑时更加高效。在GitHub App中,递归函数被广泛应用于数据解析、业务逻辑处理等场景,提高了代码的可读性和可维护性。最后,Kotlin的不可变数据结构,使得函数式编程在数据处理方面更加安全可靠。在GitHub App中,不可变数据结构被广泛应用于数据存储和传递,降低了数据出错的可能性。
总之,函数式编程在GitHub App中得到了充分的应用,使得代码更加简洁、高效、安全。
3、协程
协程是Kotlin的另一个重要特性,它使得异步编程变得简单高效。在GitHub App中,协程被广泛应用于网络请求、数据加载、UI更新等场景。首先,Kotlin的协程框架,使得异步编程变得简单易用。例如,在GitHub App中,通过协程可以轻松实现网络请求的异步处理,避免了线程阻塞和界面卡顿。其次,Kotlin的协程取消和异常处理,使得异步编程更加健壮。在GitHub App中,通过协程的取消和异常处理,可以有效避免资源泄漏和程序崩溃。
此外,Kotlin的协程调度器,使得异步编程更加灵活。在GitHub App中,通过协程调度器可以灵活地控制异步任务的执行顺序和优先级,提高了应用的性能和响应速度。最后,Kotlin的协程与LiveData的结合,使得异步数据更新更加流畅。在GitHub App中,通过协程和LiveData的结合,可以实现异步数据的实时更新,提高了用户体验。
总之,协程在GitHub App中得到了充分的应用,使得异步编程更加简单、高效、安全。
4、GitHub App框架设计
GitHub App的框架设计采用了MVC(Model-View-Controller)模式,使得代码结构清晰、易于维护。在GitHub App中,Model层负责数据存储和业务逻辑处理,View层负责界面展示,Controller层负责协调Model和View之间的交互。这种设计使得GitHub App的代码结构清晰,易于理解和维护。
此外,GitHub App的框架设计还采用了模块化设计,将不同的功能模块进行分离,提高了代码的可复用性和可扩展性。在GitHub App中,模块化设计使得开发者可以轻松地添加新功能或修改现有功能,降低了代码维护成本。
最后,GitHub App的框架设计还注重性能优化。在GitHub App中,通过使用缓存、异步加载等技术,提高了应用的性能和响应速度。同时,GitHub App还采用了代码混淆和优化技术,点击联系需要东西方神秘学学习资料,专业的咨询
联系我们
关注公众号
微信扫一扫
支付宝扫一扫