本文由CocoaChina翻譯組成員唧唧歪歪(博客)翻譯自David McGraw的博客
原文:13 Xcode Tips That Will Help You Conquer Xcode
當(dāng)談?wù)摰絠OS開發(fā)工具時,有一個肯定是所有iOS開發(fā)者都熟悉的,那就是Xcode。Xcode是使所有令人贊嘆的iOS app成為可能的驅(qū)動力。
Xcode能幫助我們完成非常多的事情,但是這也有點(diǎn)讓人頭疼。對于新手來說,可能會覺得Xcode太過繁重了。而對那些有幾年使用經(jīng)驗的人來說,還是在不停地學(xué)習(xí)一些細(xì)節(jié)來提高生產(chǎn)力。我對新手的建議就是不要想著一下就能學(xué)完關(guān)于Xcode的所有知識。關(guān)注當(dāng)下最重要的部分,然后再根據(jù)經(jīng)驗慢慢拓展到新的知識。
在本文中,我會提到一些能幫助你提高生產(chǎn)力的內(nèi)容。這里面有些內(nèi)容可能講過就忘了,但有些應(yīng)該能解決你經(jīng)常遇到的問題。
你將會學(xué)到如何自定義Xcode來提高生產(chǎn)力
你將會學(xué)到一些功能來幫助你管理代碼
你將會學(xué)到一些提示來幫助你總體把控工程開發(fā)
Xcode Behaviors
Behaviors是一種神奇的東西,能讓Xcode根據(jù)你的操作,自動執(zhí)行一些后續(xù)操作。想象一下,你正在運(yùn)行程序,遇到了一個斷點(diǎn)或者錯誤。默認(rèn)情況下,Xcode會自動打開調(diào)試窗口、在當(dāng)前標(biāo)簽頁跳轉(zhuǎn)到出錯的代碼處,完全打亂了編輯器。現(xiàn)在我們通過設(shè)置來阻止這種情況發(fā)生。
打開Xcode 偏好設(shè)置,能看到一個叫Behaviors的選項卡。在這里我們可以定義不同種類的狀態(tài)改變時Xcode的行為,例如當(dāng)構(gòu)建開始時Xcode要做什么、當(dāng)構(gòu)建成功或失敗時Xcode又要做什么。你可以讓Xcode播放聲音、打開新的標(biāo)簽頁、顯示導(dǎo)航等等。
針對本例,我們想要改變app運(yùn)行時的Xcode的一些行為。當(dāng)app因為斷點(diǎn)或錯誤暫停時,我們想要做以下的事情:
播放聲音(Hero音效對我來說不錯,但是你可以換成其他的,包括自定義聲音)
顯示debug標(biāo)簽頁
顯示debug導(dǎo)航
調(diào)試區(qū)域同時顯示變量和控制臺
在這里我選擇打開一個新的標(biāo)簽頁,是因為不想讓Xcode改變我當(dāng)前的工作狀態(tài)。這樣我就能輕松回到之前寫代碼的位置。另外我也沒有關(guān)閉Xcode為調(diào)試打開的一些窗格,整個的體驗是集中在單獨(dú)的標(biāo)簽頁中。
你可以花些時間來探索Xcode其他的行為,根據(jù)自己的開發(fā)風(fēng)格找到最合適的。你可能覺得Xcode的某些默認(rèn)行為很煩人,或許在Behaviors中你就能把它關(guān)掉。
管理設(shè)備和模擬器
你有沒有想過,你其實(shí)可以管理Xcode中設(shè)備下拉框里的設(shè)備列表呢?
再想想讀取設(shè)備中的數(shù)據(jù)庫,從而驗證表里的數(shù)據(jù)是否都設(shè)置正確了。你是否還遇到過,Xcode的下拉框里一個模擬器都沒有了?現(xiàn)在打開Window > Devices。
在這里你能看到已連接的設(shè)備和可用的模擬器。如果你需要添加或移除模擬器,就點(diǎn)擊左下角的+按鈕(移除點(diǎn)擊—按鈕)。如果模擬器都找不到了,你可以到這來恢復(fù)它們。
最后,這里另一個有用的功能就是可以下載app的 container。
過去你可能通過訪問模擬器文件夾來獲取數(shù)據(jù),但是真機(jī)怎么辦呢?現(xiàn)在獲取保存的照片、數(shù)據(jù)庫文件等等都變得非常容易了,你可以下載一個包含有documents、libarary和temp文件夾的container,這樣就能獲取設(shè)備上的數(shù)據(jù)了。
更新app的顯示名稱
開發(fā)者們經(jīng)常遇到的一個就是,創(chuàng)建的工程顯示的名字不是自己想要的。我經(jīng)常看到有些人重新命名和重構(gòu)(refactor)整個工程,來顯示正確的名稱。如果你知道在工程的info.plist里添加一個key就能改變app顯示名稱了,那你肯定很高興。這個key就是Bundle display name。
提高可讀性 & Xcode擴(kuò)展
現(xiàn)在有很多插件都可以提高Xcode的生產(chǎn)力。一些開發(fā)者甚至創(chuàng)建了一些非常好的主題來替換Xcode默認(rèn)主題。說實(shí)話,默認(rèn)主題看起來還是挺不舒服的。那我們怎么樣才能輕松地獲取到這些插件呢?現(xiàn)在就去alcatraz.io,下載一個非常好用的Xcode包管理器吧。
下面是一些我最近用到的插件:
SCXcodeMinimap:這個插件和Sublime Text中的那個看起來像。它能夠顯示一個編輯器的縮略圖,輕松地查看、滾動代碼。
RevealPlugin:如果你使用Reveal的話,這個插件能快速啟動Reveal。
RealmPlugin:Realm的模型對象的模板文件。(譯注:Realm是一個面向移動設(shè)備的數(shù)據(jù)庫。)
VVDocumenter-Xcode:幫助你快速生成一個方法的注釋。
AdjustFontSize:當(dāng)你展示代碼時,你可能需要快速放大字體,這個插件能讓你通過command+加減號來調(diào)整字體大小。
Lin:為NSLocalizedString顯示代碼補(bǔ)全。
有一個正在開發(fā)的本地化插件Rephrase,值得關(guān)注。當(dāng)它發(fā)布之后,就有可能成為另一個節(jié)約時間的利器啊。
我目前使用的主題是Dusk,我堅信這個才是默認(rèn)主題。還有很多顏色主題,你都可以通過Alcatraz來下載。
下載文檔和舊版模擬器
當(dāng)你安裝了一個新版本的Xcode后,你可能會發(fā)現(xiàn)你沒有之前iOS系統(tǒng)的模擬器了。當(dāng)測試app時這就是個問題了。你可以在偏好設(shè)置中的下載選項卡中安裝舊版模擬器。
你可以在這下載舊版模擬器,在Window > Devices中管理它們。你還可以下載Xcode沒有預(yù)載的文檔。
組織源文件
通過源文件上方的一個下拉框,你能查看到所有的屬性和方法。
當(dāng)你點(diǎn)擊這個位置時,下拉框會顯示這個文件的詳細(xì)信息。在源代碼中你還可以使用例如// FIXME: 或者 // TODO: 或者 // MARK: 來添加標(biāo)記。
快速打開文件
有時你可能需要打開一個新文件,但同時還要保留當(dāng)前文件。有下面幾種辦法。
你可以打開assistant editor,然后在那里顯示文件。點(diǎn)擊View > Assistant Editor > Show Assistant Editor。
你可以雙擊想要打開的文件。這會打開一個新的窗口。
你可以通過 Option+Shift+點(diǎn)擊,這會彈出一個框,讓你選擇在哪里打開文件。
跳轉(zhuǎn)到文檔
能快速跳轉(zhuǎn)到文檔將會節(jié)省很多時間。你可能正在寫UITableViewDelegate,但是不記得所有相關(guān)方法。你可以通過在符號上Command+點(diǎn)擊,快速跳轉(zhuǎn)到文檔。
生成文檔
下載并安裝插件VVDocumenter-Xcode,你就不用手動寫注釋代碼了。只需輸入三個斜杠///就能快速生成注釋。
另一個好處就是在Xcode的文檔預(yù)覽中,這些注釋也可以顯示出來。在一個方法上Option+點(diǎn)擊,就能預(yù)覽文檔。
創(chuàng)建代碼片段
如果你經(jīng)常需要輸入格式完全一樣的代碼,那代碼片段就很有用了。例如,我有一個代碼片段,它能自動填充一個新的tableView或者collectionView類,并且還有我需要的delegate方法。我還有一些小型片段來幫助我快速生成typealias、singleton、gcd等等的代碼。
要生成代碼片段,在file inspector中打開snippent panel。
在編輯器中輸入想要創(chuàng)建的片段。注意,如果需要占位符的話,輸入 <#placeholder-name#>。選中代碼,按住一秒,然后拖進(jìn)代碼片段區(qū)域。
然后你可以編輯片段來添加更多細(xì)節(jié)。最重要的一點(diǎn)就是“完成快捷鍵”。在編輯器中輸入該關(guān)鍵字,就能選擇片段了?;蛘吣憧梢园汛a片段從該區(qū)域拖到編輯器中。
過兩天我會收集整理我所有的片段并分享出來。
用Chisel改進(jìn)調(diào)試
Facebook開發(fā)了一套LLDB命令來讓調(diào)試更容易一些。如果你還沒有Chisel的話,現(xiàn)在就去Github安裝。為了讓你能明白Chisel到底是干嘛的,下面我列出了一些我喜歡的命令。這些命令省了我不少時間和腦子去記住那些語法。
pviews:遞歸打印key window上的view。
visualize:在Mac上的預(yù)覽應(yīng)用中打開UIImage、CGImageRef、UIView和CALayer。
show/hide:顯示或隱藏指定的view或者layer。
border/unborder:顯示或隱藏view/layer的邊框,從而找到它在哪。
Chisel還有很多命令,在lldb中輸入help來查看內(nèi)建和用戶定義的命令。
版本編輯器
如果你需要查看一下修改了文件中的那些內(nèi)容,你可以利用Xcode內(nèi)建的版本編輯器,而不是復(fù)雜的Git。
你可以通過點(diǎn)擊右上角的雙箭頭按鈕來快速打開版本編輯器,或者通過View > Version Editor > Show Version Editor來打開。想象一下,有很多不需要提交的測試代碼,在版本編輯器中都會顯示出來,并且能讓你快速放棄這些修改。你完全可以用source control的界面來干這個,但用版本編輯器是最簡單的了。
6個值得記住與設(shè)置的快捷鍵
有些快捷鍵默認(rèn)沒有設(shè)置,我建議你打開Preferences > Key Bindings ,根據(jù)需要自行修改。
Command + / :注釋/取消注釋代碼
Command + [ 或者 ] :向前或向后縮進(jìn)代碼
Command + 左右方向鍵:移動光標(biāo)到行首或行尾
Control + s :選擇單詞(譯注:默認(rèn)沒有設(shè)置。Key Bindings 對應(yīng)的key是 Select Word)
Option + Command + e:(根據(jù)當(dāng)前范圍遍及選中的單詞)(譯注:默認(rèn)沒有設(shè)置,也不知道到底是個什么效果。)
Option + 左右方向鍵:按單詞移動光標(biāo)
esc:顯示/隱藏自動補(bǔ)全彈出框。
還有很多很多快捷鍵,找到適合你的風(fēng)格的,活學(xué)活用。
要點(diǎn)
在這篇文章中我們提到了關(guān)于你最常用到的工具——Xcode的一些內(nèi)容。我展示的大部分內(nèi)容都是為了提高我的生產(chǎn)力。我并不是想要追求單純的快(你不會看見我只用一個鍵盤),而是把自己從那些反復(fù)出現(xiàn)的問題中解放出來。當(dāng)你有更多的經(jīng)驗時,你就能找到最適合你的方式。這才是關(guān)鍵??纯丛趺礃幽馨涯阍谶@篇文章中學(xué)到的內(nèi)容應(yīng)用起來吧。