1. 程式人生 > >基於 GitHub App 業務 深度講解 Kotlin1.2高階特性與框架設計

基於 GitHub App 業務 深度講解 Kotlin1.2高階特性與框架設計

第1章 課程介紹(提供問答區答疑解惑)
本章主要介紹課程安排,以及開發環境的配置.如無Kotlin基礎,可以學習老師的另一門課程:https://coding.imooc.com/class/108.html
1-1 課前必讀(不看會錯過一個億)
1-2 課程學習指南
1-3 課程簡介

第2章 小試牛刀
本章主要完成一個基於擴充套件方法、Lambda 表示式和運算子 Boolean 的擴充套件、 以及基於屬性代理的 SharedPreferences 和 Properties 的擴充套件,一方面為課程的後續內容做鋪墊,另一方面也幫助學院能夠快速進入狀態。
2-1 專案初始化
2-2 Boolean擴充套件
2-3 SharedPreferences 擴充套件
2-4 Properties擴充套件
2-5 本章小結

第3章 Mvp 框架的開發
本章主要運用泛型和反射的知識開發一個基於執行時反射獲取泛型實參來完成 View與Presenter 繫結以及例項注入的框架,對比 Java 反射以及 Kotlin 反射在 Kotlin 當中的運用,同時對泛型的型變作進一步深入的講解。
3-1 Mvp 框架介紹
3-2 Mvp 框架介面定義
3-3 Mvp 介面的抽象實現
3-4 獲取泛型實參例項化 Presenter_1
3-5 Java 反射版本以及生命週期呼叫
3-6 BaseActivity 實現
3-7 泛型型變回顧
3-8 本章小結

第4章 登入模組及頁面的開發
本章主要梳理 GitHub Api 的鑑權流程,完成登入頁面的開發。其中涉及到使用 Kotlin-android-extensions 來簡化 findViewById 的操作以及 Parcelable 介面實現的模板程式碼,使用 Retrofit 處理網路請求,並完成第一次對 RxJavaCallAdapter 的定製以支援對 RxJava 中 observeOn 的通用配置。...
4-1 GitHub API 使用入門
4-2 登入流程
4-3 新增 GitHub 登入相關介面
4-4 開發登入鑑權攔截器
4-5 開發賬號管理模組
4-6 開發登入頁面
4-7 登入演示及開發環境使用者名稱密碼配置
4-8 使用 KAE 合成 View及存在的問題
4-9 使用 Anko 簡化我們的程式碼
4-10 定製 RxJavaCallAdapter 新增預設的 Scheduler
4-11 本章小結

第5章 使用 Anko Dsl 佈局關於頁面
本章重點講解如何使用 Anko Dsl 編寫佈局,其中包括如何支援第三方 View 和 ViewGroup,DSL 佈局與 XML 佈局的效能對比,兩種佈局方案在各個方面的對比和使用建議。本章最後也仿照 Anko Dsl 從零開始開發一套 Dsl 的佈局框架,並介紹 Dsl 中涉及到的隱式 Receiver 的問題以及 DslMarker 註解的使用。...
5-1 本章概述
5-2 搭建主頁面
5-3 使用 Anko Dsl 佈局關於頁面
5-4 預覽 Anko Dsl 佈局
5-5 在 DSL 中使用主題
5-6 如何支援自定義
5-7 如何支援自定義 ViewGroup
5-8 DSL 與 XML 效能對比
5-9 DSL 還是 XML
5-10 自己動手寫 DSL 佈局框架
5-11 使用@DslMarker
5-12 自己動手寫 DSL 佈局框架 II
5-13 本章小結

第6章 通用列表及分頁的解決方案
本章主要對 GitHub 的介面分頁進行分析和調研,並以此再次對 RxJavaCallAdapter 做定製和擴充套件,完成對 GitHub 介面分頁的通用支援;梳理了 Gson 的物件例項化流程,分析了在資料類中使用 lazy 導致的空指標的問題的原因;同時也對 FragmentPagerAdapter 不能正常清空資料的問題做了分析和解決。...
6-1 本章概述
6-2 GitHub 介面分頁調研
6-3 RxJavaCallAdapter 的執行流程
6-4 實現分頁型別 GitHubPaging
6-5 新增對 GitHubPaging 的支援
6-6 在資料類中使用 Lazy
6-7 開發通用分頁的資料模組
6-8 開發通用列表頁面-1
6-9 開發通用列表頁面-2
6-10 完成倉庫列表頁
6-11 為列表新增 Tab
6-12 根據登入狀態更新 Tab 及列表
6-13 解決 ViewPager 資料重新整理的問題
6-14 本章小結

第7章 倉庫詳情頁面的開發
本章中實現了 GitHub App 的晝夜模式切換,開發了支援頭像與 ActionBar 聯動的 Behavior,處理了對 5.0 以下的版本的相容性問題,分別完成了仿 QQ 和 微信的聊天頁面右滑返回上一頁的效果,除此之外,還運用屬性代理開發了 ObjectPropertyDelegate 這個框架優化程式碼。...
7-1 本章概述
7-2 主題配色方案
7-3 實現夜間模式
7-4 開發通用 DetailItem
7-5 開發倉庫詳情頁面
7-6 Behavior: 頭像與 ActionBar 聯動
7-7 Android 4.4 相容性問題解決
7-8 實現仿 QQ 右滑返回
7-9 實現仿微信右滑返回
7-10 小結

第8章 Retrofit 的原理及 RetroApollo 的實現
GraphQL Api 相比 RESTFul Api 有更靈活更穩健的特點,本章主要涉及認識和使用 GraphQL 來請求 GitHub Api。在深入剖析 Retrofit 的原理之後,參考 Retrofit 開發 RetroApollo 框架來簡化請求操作,這其中涉及到了對註解、泛型和反射知識的靈活運用。...
8-1 GraphQL 簡介
8-2 GraphQL 初體驗
8-3 接入 GraphQL 框架 Apollo-Android
8-4 接入 RetroApollo-Android 框架
8-5 RetroApollo 動態代理處理請求
8-6 RetroApollo 解析註解和泛型返回值
8-7 RetroApollo 返回型別適配
8-8 RetroApollo 適配 RxJava
8-9 本章小結

第9章 使用協程重構我們的程式碼
本章主要闡述協程的概念,分析 suspend 函式的原理,用例項講解了官方協程框架的使用方法,開發一個 Golang 風格的 Deferred 擴充套件,實現一個協程風格的對話方塊擴充套件,最後從零開始使用標準庫的協程 Api 來帶著大家開發一個高仿官方協程框架的簡化版本,完成包括啟動協程、執行緒排程、協程等待等功能,讓學員真正瞭解 ...
9-1 協程的基本概念
9-2 協程框架的使用-1
9-3 協程框架的使用-2
9-4 協程框架的使用-3
9-5 Android 的第一行協程程式碼
9-6 協程風格的對話方塊實現
9-7 為 RetroApollo 新增協程支援
9-8 實現自己的協程框架 - 協程的基本實現
9-9 實現自己的協程框架 - 執行緒排程
9-10 實現自己的協程框架- Delay
9-11 實現自己的協程框架- runBlocking
9-12 實現自己的協程框架- Deferred
9-13 本章小結

第10章 課程總結
本章將帶大家一起回顧和總結本次進階課程所學到的內容重點,難點等。
10-1 課程總結

下載地址:百度網盤下載