在 iOS 開發中, 我們為了跟用戶一個很好的使用感受, 一般會盡可能的使 APP 的操作流程一些, 啟動起訴快一些, 這也是 iPhone 中的應用應該具有的特征. 本文也是自己在平時開發過程中記錄的一些優化記錄與心得
1. 盡可能不要阻塞主線程
我們知道, 在 iOS 中,UIKit 的操作一般都是在主線程中進行的, 所以一旦一旦主線程被阻塞了, 響應的 UI 可能就沒有辦法及時的刷新和響應事件, 這就會給使用者一種很卡頓的現象. 一般這類阻塞主線程的操作有對數據庫的操作, 對文件的讀寫, 網絡獲取數據等, 所以我們盡可能的把這類操作放到子線程中去, 當完成的時候再回到主線程刷新 UI 或者進行相關操作, 以保證主線程不被阻塞, 給用戶一個良好的體驗.
2. 巧用 instruments
instruments 是在 iOS 開發中最 APP 性能監測的一個利器, 在需要監測性能的時候應該優先考慮使用它, 而不是去自己想象這問題可能出在了哪里. 比如需要查看APP 中哪些部分最耗時的時候, 可以使用 Time Profiler 工具, 需要查看APP 內存占用情況的時候, 可以使用 Leaks 工具. 關于 instruments 的更過相關知識, 網上也有很多的資料.
3. 多使用 cache (緩存)
在開發中, 為了給用戶一個好的體驗, 一般都會使用緩存, 例如圖片數據能用 SDWebImage 這個第三方庫來進行緩存. 基本思路是當 UI 需要顯示圖片的時候,首先去內存中查看是否有緩存數據, 如果有直接拿來用, 如果沒有, 再網絡獲取數據, 并把最新的數據緩存在內存中去, 方便下次使用.
4. 懶加載 view
在使用 UITableView 的時候, 盡可能的不要在 cell 上嵌套太多的 view, 這些會影響頁面滑動的流暢度, 而且越多的 view 就會花費越多的內存. 如果有太多的 view, 影響了頁面滑動的流暢度, 那么就可以考慮使用懶加載 view, 即不要一次性創建太多的 view, 有一些 view 到用的時候才去創建, 會更好
5. 盡可能的減少 APP 剛剛啟動時的任務
在 APP 啟動的時候, 應該是盡可能快的把首頁展示給用戶, 以減少用戶的等待時間
今天寫記錄這么多, 下次繼續更新