那些好用的iOS開發工具
Jun 29th, 2014
版權說明
本文首發于《程式員》雜志2014年6月刊,未經允許,請勿轉載。
前言
從蘋果發明iPhone起,AppStore上的一個又一個類似flappy bird的一夜暴富的故事刺激着大量開發者加入移動開發大軍。随着這些開發者出現的,還有大量友善iOS開發者的各種工具。這些工具作為整個應用開發生态鍊的重要一環,極大地友善了廣大應用開發者,節省了應用開發的時間。
本文将從應用工具、指令行工具、插件工具3個方面,介紹這些優秀的應用。
圖形應用工具
Charles
Charles(http://www.charlesproxy.com)是在Mac下常用的截取網絡封包的工具,在做iOS開發時,我們為了調試與伺服器端的網絡通訊協定,常常需要截取網絡封包來分析。Charles通過将自己設定成系統的網絡通路代理伺服器,使得所有的網絡通路請求都通過它來完成,進而實作了網絡封包的截取和分析。
Charles詳細的使用說明,歡迎閱讀我的文章:《iOS開發工具-網絡封包分析工具Charles》
界面調試
PonyDebugger(https://github.com/square/PonyDebugger)、Reveal(http://revealapp.com/)、Spark Inspector(http://sparkinspector.com/)是三個常用的界面調試工具,可以在程式運作時動态調試iOS應用界面。PonyDebugger是免費并且開源的,後兩者是收費的,不過功能更加強大。
對于動态或複雜的互動界面,手寫UI的是不可避免的,而Reveal一類的工具可以友善我們檢視控件的相應屬性是否正常,并且可以在程式運作時,動态地修改界面元素。這樣就不用反複地修改代碼并且重新開機程式了。
xScope
xScope(http://xscopeapp.com/)是一類與界面開發相關的工具集。對于iOS開發,比較好用的功能包括它的放大鏡取色工具、标尺工具等。其中放大鏡取色工具可以将取到的多個色集收集起來,友善後續使用,并且支援直接粘貼成相關的程式顔色代碼。
xScope是收費軟體,對于未付費版本,其功能有一些限制。
ImageOptim
ImageOptim(http://imageoptim.com/)是一個圖象壓縮的免費工具。iOS工程預設使用的是 pngcrush 指令來壓縮圖檔,不過其壓縮比率其實不高。對于應用中圖檔資源比較多的讀者,可以嘗試使用 ImageOptim 來達到最大的圖檔壓縮效果。
如果你從未嘗試過ImageOptim一類的圖檔壓縮工具,那麼第一次給IPA檔案瘦身的效果應該是比較驚人的。我個人的經驗是,初次使用時ImageOptim能減少至少10%的應用圖檔資源占用。
ImageOptim的實作原理是使用各種開源的圖像壓縮工具,然後取效果最好的那一個。它嘗試的工具包括:PNGOUT, Zopfli, Pngcrush, AdvPNG, extended OptiPNG, JpegOptim, jpegrescan, jpegtran 和 Gifsicle。
安裝方式是從其官方網站(http://imageoptim.com/)上下載下傳程式檔案,拖動到“應用程式”目錄即可。下圖是本篇文章所有的配圖,可以看到使用ImageOptim達到了29.5%的體積縮小。
馬克鳗
馬克鳗(http://www.getmarkman.com/)是國人開發的一款免費标注工具,可以友善地在美術輸出的設計稿上标注相應界面元素的大小,顔色,邊距,說明等。
指令行工具
CocoaPods
每種語言發展到一個階段,就會出現相應的依賴管理工具或者是中央代碼倉庫。比如Java的maven,Nodejs的npm等。而CocoaPods(http://cocoapods.org/)是為iOS程式提供依賴管理的工具。開發iOS項目不可避免地要使用第三方開源庫,CocoaPods的出現使得我們可以節省設定和更新第三方開源庫的時間。
在我開發猿題庫用戶端時,其使用了24個第三方開源庫。在沒有使用CocoaPods以前,我需要:
- 把這些第三方開源庫的源代碼檔案複制到項目中,或者設定成git的submodule。
- 對于這些開源庫通常需要依賴系統的一些framework,我需要手工地将這些framework一一增加到項目依賴中,比如通常情況下,一個網絡庫就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics, zlib。
- 對于某些開源庫,我還需要設定
或者-licucore
等編譯參數-fno-objc-arc
- 管理這些依賴包的更新。
這些體力活雖然簡單,但毫無技術含量并且浪費時間。在使用CocoaPods之後,我隻需要将用到的第三方開源庫放到一個名為Podfile的檔案中,然後執行
pod install
。CocoaPods就會自動将這些第三方開源庫的源碼下載下傳下來,并且為我的工程設定好相應的系統依賴和編譯參數。
使用CocoaPods還需要注意以下幾點:
- 需要使用CocoaPods生成的 .xcworkspace 檔案來打開工程,而不是以前的 .xcodeproj 檔案。
- 每次更改了Podfile檔案,你需要重新執行一次
指令。pod update
- 當你執行
之後,除了Podfile外,CocoaPods還會生成一個名為pod install
的檔案,你應該把這個檔案加入到版本管理中。因為Podfile.lock會鎖定目前各依賴庫的版本,之後如果多次執行Podfile.lock
不會更改版本,要pod install
才會改pod update
了。這樣的好處是:當多人協作的時候,可以保證所有人的第三庫環境是完全一樣的。Podfile.lock
詳細的使用說明,歡迎閱讀我的文章:《用CocoaPods做iOS程式的依賴管理》
nomad
nomad(http://nomad-cli.com/)是一個友善你操作蘋果開發者中心(Apple Developer Center)的指令行工具,可以做的事情包括友善地添加測試裝置,更新證書檔案,增加App id,驗證IAP的憑證等。
安裝方式:
| |
安裝完後,首先執行
ios login
,你的Developer賬号密碼會被它存儲到Keychain中,之後就可以用指令行來完成各種背景操作了,例如:
添加測試裝置:
| |
更新證書檔案:
| |
nomad還有很多功能,建議大家閱讀其官方網站的文檔進一步學習。
xctool
xctool(https://github.com/facebook/xctool)是facebook開源的一個iOS編譯和測試的工具。使用它而不是用Xcode的UI界面是因為它是一個純指令行工具。比如:我們可以使用xctool在指令生下進行編譯和單元測試,然後将測試結果內建到Jenkins中,這樣就實作了自動化的持續內建。雖然蘋果也在OSX Server上推出了自己的自動化內建工具BOT,但其配置和使用上現在仍然不太友善。
安裝xctool可以使用brew指令:
| |
使用xctool編譯項目可以使用如下指令:
| |
使用xctool執行單元測試,可以使用如下指令:
| |
xctool還有很多功能,建議大家閱讀xctool官方網站的文檔進一步了解更多的功能。
appledoc
appledoc(https://github.com/tomaz/appledoc)是一個從源碼中抽取文檔的工具。
對于開發者來說,文檔最好和源碼在一起,這樣更新起來更加友善和順手。象Java一類的語言本身就自帶javadoc指令,可以從源碼中抽取文檔。而appledoc就是一個類似javadoc的指令行程式,可以從iOS工程的源代碼中抽取相應的注釋,生成幫助文檔。
相對于其它的文檔生成工具,appledoc的優點是:
- 它預設生成的文檔風格和蘋果的官方文檔是一緻的。
- appledoc就是用objective-c寫的,必要的時候調試和改動也比較友善。
- 它可以生成docset,并且內建到xcode中。內建之後,在相應的API調用處,按住option再單擊就可以調出相關的幫助文檔。
- 它沒有特殊的注釋要求,相容性高。
安裝appledoc可以直接使用brew指令:
| |
使用時切換到iOS工程目錄下,執行以下操作即可,appledoc會掃描目前路徑下的所有檔案,然後生成好文檔放到doc目錄下。你也可以用appledoc —help檢視所有可用的參數。
| |
詳細的使用介紹,歡迎閱讀我的文章:《使用Objective-C的文檔生成工具:appledoc》
Xcode插件
Xcode是iOS的內建開發環境,雖然蘋果一直在不斷改進Xcode,但程式員總是有各種新奇的想法和需求,當Xcode無法滿足他們時,于是他們就會通過插件的方式來為Xcode增加新的功能。本節将會給大家介紹一些常用的Xcode增強插件。
Xcode所有的插件都安裝在目錄
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/
下,每個插件為一個子目錄,你也可以手工切換到這個目錄來增加或删除插件。
Alcatraz
Alcatraz(http://alcatraz.io/)是管理Xcode所有插件的插件,它可以直接內建到Xcode的圖形界面中,讓你感覺就像在使用Xcode自帶的功能一樣。Alcatraz不但可以管理Xcode的插件,它另外還提供了管理Xcode工程模版以及顔色配置的功能。
使用如下的指令行來安裝Alcatraz:
| |
安裝成功後重新開機Xcode,就可以在Xcode的頂部菜單中的”Window”–>“Package Manager”中找到Alcatraz。點選“Package Manager”,即可啟動插件清單頁面。你可以在右上角搜尋插件,對于想安裝的插件,點選其左邊的圖示,即可下載下傳安裝,如下所示,我正在安裝KImageNamed插件:
安裝完成後,再次點選插件左邊的圖示,可以将該插件删除。
以下所有介紹的插件均可用該方法來安裝或删掉,就不另行介紹了。
Alcatraz詳細的使用介紹,歡迎閱讀我的文章:《使用Alcatraz來管理Xcode插件》
KSImageNamed
KSImageNamed(https://github.com/ksuther/KSImageNamed-Xcode)是一個幫助你輸入[UIImage imageNamed:]中的資源名的插件。當你輸入
[UIImage imageNamed:]
時,會自動的彈出上下文菜單,供你選擇你需要輸入的圖檔資源名字,另外在選擇圖檔資源時,還可以在左側預覽該資源。如下圖所示:
XVim
XVim(https://github.com/JugglerShu/XVim)是一個Xcode的vim插件,可以在Xcode的編輯視窗中開啟vim模式。
vim模式最大的好處是可以全鍵盤操作,可以友善地移動光标以及複制、粘貼代碼。XVim對于Xcode的分欄模式也有很好的支援,與vim自帶的分欄模式一樣,可以用快捷鍵
ctrl + w
來切換目前編輯的分欄。
FuzzyAutocompletePlugin
FuzzyAutocompletePlugin (https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin) 允許使用模糊的方式來進行代碼自動補全。
舉個例子,如果我們要重載
viewDidAppear:
方法,那麼我們必須依次建入view、did、appear 才能得到相應的補全資訊,使用FuzzyAutocompletePlugin之後,我們可以建入vda (view、did、appear 三個單詞的首字母),或任意符合viewDidAppear整個單詞出現順序的子串(例如 vdapp, adear等),即可比對到該方法。
XToDo
XToDo(https://github.com/trawor/XToDo)是一個查找項目中所有的帶有
TODO
,
FIXME
,
???
,
!!!
标記的注釋。
通常我們在項目開發中,由于種種原因,一些事情需要以後處理,這個時候為了防止遺忘,加上
TODO
或
FIXME
注釋是非常有必要的,但是上線或送出代碼前要尋找這些未解決的事項卻稍顯麻煩。XToDo可以提供一個彙總的界面,集中顯示所有的未完成的
TODO
和
FIXME
标記。
BBUDebuggerTuckAway
BBUDebuggerTuckAway(https://github.com/neonichu/BBUDebuggerTuckAway)是一個非常小的工具,可以在你編輯代碼的時候自動隐藏底部的調試視窗。因為通常情況下,調試的時候是加斷點或監控變量變化,或者在Console視窗用
po
來輸出一些調試資訊。如果開始編輯代碼了,說明已經調試結束了,這個時候隐藏調試視窗,可以給編輯界面更多空間,友善我們修改代碼。
SCXcodeSwitchExpander
SCXcodeSwitchExpander(https://github.com/stefanceriu/SCXcodeSwitchExpander)幫助你迅速地在
switch
語句中填充枚舉類型的每種可能的取值。
例如,當你輸入
switch
,然後鍵入一個
NSTableViewAnimationOptions
類時,該插件會将其可能的取值補全在每一個
case
之後,如下圖所示:
deriveddata-exterminator
deriveddata-exterminator(https://github.com/kattrali/deriveddata-exterminator)是一個清除Xcode緩存目錄的插件。
有些時候Xcode會出各種奇怪的問題,最常見的是在某些複雜操作下(例如同一個項目,來回切換到各種分支版本),會造成Xcode顯示一些編譯的錯誤或警告,但是最終卻又可以編譯通過。新手遇到這種問題常常束手無策,而熟悉Xcode的人就知道,通常清除Xcode緩存就可以解決這類問題。該插件在Xcode菜單上增加了一個清除緩存按鈕,可以一鍵友善地清楚緩存内容。
VVDocumenter
VVDocumenter(https://github.com/onevcat/VVDocumenter-Xcode)是一個自動生成代碼注釋的工具,可以友善地将函數的參數名和傳回值提取出來,這樣結合上一節介紹的
appledoc
指令,就可以友善地将幫助文檔輸出。
ClangFormat
ClangFormat(https://github.com/travisjeffery/ClangFormat-Xcode)是一個自動調整代碼風格(Code Style)的工具。Xcode本身的代碼縮進自動調整功能比較弱,特别是對于JSON格式,常常産生非常醜陋的預設縮進效果。ClangFormat-Xcode可以更好地對代碼進行重新排版,并且内置了各種排版風格,也支援自定義風格。
ColorSense
ColorSense(https://github.com/omz/ColorSense-for-Xcode)是一個
UIColor
顔色輸入輔助工具,可以幫助你在編寫
UIColor
代碼時,實時預覽相應的顔色,如下圖所示:
XcodeBoost
XcodeBoost(https://github.com/fortinmike/XcodeBoost)包含多個輔助修改代碼的小功能,比如:
- 可以在.m檔案中複制方法實作,然後将該方法的定義粘貼到對應的.h檔案中
- 可以在某一個源檔案中直接輸入正規表達式查找
- 可以複制粘貼代碼時不啟用Xcode的自動縮進功能(Xcode的自動縮進經常出問題,造成已經調整好的代碼縮進,因為粘貼時被Xcode調整壞了)
圖形應用工具
Charles
Charles(http://www.charlesproxy.com)是在Mac下常用的截取網絡封包的工具,在做iOS開發時,我們為了調試與伺服器端的網絡通訊協定,常常需要截取網絡封包來分析。Charles通過将自己設定成系統的網絡通路代理伺服器,使得所有的網絡通路請求都通過它來完成,進而實作了網絡封包的截取和分析。
Charles詳細的使用說明,歡迎閱讀我的文章:《iOS開發工具-網絡封包分析工具Charles》
界面調試
PonyDebugger(https://github.com/square/PonyDebugger)、Reveal(http://revealapp.com/)、Spark Inspector(http://sparkinspector.com/)是三個常用的界面調試工具,可以在程式運作時動态調試iOS應用界面。PonyDebugger是免費并且開源的,後兩者是收費的,不過功能更加強大。
對于動态或複雜的互動界面,手寫UI的是不可避免的,而Reveal一類的工具可以友善我們檢視控件的相應屬性是否正常,并且可以在程式運作時,動态地修改界面元素。這樣就不用反複地修改代碼并且重新開機程式了。
xScope
xScope(http://xscopeapp.com/)是一類與界面開發相關的工具集。對于iOS開發,比較好用的功能包括它的放大鏡取色工具、标尺工具等。其中放大鏡取色工具可以将取到的多個色集收集起來,友善後續使用,并且支援直接粘貼成相關的程式顔色代碼。
xScope是收費軟體,對于未付費版本,其功能有一些限制。
ImageOptim
ImageOptim(http://imageoptim.com/)是一個圖象壓縮的免費工具。iOS工程預設使用的是 pngcrush 指令來壓縮圖檔,不過其壓縮比率其實不高。對于應用中圖檔資源比較多的讀者,可以嘗試使用 ImageOptim 來達到最大的圖檔壓縮效果。
如果你從未嘗試過ImageOptim一類的圖檔壓縮工具,那麼第一次給IPA檔案瘦身的效果應該是比較驚人的。我個人的經驗是,初次使用時ImageOptim能減少至少10%的應用圖檔資源占用。
ImageOptim的實作原理是使用各種開源的圖像壓縮工具,然後取效果最好的那一個。它嘗試的工具包括:PNGOUT, Zopfli, Pngcrush, AdvPNG, extended OptiPNG, JpegOptim, jpegrescan, jpegtran 和 Gifsicle。
安裝方式是從其官方網站(http://imageoptim.com/)上下載下傳程式檔案,拖動到“應用程式”目錄即可。下圖是本篇文章所有的配圖,可以看到使用ImageOptim達到了29.5%的體積縮小。
馬克鳗
馬克鳗(http://www.getmarkman.com/)是國人開發的一款免費标注工具,可以友善地在美術輸出的設計稿上标注相應界面元素的大小,顔色,邊距,說明等。
指令行工具
CocoaPods
每種語言發展到一個階段,就會出現相應的依賴管理工具或者是中央代碼倉庫。比如Java的maven,Nodejs的npm等。而CocoaPods(http://cocoapods.org/)是為iOS程式提供依賴管理的工具。開發iOS項目不可避免地要使用第三方開源庫,CocoaPods的出現使得我們可以節省設定和更新第三方開源庫的時間。
在我開發猿題庫用戶端時,其使用了24個第三方開源庫。在沒有使用CocoaPods以前,我需要:
- 把這些第三方開源庫的源代碼檔案複制到項目中,或者設定成git的submodule。
- 對于這些開源庫通常需要依賴系統的一些framework,我需要手工地将這些framework一一增加到項目依賴中,比如通常情況下,一個網絡庫就需要增加以下framework: CFNetwork, SystemConfiguration, MobileCoreServices, CoreGraphics, zlib。
- 對于某些開源庫,我還需要設定
或者-licucore
等編譯參數-fno-objc-arc
- 管理這些依賴包的更新。
這些體力活雖然簡單,但毫無技術含量并且浪費時間。在使用CocoaPods之後,我隻需要将用到的第三方開源庫放到一個名為Podfile的檔案中,然後執行
pod install
。CocoaPods就會自動将這些第三方開源庫的源碼下載下傳下來,并且為我的工程設定好相應的系統依賴和編譯參數。
使用CocoaPods還需要注意以下幾點:
- 需要使用CocoaPods生成的 .xcworkspace 檔案來打開工程,而不是以前的 .xcodeproj 檔案。
- 每次更改了Podfile檔案,你需要重新執行一次
指令。pod update
- 當你執行
之後,除了Podfile外,CocoaPods還會生成一個名為pod install
的檔案,你應該把這個檔案加入到版本管理中。因為Podfile.lock會鎖定目前各依賴庫的版本,之後如果多次執行Podfile.lock
不會更改版本,要pod install
才會改pod update
了。這樣的好處是:當多人協作的時候,可以保證所有人的第三庫環境是完全一樣的。Podfile.lock
詳細的使用說明,歡迎閱讀我的文章:《用CocoaPods做iOS程式的依賴管理》
nomad
nomad(http://nomad-cli.com/)是一個友善你操作蘋果開發者中心(Apple Developer Center)的指令行工具,可以做的事情包括友善地添加測試裝置,更新證書檔案,增加App id,驗證IAP的憑證等。
安裝方式:
安裝完後,首先執行
ios login
,你的Developer賬号密碼會被它存儲到Keychain中,之後就可以用指令行來完成各種背景操作了,例如:
添加測試裝置:
更新證書檔案:
nomad還有很多功能,建議大家閱讀其官方網站的文檔進一步學習。
xctool
xctool(https://github.com/facebook/xctool)是facebook開源的一個iOS編譯和測試的工具。使用它而不是用Xcode的UI界面是因為它是一個純指令行工具。比如:我們可以使用xctool在指令生下進行編譯和單元測試,然後将測試結果內建到Jenkins中,這樣就實作了自動化的持續內建。雖然蘋果也在OSX Server上推出了自己的自動化內建工具BOT,但其配置和使用上現在仍然不太友善。
安裝xctool可以使用brew指令:
使用xctool編譯項目可以使用如下指令:
| |
使用xctool執行單元測試,可以使用如下指令:
| |
xctool還有很多功能,建議大家閱讀xctool官方網站的文檔進一步了解更多的功能。
appledoc
appledoc(https://github.com/tomaz/appledoc)是一個從源碼中抽取文檔的工具。
對于開發者來說,文檔最好和源碼在一起,這樣更新起來更加友善和順手。象Java一類的語言本身就自帶javadoc指令,可以從源碼中抽取文檔。而appledoc就是一個類似javadoc的指令行程式,可以從iOS工程的源代碼中抽取相應的注釋,生成幫助文檔。
相對于其它的文檔生成工具,appledoc的優點是:
- 它預設生成的文檔風格和蘋果的官方文檔是一緻的。
- appledoc就是用objective-c寫的,必要的時候調試和改動也比較友善。
- 它可以生成docset,并且內建到xcode中。內建之後,在相應的API調用處,按住option再單擊就可以調出相關的幫助文檔。
- 它沒有特殊的注釋要求,相容性高。
安裝appledoc可以直接使用brew指令:
使用時切換到iOS工程目錄下,執行以下操作即可,appledoc會掃描目前路徑下的所有檔案,然後生成好文檔放到doc目錄下。你也可以用appledoc —help檢視所有可用的參數。
| |
詳細的使用介紹,歡迎閱讀我的文章:《使用Objective-C的文檔生成工具:appledoc》
Xcode插件
Xcode是iOS的內建開發環境,雖然蘋果一直在不斷改進Xcode,但程式員總是有各種新奇的想法和需求,當Xcode無法滿足他們時,于是他們就會通過插件的方式來為Xcode增加新的功能。本節将會給大家介紹一些常用的Xcode增強插件。
Xcode所有的插件都安裝在目錄
~/Library/Application Support/Developer/Shared/Xcode/Plug-ins/
下,每個插件為一個子目錄,你也可以手工切換到這個目錄來增加或删除插件。
Alcatraz
Alcatraz(http://alcatraz.io/)是管理Xcode所有插件的插件,它可以直接內建到Xcode的圖形界面中,讓你感覺就像在使用Xcode自帶的功能一樣。Alcatraz不但可以管理Xcode的插件,它另外還提供了管理Xcode工程模版以及顔色配置的功能。
使用如下的指令行來安裝Alcatraz:
| |
安裝成功後重新開機Xcode,就可以在Xcode的頂部菜單中的”Window”–>“Package Manager”中找到Alcatraz。點選“Package Manager”,即可啟動插件清單頁面。你可以在右上角搜尋插件,對于想安裝的插件,點選其左邊的圖示,即可下載下傳安裝,如下所示,我正在安裝KImageNamed插件:
安裝完成後,再次點選插件左邊的圖示,可以将該插件删除。
以下所有介紹的插件均可用該方法來安裝或删掉,就不另行介紹了。
Alcatraz詳細的使用介紹,歡迎閱讀我的文章:《使用Alcatraz來管理Xcode插件》
KSImageNamed
KSImageNamed(https://github.com/ksuther/KSImageNamed-Xcode)是一個幫助你輸入[UIImage imageNamed:]中的資源名的插件。當你輸入
[UIImage imageNamed:]
時,會自動的彈出上下文菜單,供你選擇你需要輸入的圖檔資源名字,另外在選擇圖檔資源時,還可以在左側預覽該資源。如下圖所示:
XVim
XVim(https://github.com/JugglerShu/XVim)是一個Xcode的vim插件,可以在Xcode的編輯視窗中開啟vim模式。
vim模式最大的好處是可以全鍵盤操作,可以友善地移動光标以及複制、粘貼代碼。XVim對于Xcode的分欄模式也有很好的支援,與vim自帶的分欄模式一樣,可以用快捷鍵
ctrl + w
來切換目前編輯的分欄。
FuzzyAutocompletePlugin
FuzzyAutocompletePlugin (https://github.com/FuzzyAutocomplete/FuzzyAutocompletePlugin) 允許使用模糊的方式來進行代碼自動補全。
舉個例子,如果我們要重載
viewDidAppear:
方法,那麼我們必須依次建入view、did、appear 才能得到相應的補全資訊,使用FuzzyAutocompletePlugin之後,我們可以建入vda (view、did、appear 三個單詞的首字母),或任意符合viewDidAppear整個單詞出現順序的子串(例如 vdapp, adear等),即可比對到該方法。
XToDo
XToDo(https://github.com/trawor/XToDo)是一個查找項目中所有的帶有
TODO
,
FIXME
,
???
,
!!!
标記的注釋。
通常我們在項目開發中,由于種種原因,一些事情需要以後處理,這個時候為了防止遺忘,加上
TODO
或
FIXME
注釋是非常有必要的,但是上線或送出代碼前要尋找這些未解決的事項卻稍顯麻煩。XToDo可以提供一個彙總的界面,集中顯示所有的未完成的
TODO
和
FIXME
标記。
BBUDebuggerTuckAway
BBUDebuggerTuckAway(https://github.com/neonichu/BBUDebuggerTuckAway)是一個非常小的工具,可以在你編輯代碼的時候自動隐藏底部的調試視窗。因為通常情況下,調試的時候是加斷點或監控變量變化,或者在Console視窗用
po
來輸出一些調試資訊。如果開始編輯代碼了,說明已經調試結束了,這個時候隐藏調試視窗,可以給編輯界面更多空間,友善我們修改代碼。
SCXcodeSwitchExpander
SCXcodeSwitchExpander(https://github.com/stefanceriu/SCXcodeSwitchExpander)幫助你迅速地在
switch
語句中填充枚舉類型的每種可能的取值。
例如,當你輸入
switch
,然後鍵入一個
NSTableViewAnimationOptions
類時,該插件會将其可能的取值補全在每一個
case
之後,如下圖所示:
deriveddata-exterminator
deriveddata-exterminator(https://github.com/kattrali/deriveddata-exterminator)是一個清除Xcode緩存目錄的插件。
有些時候Xcode會出各種奇怪的問題,最常見的是在某些複雜操作下(例如同一個項目,來回切換到各種分支版本),會造成Xcode顯示一些編譯的錯誤或警告,但是最終卻又可以編譯通過。新手遇到這種問題常常束手無策,而熟悉Xcode的人就知道,通常清除Xcode緩存就可以解決這類問題。該插件在Xcode菜單上增加了一個清除緩存按鈕,可以一鍵友善地清楚緩存内容。
VVDocumenter
VVDocumenter(https://github.com/onevcat/VVDocumenter-Xcode)是一個自動生成代碼注釋的工具,可以友善地将函數的參數名和傳回值提取出來,這樣結合上一節介紹的
appledoc
指令,就可以友善地将幫助文檔輸出。
ClangFormat
ClangFormat(https://github.com/travisjeffery/ClangFormat-Xcode)是一個自動調整代碼風格(Code Style)的工具。Xcode本身的代碼縮進自動調整功能比較弱,特别是對于JSON格式,常常産生非常醜陋的預設縮進效果。ClangFormat-Xcode可以更好地對代碼進行重新排版,并且内置了各種排版風格,也支援自定義風格。
ColorSense
ColorSense(https://github.com/omz/ColorSense-for-Xcode)是一個
UIColor
顔色輸入輔助工具,可以幫助你在編寫
UIColor
代碼時,實時預覽相應的顔色,如下圖所示:
XcodeBoost
XcodeBoost(https://github.com/fortinmike/XcodeBoost)包含多個輔助修改代碼的小功能,比如:
- 可以在.m檔案中複制方法實作,然後将該方法的定義粘貼到對應的.h檔案中
- 可以在某一個源檔案中直接輸入正規表達式查找
- 可以複制粘貼代碼時不啟用Xcode的自動縮進功能(Xcode的自動縮進經常出問題,造成已經調整好的代碼縮進,因為粘貼時被Xcode調整壞了)