高仿京東Android App,整合React-Native熱更功能

xiangzhihong發表於2022-07-16

簡介

本專案是一個學習型別的專案,主要是為了學習一些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

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網路
mavericksMVI框架
BaseRecyclerViewAdapterHelper萬能介面卡
PhotoView圖片預覽
ARouter元件化路由
coil圖片載入
XPopup彈窗元件
banner滾動圖
SmartRefreshLayout智慧下拉重新整理框架
gsonjson解析
leakcanary記憶體洩漏檢測庫

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

相關文章