Xcode 8 中的新內(nèi)容
全球開發(fā)者大會(huì)期間,蘋果跟往常一樣,給開發(fā)者介紹了一下IDE,Xcode的下一個(gè)主要版本。 隨著重要版本的放出,蘋果公司公司改善了開發(fā)工具并增加了許多引人注目的新功能。 今年也同往年一樣
1.Swift 2 和 3
直到Xcode 8,Xcode的每一個(gè)版本都是內(nèi)置明確版本的swift編程語(yǔ)言。 在Xcode 8種不再是這樣了。Swift 3有了大量的改變,而且大多數(shù)改變是具有破壞性的。
使用Xcode 8創(chuàng)建的項(xiàng)目默認(rèn)使用的是Swift 3. 幸運(yùn)的是Xcode 8中的build setting選項(xiàng)可以讓開發(fā)者明確表明繼續(xù)使用Swift 2和Swift 2.3。

這就表明當(dāng)你將項(xiàng)目遷移到Swift 3的時(shí)候有所選擇。你可以在target的build settings中將Use Legacy Swift Language Version 選項(xiàng)設(shè)置為YES,來(lái)將你的target配置成Swift 2.3。
Xcode 8也內(nèi)置了一個(gè)遷移用具來(lái)幫助你將項(xiàng)目遷移到Swift 3。我曾經(jīng)使用Xcode 7的遷移工具得到了一個(gè)混亂的結(jié)果。Swift 3帶來(lái)了許多改變,我希望在Xcode 8準(zhǔn)備放出的時(shí)候,遷移工具能有很大的改善。
2.Source Editor Extensions
源代碼編譯器擴(kuò)展是最令人驚喜的功能之一。 開發(fā)者要求原生插件架構(gòu)已經(jīng)好多年了。 源代碼編譯器擴(kuò)展是一個(gè)很好的開頭。
雖然有很多喜歡的Xcode的擴(kuò)展,但是蘋果強(qiáng)調(diào)當(dāng)前的擴(kuò)展主要注重在源代碼編譯器的操作和導(dǎo)航上。 Xcode 8又一個(gè)內(nèi)置的模版來(lái)幫助你快速的開始。

我最喜歡擴(kuò)展架構(gòu)的一點(diǎn)就是,每一個(gè)擴(kuò)展都是運(yùn)行在單獨(dú)的進(jìn)程中的。 這就意味著一個(gè)擴(kuò)展的崩潰,不會(huì)造成Xcode的意外退出。 那些第三發(fā)插件經(jīng)常造成閃退問(wèn)題,特別是當(dāng)蘋果放出Xcode的重大版本時(shí)。
擴(kuò)展的另外一個(gè)好處就是比起插件來(lái)是安全的。 你可以用你的開發(fā)者賬號(hào)來(lái)登陸和發(fā)布你的擴(kuò)展。 蘋果也提到了,你可以使用Mac的商店來(lái)發(fā)布擴(kuò)展。 如果你有興趣使用你制作的擴(kuò)展來(lái)賺錢,這是一個(gè)很好的選擇。
我是很激動(dòng)的對(duì)于這個(gè)源代碼編譯器擴(kuò)展功能。 我是Alcatraz的忠實(shí)追隨者,但是蘋果的原生擴(kuò)展是未來(lái)的方向。 我已經(jīng)等不及想去看開發(fā)者們會(huì)創(chuàng)建那些擴(kuò)展。 在GitHub上已經(jīng)有一些可以用了。
3.調(diào)試
即使是最好的開發(fā)者也要花大量的時(shí)間用來(lái)調(diào)試,蘋果認(rèn)識(shí)到了這個(gè)需求,用更好的工具來(lái)使這些事情變得更加容易。 Xcode引入了大量的有關(guān)調(diào)試功能的重要改善。
試圖調(diào)試
視圖調(diào)試在Xcode 8中更加的強(qiáng)大了。準(zhǔn)確性了有了提升,由于視圖調(diào)試的改善,能夠顯示運(yùn)行時(shí)錯(cuò)誤,調(diào)試歧義和不穩(wěn)定的局現(xiàn)在更容易。
運(yùn)行時(shí)錯(cuò)誤? 是的。 Xcode 8引入了runtime issues到buildtime issue。 如果你在運(yùn)行的時(shí)候產(chǎn)生了自動(dòng)布局錯(cuò)誤,Xcode會(huì)在左邊的錯(cuò)誤導(dǎo)航欄中的runtime issue下顯示這個(gè)問(wèn)題。 這是很受歡迎的一個(gè)增加的功能。

內(nèi)存調(diào)試
Xcode 8用相當(dāng)強(qiáng)大的內(nèi)存調(diào)試器來(lái)跟蹤內(nèi)存的泄漏和循環(huán)。 我不知道在實(shí)際的實(shí)戰(zhàn)中有多少幫助,但是這個(gè)看上去是非常非常有用的。

代碼簽名
對(duì)于有興趣參與蘋果平臺(tái)開發(fā)的開發(fā)者來(lái)說(shuō)代碼簽名是很有必要的。 幸運(yùn)的是蘋果公司沒(méi)有置若罔聞。 蘋果理解開發(fā)者在這方面的痛苦。 即使是老手也一次又一次的跟代碼簽名的錯(cuò)誤作斗爭(zhēng)。 在今年的Platforms State of the Union,蘋果有好的制作了一個(gè)Fix Issue的按鈕來(lái)修復(fù)錯(cuò)誤,但是有時(shí)候反而會(huì)把事情變的更糟。

在Xcode 8中,代碼簽名錯(cuò)誤的情況應(yīng)該不會(huì)存在了。 在每一個(gè)targe中,你都可以在框中打勾來(lái)告訴Xcode讓它來(lái)代表你管理代碼簽名。 對(duì)于新項(xiàng)目這個(gè)選項(xiàng)默認(rèn)是打開的。 打勾以后,Xcode為你管理certificates, provisioning profiles和 application identifiers。

我希望蘋果這次是做的對(duì)的。 數(shù)以萬(wàn)計(jì)的其他開發(fā)者也跟我一樣希望如此。
5.其他的改善和增強(qiáng)
San Francisco Mono
如果你喜歡用漂亮的軟件,你可能會(huì)喜歡Xcode 8附帶的蘋果的新?San Francisco Mono font字體。 這是舊金山字體的變種,再混合macOS系統(tǒng)字體后的字體。

整行高亮
你注意到上面的插圖中當(dāng)前的代碼行高亮了嗎? 這是蘋果增加到Xcode 8的另外一個(gè)受歡迎的增強(qiáng)功能。 我當(dāng)前使用的是Backlight for Xcode,在Xcode 7.1中實(shí)現(xiàn)相同的效果。我猜我在Xcode 8中不再需要這個(gè)插件了。
為Images的代碼完成功能
說(shuō)到拋棄第三方插件,我現(xiàn)在在Xcode中使用的是Kent Sutherland的優(yōu)秀的KSImageNamed插件,來(lái)為images提供代碼完成功能。 當(dāng)我轉(zhuǎn)到Xcode 8之后將不需要這個(gè)插件了,這個(gè)功能現(xiàn)在已經(jīng)內(nèi)置在Xcode了。

Advertisement
6.文檔
開發(fā)者花了過(guò)多的時(shí)間在游覽和閱讀文檔。 好的文檔有很長(zhǎng)的路要走,蘋果的文檔相當(dāng)優(yōu)秀。 瀏覽文檔是不同的一回事。
這個(gè)痛苦在Xcode 8中被解決了。 新的文檔格式看上去更好,文檔瀏覽更快更容易使用。 蘋果還鞏固了文檔平臺(tái),所以內(nèi)存占用更小了。
是的,文檔看上去很舒服。 如果你不信我,你看一下那些屏幕快照。


結(jié)論
不用我說(shuō)也知道,這僅僅涵蓋了Xcode 8中新功能的一小部分。 Xcode的下一個(gè)主要版本總有一些讓我期待。 開發(fā)者花了很多時(shí)間在它們的代碼編輯器上,因此這是可以理解的,他們?nèi)绱岁P(guān)心這些無(wú)論好壞的演變。 你最喜歡Xcode 8中的功能是什么?在評(píng)論中分享一下吧。