不可能不爱的 XCODE 9:最新功能详尽介绍
by Vergil
WWDC17 帶來(lái)許多令人興奮的好消息,iOS 11, Swift 4 和 Xcode 9,每個(gè)都有非常大的進(jìn)步。但對(duì) App 開(kāi)發(fā)者來(lái)說(shuō),馬上可以派上用場(chǎng)的莫過(guò)于 Xcode,畢竟我們開(kāi)發(fā)的 App,可能不需要 iOS 11 的 AR 和 machine learning 功能,程式碼也不見(jiàn)得會(huì)用到 Swift 4 的功能。因此,接下來(lái)的時(shí)間,我們就把時(shí)間交給 Xcode 9,看它大顯神威吧。
如何下載 Xcode 9 beta
你可連到 XCODE 9 BETA 的下載頁(yè)面下載。 注意,只有付給 APPLE 年費(fèi)的尊貴開(kāi)發(fā)者才能看到 BETA 版的 XCODE 9
沒(méi)付費(fèi)的一般開(kāi)發(fā)帳號(hào)只能看到正式版的 Xcode 8.3.3。
接著,就讓我們啟動(dòng) Xcode 9,瞧瞧它的全新功能 !
1. 更棒的模擬器
模擬器終于有外框跟 home 鍵了
此外框可不是華而不實(shí)的裝飾品,上面的按鍵都可以按呢! 按了 home 鍵會(huì)回到桌面,右上的睡眠/喚醒鍵會(huì)將 iPhone 熒幕打開(kāi)或關(guān)閉, 左上的按扭則可切換靜音和調(diào)整音量。
模擬器大小任你調(diào)
將滑鼠游標(biāo)放在模擬器的右上(或是左上,左下,右下)后,即可自由拖曳調(diào)整模擬器的大小。
同時(shí)啟動(dòng)多個(gè)模擬器
從前我們一次只能跑一個(gè)模擬器,現(xiàn)在終于可以同時(shí)啟動(dòng)多個(gè)模擬器,享受錢(qián)很多,有很多 iPhone的感覺(jué)。啟動(dòng)多個(gè)模擬器的方法有以下兩種:
從 Xcode 選擇不同的模擬器,啟動(dòng)新的模擬器。
2.從模擬器 menu 上的 Hardware > Device,選擇新的模擬器啟動(dòng)。
2. WiFi 無(wú)線安裝 App
從前從前,有個(gè)人愛(ài)妳很久。哦,不是啦,彼得潘要說(shuō)的是,從前從前,我們?cè)陂_(kāi)發(fā) App 時(shí)得將iPhoen 麻煩地接線連到 Mac,然后再?gòu)?Xcode 將 App 安裝到 iPhone。而且現(xiàn)在新的 Macbook 插孔愈來(lái)愈少,也許有一天,Apple 會(huì)推出無(wú)插孔的 Macbook,那我們豈不完全無(wú)法測(cè)試 App,只能轉(zhuǎn)行賣(mài)雞排 ?
為了未來(lái)的無(wú)插孔 Macbook 大計(jì),Xcode 9 正式推出 WiFi 無(wú)線安裝 App 功能,不需接線就可安裝! 不過(guò)它有以下幾個(gè)小小的限制。
你需要Mac要安裝 Xcode 9 以上而 iOS裝置要運(yùn)行 iOS 11 以上的版本才能享用。
Mac 和 iPhone 需連到同一個(gè) WiFi 網(wǎng)路。
為了將 App 無(wú)線安裝到 iPhone,此 iPhone 需要先接線到 Mac 做設(shè)定,如此 Mac 才能認(rèn)得這支iPhone,未來(lái)才能無(wú)線安裝。操作的步驟如下:
接線連接 iPhone。
點(diǎn)選 Xcode menu 的 Window > Devices and Simulators。
3.勾選 Connect via network,從網(wǎng)路連線到 iPhone。如果連線順利,iPhone 旁將出現(xiàn)網(wǎng)路圖示,如下圖所示。
之后當(dāng)我們拔掉線后,即可成為遠(yuǎn)距離高手,自由地?zé)o線安裝。不過(guò)如果剛剛沒(méi)有出現(xiàn)網(wǎng)路圖示,或是拔線后,iPhone 就像斷了線的風(fēng)箏不理我們,在 Devices and Simulators 視窗顯示Disconnected。此時(shí) Xcode 找不到 iPhone,也就無(wú)法順利安裝 App。
別擔(dān)心,我們還有一招大絕招,在 Devices and Simulators 視窗上選擇 iPhone 后,從右鍵選單點(diǎn)選Connect via IP Address,輸入 iPhone 的 IP 后,點(diǎn)選 Connect 連線。
至于 iPhone 的 IP Address,則可從 iPhone 設(shè)定 App 的 WiFi 頁(yè)面查詢(xún)。
3. 神乎其技的程式編輯器
更清楚的警告錯(cuò)誤訊息和更方便的問(wèn)題修正
在舊版的 Xcode,當(dāng)有警告錯(cuò)誤時(shí),它只能一行顯示,所以當(dāng)訊息內(nèi)容太多時(shí),它無(wú)法完整顯示,結(jié)尾將變成 …。
雖然有貼心的 Fix-it 功能幫我們修正問(wèn)題,不過(guò)也是挺麻煩的,必須先點(diǎn)選錯(cuò)誤的紅色圓圈后,才會(huì)出現(xiàn) Fix-it 提示。
這一切,在 Xcode 9 都變得更簡(jiǎn)單了。現(xiàn)在不只錯(cuò)誤可以多行顯示,連 Fix 也會(huì)貼心地自動(dòng)出現(xiàn),點(diǎn)選即可修正問(wèn)題。
點(diǎn)選 Fix 後,自動(dòng)幫我們修正問(wèn)題,幫 url 補(bǔ)上!
程式碼的放大縮小
按住 command 加 + 可將程式碼放大,command 加 - 可將程式碼縮小。
聰明的範(fàn)圍標(biāo)示
將游標(biāo)移到 { } 、( ) 或是 class、func、if、for 等關(guān)鍵字時(shí),按住 command 鍵,Xcode 將聰明地標(biāo)示對(duì)應(yīng)的 class、function、if、for 區(qū)塊。
游標(biāo)移到 func 上按 command 鍵:
游標(biāo)移到 for 上按 command 鍵:
貼心的提示選單
跟剛剛一樣,將游標(biāo)移到程式碼的某個(gè)目標(biāo)上,按住 command 鍵,然後再用我們的一陽(yáng)指輕輕點(diǎn)擊,即可出現(xiàn)貼心的提示選單。
比方如圖所示,游標(biāo)停在 if 上,按住 command 鍵點(diǎn)擊後提示選單出現(xiàn) Add “else” Statement 和 Add “else if” Statement,Extract Method 等選項(xiàng)。選擇 add “else” Statement 後,自動(dòng)完成 else { } 的輸入。
值得注意的,在舊版 Xcode,按住 command 鍵再點(diǎn)擊其實(shí)是 Jump To Definition,比方跳到類(lèi)別,function 的定義。現(xiàn)在 Jump To Definition 變成提示選單的一個(gè)選項(xiàng)。如果想利用快速鍵跳到定義,請(qǐng)按住 command + control 再點(diǎn)擊。
4. SWIFT 程式重構(gòu)(REFACTORING)
重新命名(RENAME)
為了寫(xiě)出更好的程式,我們時(shí)常需要將變數(shù),類(lèi)別,function 改名。很可惜,這看似簡(jiǎn)單的小小心願(yuàn),在舊版的 Xcode 卻只做半套,它支援 Objective-C,卻不支援 Swift。而在 Xcode 9,Swift 程式碼也可以改名了。
比方以下例子,我們想將 struct Movie 改成 NewMovie。
將游標(biāo)移到 Movie 上,按住 cmd 鍵再點(diǎn)擊,從提示選單中選擇 Rename。
神奇的事發(fā)生了 ! Xcode 畫(huà)面上列出專(zhuān)案裡所有 Movie 出現(xiàn)的地方,橫跨多個(gè)檔案。
當(dāng)我們將 Movie 改名為 NewMovie 時(shí),更神奇的事發(fā)生了。所有的 Movie 同步變成 NewMovie,最後按下右上角的 Rename 即大功告成 !
自動(dòng)加入需要定義的 PROTOCOL FUNCTION
Swift 的 protocol 是個(gè)很龜毛的人,一旦遵從它,就得把它一定要定義的 function 一一實(shí)現(xiàn)。尤其當(dāng)你對(duì)遵從的 protocol 不熟時(shí),還得研究一番才能摸清哪些 function 要定義。
在 Xcode 9,這些麻煩事都成過(guò)往雲(yún)煙了,讓我們看看以下例子:
ViewController class 遵從 UITableViewDataSource protocol,此時(shí)尚未定義相關(guān) function,因此出現(xiàn)紅色錯(cuò)誤。
點(diǎn)選 Fix,自動(dòng)幫我們輸入 UITableViewDataSource 一定要定義的 2 個(gè) function。
將程式碼變成 METHOD (EXTRACT METHOD)
在整理程式碼時(shí),我們往往會(huì)發(fā)現(xiàn)一些可以獨(dú)立出來(lái),變成 function 來(lái)呼叫的一段程式。從前我們只能土法煉鋼,使用複製貼上大法。現(xiàn)在不用這麼麻煩了,Extract Method 可以幫我們將一段程式碼變成 function,例如以下例子:
選取下載圖片的程式碼段落後,從右鍵選單點(diǎn)選 Extract Method。
整段程式碼變成 function extractedFunc,此時(shí)你還可利用 Rename 將 function 取個(gè)更好的名字。
程式碼重構(gòu)轉(zhuǎn)換 OPEN SOURCE !
是不是覺(jué)得剛剛提到的這些功能很棒呀 ? 這只是起點(diǎn)而已,Apple 將 Xcode 的程式碼重構(gòu)轉(zhuǎn)換 open source。換句話說(shuō),未來(lái)將有更多的英雄好漢一同來(lái)開(kāi)發(fā),發(fā)明更多幫助我們重構(gòu)和轉(zhuǎn)換程式的酷炫功能。
5. 全面進(jìn)化的版本管理
SOURCE CONTROL NAVIGATOR
左邊的 Navigator 區(qū)塊多了一個(gè) source control navigator 分頁(yè),現(xiàn)在可以更清楚地查詢(xún)和控制專(zhuān)案的版本管理。
建立 TAG 和 BRANCH
在新版的 Xcode,建立 tag 和 branch 變得像呼吸一樣簡(jiǎn)單,例如以下例子:
在 source control navigator 頁(yè)面,從想指定 tag 的 commit 叫出右鍵選單,然後選擇 Tag “c197e26″。c197e26 為 git commit id 的結(jié)尾字串。
輸入 tag 名稱(chēng) v1.0,然後按 Create。
tag v1.0 成功生成,畫(huà)面上以粉紫色圖案顯示。
回到過(guò)去,切換到某個(gè) COMMIT 版本
在 source control navigator 頁(yè)面,選擇第一個(gè)藍(lán)色 icon,可看到目前專(zhuān)案處在 second commit 的版本。
選擇 Initial Commit,從右鍵選單點(diǎn)選 Checkout,回到 Initial Commit 的版本。
雖然現(xiàn)實(shí)世界裡,時(shí)光機(jī)還沒(méi)發(fā)明,但在 Xcode 的世界,我們已經(jīng)可以回到過(guò)去,專(zhuān)案變成 Initial Commit 的版本 !
深度整合 GITHUB
Xcode 和 GitHub 深度整合,現(xiàn)在從 Preferences 視窗的 Accounts 頁(yè)面即可設(shè)定專(zhuān)案連結(jié)的 GitHub 帳號(hào)。
在 Accounts 頁(yè)面按 +,選擇 GitHub。
輸入 GitHub 的帳號(hào)密碼。
設(shè)定成功後,在 Source Control Accounts 下可看到 GitHub 帳號(hào)。
將 XCODE 的專(zhuān)案建立上傳到 GITHUB
為了將 Xcode 專(zhuān)案上傳到 GitHub,從前我們得先在 GitHub 網(wǎng)站建好 Repository,然後再?gòu)?Xcode 將專(zhuān)案的 Remote 設(shè)為 GitHub 的 Repository,最後再執(zhí)行 push 上傳。
在 Xcode 9,我們只要在 Xcode 操作即可實(shí)現(xiàn)剛剛的所有動(dòng)作,步驟如下:
從 Xcode 的 menu 點(diǎn)選 Source Control > Clone
從 GitHub 帳號(hào)的專(zhuān)案清單視窗選擇有興趣的對(duì)象複製(clone)下載。
6. 更多的樣版
iOS App 多了製作 AR 特效的 Argumented Reality App 樣版和文件 App 的 Document Based App 樣版。
在 source control navigator 頁(yè)面,選擇第一個(gè)藍(lán)色 icon 後,從右鍵選單觸發(fā) Create “Demo” Remote on GitHub。(Demo 是專(zhuān)案名稱(chēng))
填寫(xiě)專(zhuān)案的相關(guān)資訊後,點(diǎn)選右下角的 Create 建立。
複製(CLONE)下載 GITHUB 帳號(hào)的專(zhuān)案
Playground 也可以選樣版了,有多達(dá)四種可以選。
7. 顏色也有名字
Assets.xcassets 現(xiàn)在除了加入圖片,還可以加入有名字的顏色,方便我們之後在 Storyboard 或程式裡使用,例如以下例子:
在 Assets.xcassets 頁(yè)面,從右鍵選單選擇 New Color Set 新增顏色。
編輯顏色的名稱(chēng)和內(nèi)容,可從右半邊的 Attributes Inspector 指定顏色,如圖所示,我們加入傳說(shuō)中讓人一見(jiàn)鍾情的顏色 – 「Vergil的浪漫藍(lán)」。
在 Storyboard 指定元件顏色時(shí),可在 Named Colors 下看到我們?nèi)〉念伾帧?/p>
我們也可從程式利用顏色名字生成 UIColor 物件。
8. DEBUG VIEW HIERARCHY 可以看到 CONTROLLER
Debug View Hierarchy 是個(gè)很棒的 debug 工具,方便我們?cè)?App 執(zhí)行時(shí)研究畫(huà)面的元件。可惜從前它少了顯示一個(gè)十分重要的角色,控制畫(huà)面的 controller。如以下例子,在 Xcode 8,我們只能看到 controller 的 view。
在 Xcode 9,控制畫(huà)面的大神 controller,終於可以現(xiàn)身,不再害羞隱藏,例如以下例子裡的 yayatrueLoveViewController。
9. 顯示 MARKDOWN 檔案
Xcode 支援漂亮地顯示 markdown 檔案,呈現(xiàn)對(duì)應(yīng)的文字大小,而且還能理解檔案內(nèi)容的階層,方便我們點(diǎn)選 jump bar 選單跳到檔案的某個(gè)段落
10. 支援 SWIFT 4 和 SWIFT 3.2
Xcode 9 預(yù)設(shè)搭配最新的 Swift 4,然而它也同時(shí)支援 Swift 3.2。更棒的是,當(dāng)你的專(zhuān)案包含多個(gè) target 時(shí)(比方搭配一些第三方套件),你可以部分 target 的程式是 Swift 4,部分 target 的程式是 Swift 3。
總結(jié)
以上介紹的,只是 Xcode 9 一些比較特別,比較重要常用的新功能,其實(shí)還有許多沒(méi)提到的新功能值得我們?nèi)グl(fā)掘研究,比方幫助我們 Debug 的 Undefined Behavior Sanitizer 和 Main Thread Checker,方便 Continuous integration 測(cè)試的 Xcode Server。想要更深入認(rèn)識(shí) Xcode 9 的朋友,可直接從 Xcode menu 的 Help 查詢(xún)。
以下 Apple 官方網(wǎng)頁(yè),也有更多關(guān)於 Xcode 9 的完整介紹。
1 What’s New in Xcode 9
2 Xcode 9 beta Release Note (需登入付費(fèi)開(kāi)發(fā)帳號(hào)才能看到)
原文出處:https://www.appcoda.com.tw/xcode9/
總結(jié)
以上是生活随笔為你收集整理的不可能不爱的 XCODE 9:最新功能详尽介绍的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: iOS 打包.framework(包括第
- 下一篇: LeetCode:二进制手表【401】