一. 硬件信息的獲取
- 應用場景
例如
QQ空間APP 發說說時, 出現的什么什么型號的手機;
迅雷APP 下載文件時提示剩余空間,已用空間
- 實現方案
直接通過第三方工具類(UIDevice的分類), 進行獲取對應信息
原因: 自己寫起來比較復雜, 很多C語言的東西, 而且沒有必要;
- 框架完善
框架存在問題: 該第三方框架從2012年就停止更新了,意味著12年之后的手機型號都沒有, 需要手動添加, 修改框架
解決方案: 找到對應的實現方法, 使用真機進行測試, 手動新增手機型號
二. 換膚
- 換膚的應用場景?
一般應用在某些APP , 在節假日更換主題, 或者切換白天或者夜間模式時使用.
換膚的實現方案
方案1
將圖片以及顏色按照主題命名,使用虛擬文件夾, 直接在各個控制器針對不同主題單獨設置
缺點:
擴展性差, 增加一個主題非常復雜
代碼分散, 可維護性差
使用虛擬文件夾保存資源, 容易與其他資源容易產生沖突
方案2
抽取公共的切換主題類, 使用物理文件夾, 并將圖片按照應用場景命名, 不按照主題命名, 但是按照主題劃分文件夾
優點:
擴展性好, 增加主題簡單
功能代碼集中,
方便維護資源包單獨管理,
不會產生資源沖突
演練步驟
實現基本的換膚功能
使用用戶偏好記錄當前皮膚主題
抽取公共的皮膚管理類, 簡化控制器邏輯
驗證多處加載主題情景
加載主題文字顏色功能實現