基于 GitHub App 业务 深度讲解 Kotlin1.2高级特性与框架设计

15981187383 · · 642 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

第1章 课程介绍(提供问答区答疑解惑)

本章主要介绍课程安排,以及开发环境的配置.如无Kotlin基础,可以学习老师的另一门课程:https://coding.imooc.com/class/108.html

第2章 小试牛刀

本章主要完成一个基于扩展方法、Lambda 表达式和运算符 Boolean 的扩展、 以及基于属性代理的 SharedPreferences 和 Properties 的扩展,一方面为课程的后续内容做铺垫,另一方面也帮助学院能够快速进入状态。

第3章 Mvp 框架的开发

本章主要运用泛型和反射的知识开发一个基于运行时反射获取泛型实参来完成 View与Presenter 绑定以及实例注入的框架,对比 Java 反射以及 Kotlin 反射在 Kotlin 当中的运用,同时对泛型的型变作进一步深入的讲解。

第4章 登录模块及页面的开发

本章主要梳理 GitHub Api 的鉴权流程,完成登录页面的开发。其中涉及到使用 Kotlin-android-extensions 来简化 findViewById 的操作以及 Parcelable 接口实现的模板代码,使用 Retrofit 处理网络请求,并完成第一次对 RxJavaCallAdapter 的定制以支持对 RxJava 中 observeOn 的通用配置。...

第5章 使用 Anko Dsl 布局关于页面

本章重点讲解如何使用 Anko Dsl 编写布局,其中包括如何支持第三方 View 和 ViewGroup,DSL 布局与 XML 布局的性能对比,两种布局方案在各个方面的对比和使用建议。本章最后也仿照 Anko Dsl 从零开始开发一套 Dsl 的布局框架,并介绍 Dsl 中涉及到的隐式 Receiver 的问题以及 DslMarker 注解的使用。...

第6章 通用列表及分页的解决方案

本章主要对 GitHub 的接口分页进行分析和调研,并以此再次对 RxJavaCallAdapter 做定制和扩展,完成对 GitHub 接口分页的通用支持;梳理了 Gson 的对象实例化流程,分析了在数据类中使用 lazy 导致的空指针的问题的原因;同时也对 FragmentPagerAdapter 不能正常清空数据的问题做了分析和解决。...

第7章 仓库详情页面的开发

本章中实现了 GitHub App 的昼夜模式切换,开发了支持头像与 ActionBar 联动的 Behavior,处理了对 5.0 以下的版本的兼容性问题,分别完成了仿 QQ 和 微信的聊天页面右滑返回上一页的效果,除此之外,还运用属性代理开发了 ObjectPropertyDelegate 这个框架优化代码。...

第8章 Retrofit 的原理及 RetroApollo 的实现

GraphQL Api 相比 RESTFul Api 有更灵活更稳健的特点,本章主要涉及认识和使用 GraphQL 来请求 GitHub Api。在深入剖析 Retrofit 的原理之后,参考 Retrofit 开发 RetroApollo 框架来简化请求操作,这其中涉及到了对注解、泛型和反射知识的灵活运用。...

第9章 使用协程重构我们的代码

本章主要阐述协程的概念,分析 suspend 函数的原理,用实例讲解了官方协程框架的使用方法,开发一个 Golang 风格的 Deferred 扩展,实现一个协程风格的对话框扩展,最后从零开始使用标准库的协程 Api 来带着大家开发一个高仿官方协程框架的简化版本,完成包括启动协程、线程调度、协程等待等功能,让学员真正了解 ...

第10章 课程总结

本章将带大家一起回顾和总结本次进阶课程所学到的内容重点,难点等。

下载地址:基于 GitHub App 业务 深度讲解 Kotlin1.2高级特性与框架设计


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:15981187383

查看原文:基于 GitHub App 业务 深度讲解 Kotlin1.2高级特性与框架设计

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

642 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传