联系客服1
联系客服2

基于GitHub App 深度讲解Kotlin高级特性与框架设计

27
回复
2555
查看
打印 上一主题 下一主题
[复制链接]
  • TA的每日心情

    3 天前
  • 签到天数: 739 天

    [LV.9]以坛为家II

    7263

    主题

    8661

    帖子

    130万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    1301505
    楼主
    发表于 2020-5-6 11:58:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    〖课程介绍〗:
            【Kotlin中文社区负责人亲授】本课程以GitHub APP业务为主线,将Kotlin高级特性与关键技术贯穿始末,让你更深入的掌握Kotlin特性,写出更具Kotlin风格的Android APP;同时结合真实场景,带你设计与实现高质量的通用框架,让你的编程思维得到充分的训练和质的提升。总之通过这门课程的学习,为你扫清Kotlin In Android开发障碍,快速完成Kotlin技能升级。
    6 j3 R8 ~/ r# I" F4 o9 f# T) n# S5 |
    〖课程目录〗:5 k' G4 Q2 R5 t/ h' d8 j
            第1章 课程介绍(提供问答区答疑解惑)
            本章主要介绍课程安排,以及开发环境的配置.如无Kotlin基础,可以学习老师的另一门课程:https://coding.imooc.com/class/108.html

             1-1 课前必读(不看会错过一个亿)
             1-2 课程学习指南 试看
             1-3 课程简介 试看, @( ?' J  l+ i1 U% P0 Z5 w
            第2章 小试牛刀+ E6 ~: ?0 h5 b& L# D
            本章主要完成一个基于扩展方法、Lambda 表达式和运算符 Boolean 的扩展、 以及基于属性代理的 SharedPreferences 和 Properties 的扩展,一方面为课程的后续内容做铺垫,另一方面也帮助学院能够快速进入状态。7 J  X6 f( a5 @  o
    8 O7 B4 C6 C* e4 V3 L9 x
             2-1 项目初始化8 V$ h" w- {; X8 a- g$ f+ @
             2-2 Boolean扩展
             2-3 SharedPreferences 扩展3 ^" y8 k2 v4 t* h1 Y$ f* X
             2-4 Properties扩展
             2-5 本章小结5 z, `7 {7 y# v! b2 y- p
            第3章 Mvp 框架的开发  H9 ?0 k! k$ ^( E; p
            本章主要运用泛型和反射的知识开发一个基于运行时反射获取泛型实参来完成 View与Presenter 绑定以及实例注入的框架,对比 Java 反射以及 Kotlin 反射在 Kotlin 当中的运用,同时对泛型的型变作进一步深入的讲解。

             3-1 Mvp 框架介绍
             3-2 Mvp 框架接口定义6 S) G* L2 B5 F5 \# P9 t
             3-3 Mvp 接口的抽象实现
             3-4 获取泛型实参实例化 Presenter_1
             3-5 Java 反射版本以及生命周期调用
             3-6 BaseActivity 实现: n4 m7 y: j# u* \, ~/ `$ L) k
             3-7 泛型型变回顾) y% Y0 a2 E0 o; N
             3-8 本章小结. D+ M* s3 k! ^  ^2 S8 o$ o6 ^
            第4章 登录模块及页面的开发
            本章主要梳理 GitHub Api 的鉴权流程,完成登录页面的开发。其中涉及到使用 Kotlin-android-extensions 来简化 findViewById 的操作以及 Parcelable 接口实现的模板代码,使用 Retrofit 处理网络请求,并完成第一次对 RxJavaCallAdapter 的定制以支持对 RxJava 中 observeOn 的通用配置。...2 J) N$ ^& b# c

             4-1 GitHub API 使用入门
             4-2 登录流程
             4-3 添加 GitHub 登录相关接口
             4-4 开发登录鉴权拦截器7 b- b6 N( I; ]; k' E6 n2 f5 U
             4-5 开发账号管理模块6 m1 _0 S8 P' B
             4-6 开发登录页面2 s( I+ }# y* C5 A4 f# C1 d3 ]4 \- f, x
             4-7 登录演示及开发环境用户名密码配置" p9 c3 \& x1 z7 ?7 ~4 ?
             4-8 使用 KAE 合成 View及存在的问题
             4-9 使用 Anko 简化我们的代码
             4-10 定制 RxJavaCallAdapter 添加默认的 Scheduler! G8 L* d- z' q4 V) x& n
             4-11 本章小结
            第5章 使用 Anko Dsl 布局关于页面
            本章重点讲解如何使用 Anko Dsl 编写布局,其中包括如何支持第三方 View 和 ViewGroup,DSL 布局与 XML 布局的性能对比,两种布局方案在各个方面的对比和使用建议。本章最后也仿照 Anko Dsl 从零开始开发一套 Dsl 的布局框架,并介绍 Dsl 中涉及到的隐式 Receiver 的问题以及 DslMarker 注解的使用。...2 G& }/ r* \: `1 A8 v# W+ \

             5-1 本章概述
             5-2 搭建主页面 试看" s) Y. i! W7 I1 O& c. Z
             5-3 使用 Anko Dsl 布局关于页面
             5-4 预览 Anko Dsl 布局' o4 k0 ^1 \1 b7 Y8 Q$ D/ A- m. _) O
             5-5 在 DSL 中使用主题
             5-6 如何支持自定义/ m+ F  g% |  j  y6 D1 L3 M3 w1 j
             5-7 如何支持自定义 ViewGroup
             5-8 DSL 与 XML 性能对比
             5-9 DSL 还是 XML
             5-10 自己动手写 DSL 布局框架
             5-11 使用@DslMarker
             5-12 自己动手写 DSL 布局框架 II+ ?8 k7 v3 B$ B  N
             5-13 本章小结$ P  R' L, [* P: I0 S2 ]7 }
            第6章 通用列表及分页的解决方案$ R# H, |$ F9 J. X
            本章主要对 GitHub 的接口分页进行分析和调研,并以此再次对 RxJavaCallAdapter 做定制和扩展,完成对 GitHub 接口分页的通用支持;梳理了 Gson 的对象实例化流程,分析了在数据类中使用 lazy 导致的空指针的问题的原因;同时也对 FragmentPagerAdapter 不能正常清空数据的问题做了分析和解决。...2 P: [3 ^$ u$ d0 D& [

             6-1 本章概述5 j& c" W! J6 S! B' q
             6-2 GitHub 接口分页调研2 V. \1 N# s0 j% o: V" L; _
             6-3 RxJavaCallAdapter 的执行流程# F9 f+ a% |' q" {9 k
             6-4 实现分页类型 GitHubPaging
             6-5 添加对 GitHubPaging 的支持
             6-6 在数据类中使用 Lazy
             6-7 开发通用分页的数据模块# A- ?7 B; R; d7 B4 h" a
             6-8 开发通用列表页面-19 R' t0 u& }7 u1 }% S' X# t
             6-9 开发通用列表页面-2* e& h& l2 v" T
             6-10 完成仓库列表页
             6-11 为列表添加 Tab
             6-12 根据登录状态更新 Tab 及列表
             6-13 解决 ViewPager 数据刷新的问题0 F1 e6 {. R  _* o6 e, s
             6-14 本章小结1 g0 U& X3 a6 z, Q5 E
            第7章 仓库详情页面的开发
            本章中实现了 GitHub App 的昼夜模式切换,开发了支持头像与 ActionBar 联动的 Behavior,处理了对 5.0 以下的版本的兼容性问题,分别完成了仿 QQ 和 微信的聊天页面右滑返回上一页的效果,除此之外,还运用属性代理开发了 ObjectPropertyDelegate 这个框架优化代码。...
    6 v* x' ]) g9 f! Q% `- u/ G7 x: p6 x
             7-1 本章概述7 ~( b! E- I, p& d' u# W& G: B7 e
             7-2 主题配色方案  Z& x$ M$ R% L# f$ a9 d" ]5 I+ }
             7-3 实现夜间模式4 }+ ?8 x; g7 L5 W7 A% L1 C7 H" P
             7-4 开发通用 DetailItem
             7-5 开发仓库详情页面
             7-6 Behavior: 头像与 ActionBar 联动7 M/ z" i( h, k+ Y
             7-7 Android 4.4 兼容性问题解决  `* P4 S8 }! p, }7 N* }2 b! s
             7-8 实现仿 QQ 右滑返回
             7-9 实现仿微信右滑返回) n) ], B0 w8 t5 f9 |
             7-10 小结: Y( Y7 W% }/ e" V$ K% ?
            第8章 Retrofit 的原理及 RetroApollo 的实现8 ]5 b+ \0 [: \  `" Z( s" U
            GraphQL Api 相比 RESTFul Api 有更灵活更稳健的特点,本章主要涉及认识和使用 GraphQL 来请求 GitHub Api。在深入剖析 Retrofit 的原理之后,参考 Retrofit 开发 RetroApollo 框架来简化请求操作,这其中涉及到了对注解、泛型和反射知识的灵活运用。...

             8-1 GraphQL 简介% o3 \7 B1 H3 m7 V' h
             8-2 GraphQL 初体验* j% A/ p  o% D
             8-3 接入 GraphQL 框架 Apollo-Android
             8-4 接入 RetroApollo-Android 框架* L! [! k* R* k$ L: n  j# c
             8-5 RetroApollo 动态代理处理请求% E0 [" a+ D) ^3 J
             8-6 RetroApollo 解析注解和泛型返回值
             8-7 RetroApollo 返回类型适配! R0 m% I9 o4 X& e. T
             8-8 RetroApollo 适配 RxJava% Z/ U, C4 P5 I3 n& q+ F$ t
             8-9 本章小结
            第9章 使用协程重构我们的代码" t* O. L) T/ U/ h  P7 J( F
            本章主要阐述协程的概念,分析 suspend 函数的原理,用实例讲解了官方协程框架的使用方法,开发一个 Golang 风格的 Deferred 扩展,实现一个协程风格的对话框扩展,最后从零开始使用标准库的协程 Api 来带着大家开发一个高仿官方协程框架的简化版本,完成包括启动协程、线程调度、协程等待等功能,让学员真正了解 ...

             9-1 协程的基本概念, Z, M4 Q, W; o& ]( q+ ?# [0 {
             9-2 协程框架的使用-1
             9-3 协程框架的使用-26 i  q' f$ }  @& _
             9-4 协程框架的使用-3
             9-5 Android 的第一行协程代码
             9-6 协程风格的对话框实现
             9-7 为 RetroApollo 添加协程支持
             9-8 实现自己的协程框架 - 协程的基本实现/ f. h: q. ~' }9 P( @
             9-9 实现自己的协程框架 - 线程调度
             9-10 实现自己的协程框架- Delay2 g6 N6 w" f& m! u: O
             9-11 实现自己的协程框架- runBlocking+ [$ q# c! r: _) b2 |6 l, {! }
             9-12 实现自己的协程框架- Deferred
             9-13 本章小结8 w7 O& f0 F4 [1 k3 D1 _; S
            第10章 课程总结
            本章将带大家一起回顾和总结本次进阶课程所学到的内容重点,难点等。
    / r* s1 K4 F( e* z
             10-1 课程总结




    游客,如果您要查看本帖隐藏内容请回复



    收藏
    收藏0
    分享
    分享
    支持
    支持0
    反对
    反对0
    回复

    使用道具 举报

  • TA的每日心情

    2022-10-18 21:34
  • 签到天数: 241 天

    [LV.8]以坛为家I

    1

    主题

    483

    帖子

    9078

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    9078
    沙发
    发表于 2020-5-6 11:59:12 | 只看该作者
    6666666666666666
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-7-7 20:21
  • 签到天数: 40 天

    [LV.5]常住居民I

    3

    主题

    82

    帖子

    3168

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    3168
    板凳
    发表于 2020-5-6 13:25:54 | 只看该作者
    666666666666666666666666666
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-6-30 09:54
  • 签到天数: 140 天

    [LV.7]常住居民III

    5

    主题

    466

    帖子

    6800

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    6800
    地板
    发表于 2020-5-6 15:02:00 | 只看该作者
    基于GitHub App 深度讲解Kotlin高级特性与框架设计
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-13 18:30
  • 签到天数: 548 天

    [LV.9]以坛为家II

    3

    主题

    862

    帖子

    1万

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    15996
    5#
    发表于 2020-5-6 17:11:46 | 只看该作者
    谢谢分享
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-13 18:30
  • 签到天数: 548 天

    [LV.9]以坛为家II

    3

    主题

    862

    帖子

    1万

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    15996
    6#
    发表于 2020-5-6 17:12:26 | 只看该作者
    谢谢分享
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-5-27 17:02
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    1

    主题

    28

    帖子

    2276

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    2276
    7#
    发表于 2020-5-7 08:18:56 | 只看该作者
    看看了谢谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2021-6-2 18:19
  • 签到天数: 115 天

    [LV.6]常住居民II

    1

    主题

    324

    帖子

    5149

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    5149
    8#
    发表于 2020-5-7 08:34:01 | 只看该作者
    基于GitHub App 深度讲解Kotlin高级特性与框架设计
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-2-16 15:50
  • 签到天数: 381 天

    [LV.9]以坛为家II

    1

    主题

    554

    帖子

    6618

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    6618
    9#
    发表于 2020-5-7 09:10:38 | 只看该作者
    学习,谢谢
    回复

    使用道具 举报

  • TA的每日心情

    2023-6-26 22:48
  • 签到天数: 120 天

    [LV.7]常住居民III

    3

    主题

    281

    帖子

    5433

    积分

    终身会员

    Rank: 6Rank: 6

    积分
    5433
    10#
    发表于 2020-5-7 09:56:49 | 只看该作者
    RE: 基于GitHub App 深度讲解Kotlin高级特性与框架设计 [修改]
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    学习课程!一站搞定!
    学途无忧VIP会员群

    973849140

    周一至周日9:00-23:00

    反馈建议

    1227072433@qq.com 在线QQ咨询

    扫描二维码关注我们

    学途无忧!为学习谋坦途,为会员谋福利!|网站地图