當談論到iOS開發工具時,有一個確定是全部iOS開發者都熟悉的,那就是Xcode。Xcode是使全部使人讚歎的iOS app成爲可能的驅動力。git
Xcode能幫助咱們完成很是多的事情,可是這也有點讓人頭疼。對於新手來講,可能會以爲Xcode太過繁重了。而對那些有幾年使用經驗的人來講,仍是在不停地學習一些細節來提升生產力。我對新手的建議就是不要想着一下就能學完關於Xcode的全部知識。關注當下最重要的部分,而後再根據經驗慢慢拓展到新的知識。程序員
在本文中,我會提到一些能幫助你提升生產力的內容。這裏面有些內容可能講過就忘了,但有些應該能解決你常常遇到的問題。github
你將會學到如何自定義Xcode來提升生產力shell
你將會學到一些功能來幫助你管理代碼數據庫
你將會學到一些提示來幫助你整體把控工程開發app
Xcode Behaviors編輯器
Behaviors是一種神奇的東西,能讓Xcode根據你的操做,自動執行一些後續操做。想象一下,你正在運行程序,遇到了一個斷點或者錯誤。默認狀況下,Xcode會自動打開調試窗口、在當前標籤頁跳轉到出錯的代碼處,徹底打亂了編輯器。如今咱們經過設置來阻止這種狀況發生。ide
打開Xcode 偏好設置,能看到一個叫Behaviors的選項卡。在這裏咱們能夠定義不一樣種類的狀態改變時Xcode的行爲,例如當構建開始時Xcode要作什麼、當構建成功或失敗時Xcode又要作什麼。你可讓Xcode播放聲音、打開新的標籤頁、顯示導航等等。函數
針對本例,咱們想要改變app運行時的Xcode的一些行爲。當app由於斷點或錯誤暫停時,咱們想要作如下的事情:工具
播放聲音(Hero音效對我來講不錯,可是你能夠換成其餘的,包括自定義聲音)
顯示debug標籤頁
顯示debug導航
調試區域同時顯示變量和控制檯
在這裏我選擇打開一個新的標籤頁,是由於不想讓Xcode改變我當前的工做狀態。這樣我就能輕鬆回到以前寫代碼的位置。另外我也沒有關閉Xcode爲調試打開的一些窗格,整個的體驗是集中在單獨的標籤頁中。
你能夠花些時間來探索Xcode其餘的行爲,根據本身的開發風格找到最合適的。你可能以爲Xcode的某些默認行爲很煩人,或許在Behaviors中你就能把它關掉。
管理設備和模擬器
你有沒有想過,你其實能夠管理Xcode中設備下拉框裏的設備列表呢?
再想一想讀取設備中的數據庫,從而驗證表裏的數據是否都設置正確了。你是否還遇到過,Xcode的下拉框裏一個模擬器都沒有了?如今打開Window > Devices。
在這裏你能看到已鏈接的設備和可用的模擬器。若是你須要添加或移除模擬器,就點擊左下角的+按鈕(移除點擊—按鈕)。若是模擬器都找不到了,你能夠到這來恢復它們。
最後,這裏另外一個有用的功能就是能夠下載app的 container。
過去你可能經過訪問模擬器文件夾來獲取數據,可是真機怎麼辦呢?如今獲取保存的照片、數據庫文件等等都變得很是容易了,你能夠下載一個包含有documents、libarary和temp文件夾的container,這樣就能獲取設備上的數據了。
更新app的顯示名稱
開發者們常常遇到的一個就是,建立的工程顯示的名字不是本身想要的。我常常看到有些人從新命名和重構(refactor)整個工程,來顯示正確的名稱。若是你知道在工程的info.plist裏添加一個key就能改變app顯示名稱了,那你確定很高興。這個key就是Bundle display name。
提升可讀性 & Xcode擴展
如今有不少插件均可以提升Xcode的生產力。一些開發者甚至建立了一些很是好的主題來替換Xcode默認主題。說實話,默認主題看起來仍是挺不舒服的。那咱們怎麼樣才能輕鬆地獲取到這些插件呢?如今就去alcatraz.io,下載一個很是好用的Xcode包管理器吧。
下面是用到的一些插件:
SCXcodeMinimap:這個插件和Sublime Text中的那個看起來像。它可以顯示一個編輯器的縮略圖,輕鬆地查看、滾動代碼。
RevealPlugin:若是你使用Reveal的話,這個插件能快速啓動Reveal。
RealmPlugin:Realm的模型對象的模板文件。(譯註:Realm是一個面向移動設備的數據庫。)
VVDocumenter-Xcode:幫助你快速生成一個方法的註釋。
AdjustFontSize:當你展現代碼時,你可能須要快速放大字體,這個插件能讓你經過command+加減號來調整字體大小。
Lin:爲NSLocalizedString顯示代碼補全。
有一個正在開發的本地化插件Rephrase,值得關注。當它發佈以後,就有可能成爲另外一個節約時間的利器啊。
我目前使用的主題是Dusk,我堅信這個纔是默認主題。還有不少顏色主題,你均可以經過Alcatraz來下載。
下載文檔和舊版模擬器
當你安裝了一個新版本的Xcode後,你可能會發現你沒有以前iOS系統的模擬器了。當測試app時這就是個問題了。你能夠在偏好設置中的下載選項卡中安裝舊版模擬器。
你能夠在這下載舊版模擬器,在Window > Devices中管理它們。你還能夠下載Xcode沒有預載的文檔。
組織源文件
經過源文件上方的一個下拉框,你能查看到全部的屬性和方法。
當你點擊這個位置時,下拉框會顯示這個文件的詳細信息。在源代碼中你還可使用例如// FIXME: 或者 // TODO: 或者 // MARK: 來添加標記。
快速打開文件
有時你可能須要打開一個新文件,但同時還要保留當前文件。有下面幾種辦法。
你能夠打開assistant editor,而後在那裏顯示文件。點擊View > Assistant Editor > Show Assistant Editor。
你能夠雙擊想要打開的文件。這會打開一個新的窗口。
你能夠經過 Option+Shift+點擊,這會彈出一個框,讓你選擇在哪裏打開文件。
跳轉到文檔
能快速跳轉到文檔將會節省不少時間。你可能正在寫UITableViewDelegate,可是不記得全部相關方法。你能夠經過在符號上Command+點擊,快速跳轉到文檔。
生成文檔 Xcode 8 已經自帶了這個功能 你能夠在一個方法前 按住快捷鍵(option+command+/)試一下
下載並安裝插件VVDocumenter-Xcode,你就不用手動寫註釋代碼了。只需輸入三個斜槓///就能快速生成註釋。
另外一個好處就是在Xcode的文檔預覽中,這些註釋也能夠顯示出來。在一個方法上Option+點擊,就能預覽文檔。
建立代碼片斷
若是你常常須要輸入格式徹底同樣的代碼,那代碼片斷就頗有用了。例如,我有一個代碼片斷,它能自動填充一個新的tableView或者collectionView類,而且還有我須要的delegate方法。我還有一些小型片斷來幫助我快速生成typealias、singleton、gcd等等的代碼。
要生成代碼片斷,在file inspector中打開snippent panel。
在編輯器中輸入想要建立的片斷。注意,若是須要佔位符的話,輸入 <#placeholder-name#>。選中代碼,按住一秒,而後拖進代碼片斷區域。
而後你能夠編輯片斷來添加更多細節。最重要的一點就是「完成快捷鍵」。在編輯器中輸入該關鍵字,就能選擇片斷了。或者你能夠把代碼片斷從該區域拖到編輯器中。
過兩天我會收集整理我全部的片斷並分享出來。
用Chisel改進調試
Facebook開發了一套LLDB命令來讓調試更容易一些。若是你尚未Chisel的話,如今就去Github安裝。爲了讓你能明白Chisel究竟是幹嗎的,下面我列出了一些我喜歡的命令。這些命令省了我很多時間和腦子去記住那些語法。
pviews:遞歸打印key window上的view。
visualize:在Mac上的預覽應用中打開UIImage、CGImageRef、UIView和CALayer。
show/hide:顯示或隱藏指定的view或者layer。
border/unborder:顯示或隱藏view/layer的邊框,從而找到它在哪。
Chisel還有不少命令,在lldb中輸入help來查看內建和用戶定義的命令。
版本編輯器
若是你須要查看一下修改了文件中的那些內容,你能夠利用Xcode內建的版本編輯器,而不是複雜的Git。
你能夠經過點擊右上角的雙箭頭按鈕來快速打開版本編輯器,或者經過View > Version Editor > Show Version Editor來打開。想象一下,有不少不須要提交的測試代碼,在版本編輯器中都會顯示出來,而且能讓你快速放棄這些修改。你徹底能夠用source control的界面來幹這個,但用版本編輯器是最簡單的了。
6個值得記住與設置的快捷鍵
有些快捷鍵默認沒有設置,我建議你打開Preferences > Key Bindings ,根據須要自行修改。
Command + / :註釋/取消註釋代碼
Command + [ 或者 ] :向前或向後縮進代碼
Command + 左右方向鍵:移動光標到行首或行尾
Control + s :選擇單詞(譯註:默認沒有設置。Key Bindings 對應的key是 Select Word)
Option + Command + e:(根據當前範圍遍佈選中的單詞)(譯註:默認沒有設置,也不知道究竟是個什麼效果。)
Option + 左右方向鍵:按單詞移動光標
esc:顯示/隱藏自動補全彈出框。
還有不少不少快捷鍵,找到適合你的風格的,活學活用。
要點
在這篇文章中咱們提到了關於你最經常使用到的工具——Xcode的一些內容。我展現的大部份內容都是爲了提升個人生產力。我並非想要追求單純的快(你不會看見我只用一個鍵盤),而是把本身從那些反覆出現的問題中解放出來。當你有更多的經驗時,你就能找到最適合你的方式。這纔是關鍵。看看怎麼樣能把你在這篇文章中學到的內容應用起來吧。
手指在鍵盤上飛速跳躍,終端上的代碼也隨着飛舞,是的這確實很酷。優秀的程序員老是這麼一羣人,他們不拘於現狀,不固步自封,他們喜歡新奇的事,他們把本身發揮到極致。
指法攻略
放下您鍾愛的鼠標吧,在前行之中它終會成爲你的負累!
簡記:
command 用來導航,控制導航區域
alt 控制右邊的一些東西,好比Assistant Editor,utility editor
Control 編輯區域上的Jump bar的一些交互
Command 1~ 8: 跳轉到導航區的不一樣位置
Command 0 :顯示/隱藏導航區
Command Alt 1~ 6:在不一樣檢測器之間跳轉
Control Command Alt 1~4: 在不一樣庫之間跳轉
Control 1~ 6: 在Jump bar的不一樣標籤頁的跳轉。
Command Alt 0: 顯示/關閉工具區.
Command + Enter: 顯示標準單窗口編輯器
Command Alt Enter:打開Assistant editor
Command Alt Shift Enter: 打開版本控制編輯器
Command + Shift + Y:顯示/隱藏調試區
Command + Shift + J,可展現當前你在工程導航器中打開的文件
Cmd + . 方便地暫停運行iOS模擬器
查找
使用 Command + Shift + Option + F 來打開 Find navigator 的替換模式,若是你嫌麻煩,也可使用 Command + Shift + F 來打開 Find navigator 的查找模式,若是你還嫌麻煩,使用 command + 3 來打開 Find navigator,而後開啓查找或者替換模式,選擇一種最適合本身的方式就好。
Snip20160702_6.png
快速打開
Command + Shift + O能夠直接跳轉到某個方法定義或者指定的代碼文件。喜歡使用鍵盤但不喜歡使用鼠標的人會大愛這個快捷方式。鍵入第一個字母便可快速切換至某個文件或者找到特定的代碼行。好比鍵入vDL,最早展現的結果是帶有viewDidLoad()名的函數。
Command + Shift + O
幫助
Command + Shift + 0 (Zero)打開文檔和參考,鍵入代碼中的某個關鍵字,文檔提供了一些額外的資源和示例工程。固然也能夠在變量、類或者方法名上執行Option+雙擊名稱操做,從而更方便地跳轉至文檔。
在類或者方法名上執行Option + Left點擊操做使用內聯幫助可幫開發者快速學習類或代碼片斷的用法。若是點擊了彈出視圖底部的參考連接,那麼就能夠方便地跳轉到Xcode提供的文檔中。
我的比較中意Option+雙擊名稱操做,畢竟來的直接。
代碼片斷
Xcode的代碼片斷(Code Snippets)建立自定義的代碼片斷,當你重用這些代碼片斷時,會給你帶來很大的方便。
經常使用代碼塊
1.copy:
2.strong:
3.weak:
4.assign:
5.delegate:
6.block:
7.mark:
8.gmark:
9.warning:
10.ReUseCell:
11.initObj:
12.dataFill:
13.MainGCD:
14.GlobalGCD:
15.AfterGCD:
16.OnceGCD:
黑技能(給代碼排序)
使用Spotlight來搜索Automator,並打開它;而後點擊File->New,並選擇服務(service)一項;在Actions篩選欄,輸入shell,而後雙擊運行shell腳本;在新添加的服務的菜單欄上,檢查Output replaces selected text;將腳本內容切換至sort | uniq;同時按下command + s,將服務保存爲 Sort & Uniq。