RxSwift 實現MVVM高仿喜馬拉雅的函數響應式編程

RxSwift 簡介

ReactiveX(簡寫: Rx) 是一個能夠幫助咱們簡化異步編程的框架。html

它拓展了觀察者模式。使你可以自由組合多個異步事件,而不須要去關心線程,同步,線程安全,併發數據以及I/O阻塞。react

RxSwiftRx 的 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.功能方面:後期將加入音視頻播放的功能。

效果截圖

高仿喜馬拉雅截圖1-1

高仿喜馬拉雅截圖1-2

項目結構

喜馬拉雅-目錄結構

喜馬拉雅-第三方庫

相關文章
相關標籤/搜索