RxSwift 簡介
ReactiveX(簡寫: Rx) 是一個能夠幫助咱們簡化異步編程的框架。html
它拓展了觀察者模式。使你可以自由組合多個異步事件,而不須要去關心線程,同步,線程安全,併發數據以及I/O阻塞。react
RxSwift 是 Rx 的 Swift 版本。git
它嘗試將原有的一些概念移植到 iOS/macOS 平臺。github
你能夠在這裏找到跨平臺文檔 ReactiveX.io。編程
RxSwift 參考資料
RxSwift 項目實戰
動畫演示
源碼下載
RxSwift實現MVVM高仿喜馬拉雅的函數響應式編程數組
注意事項 安全
- 1.源碼下載後,執行 pod update --no-repo-update 更新第三方庫;
- 2.項目運行中,若是數據獲取失敗,通常是連接失效,須要本身從新去抓取相關的連接;
- 3.項目僅供學習參考用,若有問題,歡迎指正;
- 4.項目所使用的圖片資源均是從原 喜馬拉雅 FM 中扣出來的,圖片資源巨多,只保留了 @2 倍的圖片,依然還有兩千多張,全部致使項目源碼的體積很大。
項目計劃
目前只是花了些零散的時間作了些基礎的功能,項目中事件響應機制和邏輯部分基本是採用 RxSwift 方式來進行的,UI 組件的建立方式基本採用協議方式建立和添加,這種模式值得你們在合適的場合借鑑和採用。session
當前已完成如下部分:架構
- 1.【首頁-推薦】模塊,其餘模塊可類比;該模塊從數據抓取,數組處理和數據顯示,均採用 MVVM 模式開發,對於學習 RxSwift 進行 MVVM 開發比較有借鑑做用;
- 2.【登陸】模塊,比較形象的展示了 函數響應式編程 在進行狀態轉化方面的優點
- 3.【個人】模塊,簡易版 MVVM 模式開發,實現了比較典型的導航欄漸變和頂部圖片下拉縮放的效果,如:QQ 空間,喜馬拉雅 FM 個人頁面的效果;
將來計劃從如下兩個方面着手:併發
- 1.架構方面:目前重在學習 RxSwift 函數響應式編程,將來計劃對項目架構進行進一步調整,構建成 RxSwift + ReactorKit 的信息流架構;
- 2.功能方面:後期將加入音視頻播放的功能。
效果截圖
項目結構