iOS質量保障工具集

每個App自開發到上線需要經歷多個階段,每個階段都要把握質量。作為iOS開發者除了從程式碼規範入手,我們也要從其他多方面提升質量。本文就介紹幾款可以提升iOS質量開發的工具。

git-flow

由於git管理程式碼版本的靈活性有時會導致版本衝突、程式碼混亂等問題。為了更好的管理程式碼,大部分公司都推崇git flow的工作流程,git-flow就是為了實現這套流程的一系列git擴充套件命令。

iOS質量保障工具集

git-flow 並不是要替代git,也沒有為git擴充套件任何新功能,它僅僅是非常聰明有效地把標準的git命令用指令碼組合了起來。我曾經在github上開源過一些庫以及原始碼,發現在編寫新功能程式碼時,建立feature分支是非常明智且有高回報的一種操作,一旦你習慣於區分master、develop、feature等分支後,會讓你的生產力大大提高。另外,Source tree等視覺化版本管理工具對git flow也支援得很好。

MLeaksFinder

Xcode自帶的Instrument 的 Leaks / Allocations 存在各種問題和不便,主要體現在:

對App的記憶體洩露監控不完全。由蘋果開發者文件我們知道,App的記憶體分三類:Leaked memory、Abandoned memory、Cached memory。其中 Leaked memory 和 Abandoned memory 都屬於應該釋放而沒釋放的記憶體,都是記憶體洩露,而 Leaks 工具只負責檢測 Leaked memory,而不管 Abandoned memory。在 MRC 時代 Leaked memory 很常見,因為很容易忘了呼叫 release,但在 ARC 時代更常見的記憶體洩露是迴圈引用導致的 Abandoned memory,Leaks 工具查不出這類記憶體洩露,應用有限。

監測記憶體便攜性不高。首先,你得開啟 Leaks/Allocations;其次,你得一個個場景去重複的操作。

監測實時性不強。

騰訊推出的MLeaksFinder很好的解決了上述問題。對於記憶體沒有釋放的情況,MLeaksFinder會及時的彈框加以提醒。

彈框提醒記憶體洩露

iOS質量保障工具集

筆者:如果大家在專案中使用ReactiveCocoa,那這款工具肯定是必不可少的。

FLEX

以前Xcode不能檢視App的UI層級結構,大家都是用Reveal工具進行檢視,但現在Xcode對這個功能的支援也並不是特別完善,偶爾會引起Xcode的崩潰。

iOS質量保障工具集

FLEX是由Flipboard團隊開發的一款應用內Debug工具,可以很方便的檢視和調整UI的層級關係。另外其整合的HTTPStub還可以監控App的網路請求,是一款非常強大的工具。

Faux Pas

iOS質量保障工具集

Faux Pas是一個Xcode輔助工具,檢查iOS或者Mac專案,找到潛在bug,以及可維護性和風格問題。提供了92條規則可供挑選,支援GUI和CLI。筆者覺得比較好用的功能有

查詢資原始檔錯誤

專案大了以後Nib檔案經常會新增刪除圖片,並且很難追蹤檔案是否在程式碼或Nib檔案中引用。Faux Pas能幫我們找到任何一個資原始檔引用問題。

程式碼風格的管理

團隊來新人後對程式碼風格的管理會變得有一定難度,使用Faux Pas會給出蘋果文件給出的編碼風格。

Faux Pas的強大之處在於它在列舉的潛在Bug還附帶了正確編寫建議,點選問題可以迅速定位到出現問題的程式碼的檔案以及行數,非常適合作為App將要提交稽核前的最後一次程式碼檢查。

總結

本文介紹了一些提升App質量的工具,貫穿於編碼前中後期等階段,希望對iOS開發人員有一定幫助。

參考