iOS app調試的黑魔法--第三方庫

蘋果的Xcode是一個非常強大的開發和調試工具,而iOS 8更是爲它帶來了全新的動力驅動,比如Instruments、iOS模擬器以及Playground等。

不過有時候仍然會覺得我們的Xcode似乎還是欠缺某些功能和特性,不能滿足開發者的某項需求,正是在這種背景下,很多開發者採用了自己的解決方案。以下列舉的是可以集成到現有項目中,並且可以有效幫助調試和開發的工具。

FLEX

FLEX是Flipboard開源的一款調試工具,你可以用FLEX來檢查UI元素和調整框架等。FLEX在應用程序中的作用有點類似於Reveal App。Reveal通過2D和3D可視化技術可以讓你查看app運行時的視圖層次,也可以讓你快速Debug視圖佈局問題和渲染問題。

關於FLEX的具體用法請參看:Flipboard開源應用內調試工具FLEX  以及團隊成員Evan Doll關於 Flipboard團隊使用的iOS開發工具 的視頻演講  

關於Reveal App的詳細說明請參看:Reveal通過視圖層次幫你理解複雜的app 並提供相關Debug功能  

OHHTTPStubs  

在你的服務器沒有準備妥當或者在你需要模擬數據進行本地開發時,OHHTTPStubs是一個很好的可以加速測試和開發的工具。OHHTTPStubs可使用僞造的網絡數據和模擬的緩慢網絡來測試你的應用程序,從而檢測你的應用程序在不佳的網絡環境中的行爲,並使用僞造的網絡數據編寫單元測試。

NSObjectIntrospection 

NSObjectIntrospection是NSObject的一個類別,用以runtime自省,你可以通過它列出運行中的類的方法和屬性,或者通過調試控制檯。

Tweaks

Tweaks是Facebook開源的調試工具,可幫開發者實時調整參數並測試效果(編輯注:主要進行小幅調整,比如顏色和動畫),同時也是Facebook在其應用Paper中大量使用的工具。

Tweaks對設計師和開發者之間的小幅調整非常有用,設計師可以微調元素的數值並將其輸出給開發團隊以完成更改。對於該工具,你還可以看看這個講述Facebook開發團隊在構建Paper app的過程,以及在該過程中如何使用Tweaks的視頻。

MMLayershots  

MMLayershots可以把iOS app的截圖轉換爲分層的PSD文件。不管何時你截取應用截圖,它都會從整個app的視圖層次生成一個PSD文件,然後你可以在PSD編輯工具(Photoshop,Pixelmator,Acorn甚至GIMP)中使用PSD文件,並按照你喜歡的方式調整圖層,從而在視覺上進行更快速的迭代。另外,還可以使用Framer.js進行動畫和交互的快速原型,並讓UI變得鮮活起來。


CocoaLumberjack 

CocoaLumberjack是一個適合OS X和iOS的日誌框架,集快速、簡單、強大、靈活於一身。通過CocoaLumberjack,你可以爲調試控制檯添加顏色,可以提供不同級別的日誌記錄,還可以爲日誌編寫自定義格式。

CocoaLumberjack的概念類似於廣受歡迎的logging框架,比如log4j。CocoaLumberjack專爲Objective-C設計,充分利用了多線程、Grand Central Dispatch(如果可用)以及Objective-C運行時的動態特性等。

Aspects 

Aspects是Cocoa中面向方面編程的簡單開源庫,你可以通過它爲現有的類的方法或者實例添加代碼,同時考慮插入點位置,比如before/instead/after。Aspects比常規的方法混用更爲簡單。

RHObjectiveBeagle 

  1. (lldb) po beagle(@"UISwitch"
  2. <__NSCFArray 0x8f2e6c0>( 
  3. <UISwitch: 0x8f73aa0; frame = (93 226; 51 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x8f73bd0>>, 
  4. <UISwitch: 0x8e6fa50; frame = (171 226; 51 31); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x8c6a760>> 

RHObjectiveBeagle是一款Objective C調試輔助工具,它可以在運行過程中找出指定類的實例。你可以通過它列出類及其子類的所有實例,列出指定類的所有實例,找出指定類的首個實例,查找並列出指定類的所有子類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章