架構想法
- iPad 與 iPhoe 除了 flow layout 差異外,其餘部份應盡可能reuse
- cell 除了樣式差異以外,內容完全相同,故顯示邏輯上應reuse
- iPad 在分割畫面下,若寬度不足的狀況下,應以 iPhone 樣式顯示,以達到更佳的使用者體驗
- 為了降低 Controller 與 Model 間的耦合,使用 ViewModel 作為兩者之介接
Model
- Codable,依據 data 的 json 內容直接 Mapping
- 為了保有彈性,category 採用 String 格式而非 Enum,在後續新增類別時,可直接顯示預設名稱而不需等待 app 更新
Test
- session mock 使用 local data 進行 model 相關測試
- 可對 view model 進行驗證
Third Party
- SDWebImage: 用來做列表圖片下載,有 cache 機制