在2016 蘋果全球開發(fā)者大會(WWDC)期間, 蘋果一如既往地給開發(fā)者們披露了新版的集成開發(fā)工具 – Xcode, 在過去的每一次大版本發(fā)布中诸迟,蘋果都會積極地改進開發(fā)工具,添加一些極具吸引力的新功能沟饥,今年也不例外秒裕。
1. Swift 2 and 3
過去每一版的Xcode 都和固定版本的Swift編程語言綁定在一起, Xcode 8中將不再如此技潘,Swift 3給 Swift編程語言帶來大量的語法變化舟扎,這些改變會讓基于以前Swift版本的程序編譯失敗分飞。
Xcode 8 中新創(chuàng)建的項目默認地使用Swift 3, 幸運地Xcode 8 在編譯設(shè)置中支持開發(fā)者明確地選擇Swift 2或Swift 2.3 進行編譯。
這就是說你可以選擇適合的時候遷移項目到Swift 3, 如果一個目標(Target)需要支持Swift 2.3, 需要在目標(Target)的編譯設(shè)置里把Use Legacy Swift Language Version 設(shè)置成Yes睹限。
Xcode 8 也提供了遷移工具幫你把項目升級到Swift 3, 不過Xcode提供的遷移工具讓人喜憂參半譬猫,這次Swift 3 升級比上次升級有太多的變化,希望Xcode 8 的遷移工具會有所改善吧羡疗。
2. 源碼編輯器擴展
Xcode 8 最讓人驚喜的是支持源碼編輯器第三方擴展染服,開發(fā)者對于本地插件系統(tǒng)已經(jīng)翹首企盼了很多年,源碼編輯器擴展算是沿著插件系統(tǒng)方向邁出堅實的第一步吧叨恨。
源碼編輯器擴展很類似于Xcode的擴展柳刮,但蘋果一再強調(diào)當前的擴展專注于源碼的操作和導(dǎo)航,也就是為什么會叫做源碼編輯器擴展,Xcode 8 甚至提供了編輯器擴展模板讓你快速上手秉颗。
對于當前擴展架構(gòu)中我最喜歡的一點就是每個擴展都運行在不同的進程中痢毒,這就意味著擴展的異常崩潰不會引起Xcode的意外終止,隨著本地插件的越來越多蚕甥,特別是蘋果發(fā)布了新版的Xcode, 分進程運行的優(yōu)勢會顯得越來越突出哪替。
擴展對比插件另一個優(yōu)點是安全,你可以通過開發(fā)賬號登錄和發(fā)布擴展程序菇怀,蘋果也提到開發(fā)者可以通過Mac 應(yīng)用商店銷售擴展凭舶,對于想通過銷售擴展賺錢的開發(fā)者來說是很不錯機會。
我對于源碼編輯器擴展是非常興奮的爱沟,雖然我是 Alcatraz 的粉絲帅霜,但蘋果的本地擴展更貼近于未來正確的方向。非常期待開發(fā)者們未來會提供什么樣的擴展呼伸,其實已經(jīng)有人在 GitHub 上發(fā)布了插件义屏。
3. 調(diào)試
即使最好的開發(fā)者每天都要花費大量的時間進行調(diào)試程序,懂你的蘋果提供了更好的工具讓調(diào)試更簡單蜂大,Xcode 8中針對調(diào)試做了不少顯著的優(yōu)化。
界面調(diào)試
Xcode 8中的界面調(diào)試非常強大蝶怔,界面調(diào)試可以展示運行時(runtime)問題,改善后的界面調(diào)試對于調(diào)試不清晰或者不滿意的布局變得更加簡單奶浦。
運行時問題?沒錯踢星,Xcode 8中除了編譯時問題還提供了運行時問題澳叉,如果在運行時遇到自動布局的問題,Xcode會在左面導(dǎo)航面板把這些問題展示為運行時問題沐悦,這將會是個非常受歡迎的功能成洗。
內(nèi)存調(diào)試
Xcode 8 的內(nèi)存調(diào)試功能針對查找內(nèi)存泄漏和循環(huán)引用的問題也做了顯著優(yōu)化,我還不太確定在實際項目中效果如果藏否,但看起來很棒瓶殃。
4. 代碼簽名
代碼簽名對于那些對蘋果平臺有興趣開發(fā)者來說是非常不幸的,但幸運的是蘋果沒有做把頭埋在沙子里的鴕鳥副签,蘋果看到了開發(fā)者們遇到的問題并嘗試解決遥椿,一些經(jīng)驗非常豐富的開發(fā)者也會不時遇到簽名的問題,在今年的 Platforms State of the Union視頻中, 蘋果甚至自嘲自己的 修復(fù)問題(Fix Issue) 按鈕淆储,不僅很少時候能修復(fù)真正的問題冠场,有時候會把問題弄得更糟。
代碼簽名問題在Xcode 8 中將成為過去式本砰,對于每一個目標(Target), 你可以勾選復(fù)選框讓Xcode幫你管理代碼簽名碴裙,這個選項對于新項目默認是勾選的。在勾選的情況下,Xcode幫你管理證書舔株,配置文件 和 應(yīng)用標示等莺琳。
希望蘋果這次能解決簽名問題,數(shù)以萬記的開發(fā)者們和我一起祈禱吧督笆。
5. 其他改善和增強
如果你非常享受使用精雕細琢的軟件芦昔,你應(yīng)該會很喜歡Xcode 8中的San Francisco Mono 字體,請參看下圖:
高亮當前行
你有沒有注意到上面截圖中的當前行被標示為高亮娃肿? 這是Xcode8中另一個受歡迎的功能咕缎,當前我在Xcode 7 中使用 Backlight for Xcode 實現(xiàn)類似功能,在Xcode 8 中將不再需要這個插件了料扰。
圖片代碼自動完成
說到一些將被廢棄的插件, 目前我在使用 Kent Sutherland開發(fā)的插件 KSImageNamed 能夠在Xcode中幫助圖片代碼自動完成凭豪, 在Xcode 8 我將不需要這個插件,因為這個功能已經(jīng)內(nèi)置在Xcode 8 中晒杈。
6. 文檔
相信每個開發(fā)者都會在瀏覽和閱讀文檔上會花費很多時間嫂伞,好的文檔對于開發(fā)者有很大幫助,其實蘋果的文檔是非常優(yōu)秀的拯钻,但提供的瀏覽方式卻沒有那么友好帖努。
這個問題在 Xcode 8 將會被解決,新的文檔格式看起來漂亮極了粪般,且文檔瀏覽會變得簡單和快捷拼余。蘋果也針對內(nèi)存問題做了相關(guān)優(yōu)化,新版的內(nèi)存占用會少很多亩歹。
下面是兩張關(guān)于文檔的截圖匙监,是不是極有設(shè)計感?
總結(jié)
最后想說我這篇文章只是覆蓋了Xcode新功能的一部分小作,對于Xcode的大版本升級我總是很期待的亭姥。 哪一個是你最喜歡的Xcode 8中的新功能? 在評論區(qū)不吝分享吧顾稀。
英文原文:What's New in Xcode 8
參考