高仿京東Android App,集成React-Native熱更功能

語言: CN / TW / HK

簡介

本項目是一個學習類型的項目,主要是為了學習一些Android最新的思路和開發思想,工程按照模塊化、組件化的開發思路進行開發,項目整體結構如下圖。

image.png

項目代碼整潔規範,結構清晰,使用Android最新的開發思想和技術,同時集成React-Native跨平台,主要是為了實驗熱更功能,涉及到的技術有如下一些: 1. 使用kotlin語言開發,項目使用模塊化開發,降低了耦合性; 2. 網絡使用 retrofit2 + okhttp3方式,進行了高度的封裝; 3. leakcanary 內存泄漏檢測 4. 基於MVI架構airbnb的Mavericks 5. 本地mock 6. alibaba ARouter 7. 集成RN熱更功能, 用户需要打開rn加載頁面,rn工程請見

體驗

image.png

部分效果如下:

image.png

image.png

image.png

MVI架構

image.png 由於沒有明確的狀態管理標準,隨着應用程序的增長或添加功能或事先沒有計劃的功能,視圖渲染和業務邏輯可能會變得有點混亂,並且這種情況經常發生在Android應用開發過程中。可能你經常遇到狀態管理導致業務邏輯和 UI 渲染的分工不明確,最終導致應用架構的混亂。而新提出的MVI架構,提倡一種單向數據流的設計思想,非常適合數據驅動型的UI展示項目。MVI的架構思想來源於前端,由於Model、View和Intent三部分組成。

  • Model:與其他MVVM中的Model不同的是,MVI的Model主要指UI狀態(State)。當前界面展示的內容無非就是UI狀態的一個快照:例如數據加載過程、控件位置等都是一種UI狀態
  • View:與其他MVX中的View一致,可能是一個Activity、Fragment或者任意UI承載單元。MVI中的View通過訂閲Intent的變化實現界面刷新(不是Activity的Intent、後面介紹)
  • Intent:此Intent不是Activity的Intent,用户的任何操作都被包裝成Intent後發送給Model進行數據請求

用到的第三方庫

| 庫 | 功能 | | ----------------------- | ---------------------- | | retrofit2 | 網絡 | | okHttp3 | 網絡 | | mavericks | MVI框架 | | BaseRecyclerViewAdapterHelper | 萬能適配器 | | PhotoView | 圖片預覽 | | ARouter | 組件化路由 | | coil | 圖片加載 | | XPopup | 彈窗組件 | | banner | 滾動圖 | | SmartRefreshLayout | 智能下拉刷新框架 | | gson | json解析 | | leakcanary | 內存泄漏檢測庫 |

附件:https://github.com/GuoguoDad/jd_mall