Xcode 11 初體驗(yàn)

今天更新了 Xcode 11 感覺(jué)很不錯(cuò)(主要很多陌生的東西魄鸦,但是很有意思)褪秀!這里跟大家一起分享一下!前面翻譯過(guò)一篇官方文檔: 但是大家紛紛反饋看不懂康铭,其實(shí)大家更希望看到就是一些帶著更新去操作的東西蹋宦。趁著最新更新正是版本的 Xcode 11 于是就有這一篇 Xcode 11 初體驗(yàn)

Xcode工作流的改進(jìn)(Workflows)

工程創(chuàng)建

代碼塊

  • 代碼塊也做了調(diào)整守屉,界面漂亮直觀、編輯顯示也非常清晰! (本人是非常喜歡代碼塊的蒿辙,對(duì)于這個(gè)調(diào)整我要點(diǎn)贊)
  • Version Editor 中的 log 選項(xiàng)卡移到了檢查器中拇泛,組成了新的Source Control History區(qū)。
  • Assistant思灌、和 Vesion Editor下的 Autor 選項(xiàng)卡合并為一項(xiàng)俺叭,并從主導(dǎo)航中移除,向下移到每個(gè)編輯面板中泰偿,組成 Editor Option熄守。主導(dǎo)航中只保留Code Review功能。
  • 新增Add Editor耗跛、MiniMap裕照。

我們這里著重介紹一下 Editor OptionsAdd Editor调塌、MiniMap 這3個(gè)選項(xiàng)晋南。

Editor Options

  • 通過(guò)Editor Options可以設(shè)置當(dāng)前編輯器的顯示模式,包含:Editor Only羔砾, Editor and Canvas负间, Editor and Assistant這三個(gè)編輯選項(xiàng)偶妖。
  • Editor Only:只顯示代碼編輯器。
  • Editor and Canvas:代碼編輯器和 SwiftUI預(yù)覽視圖政溃。
  • Editor and Assistant:代碼編輯器和輔助視圖趾访。

其中說(shuō)明一下:SwiftUI 預(yù)覽 系統(tǒng)最低要求macOS 10.15

Add Editor

提供了編輯窗口的任意切割功能:

  • 可以指定文件打開(kāi)的位置。
  • 使用 Focus Mode 專注使用某一個(gè)窗口玩祟。
  • 綜合這個(gè)功能還是不錯(cuò)的腹缩,我經(jīng)常也會(huì)打開(kāi)多個(gè)頁(yè)面!來(lái)回進(jìn)去出來(lái)麻煩空扎!

直接點(diǎn)擊這個(gè)按鈕,會(huì)橫向進(jìn)行分割润讥。 按住 Option 按鍵點(diǎn)擊它转锈,會(huì)縱向分割, 下圖是一個(gè)分割后的界面示例

上圖中界面被分成了 3 個(gè)編輯窗口楚殿。 左邊被上下分割成了兩個(gè)小窗口撮慨,右邊被單獨(dú)分割出一個(gè)大窗口。

指定文件打開(kāi)位置

上面我們介紹了窗口分割脆粥,在 Xcode 11 中砌溺,你還可以按住 Option + Shift,然后在左邊點(diǎn)擊要打開(kāi)的文件变隔,這時(shí)會(huì)出現(xiàn)窗口選擇提示

你可以用鍵盤(pán)规伐,或者鼠標(biāo)任意方式選擇你要打開(kāi)這個(gè)文件的窗口,選中后點(diǎn)擊鼠標(biāo)左鍵或者鍵盤(pán)的 Enter 鍵匣缘,就可以在指定窗口打開(kāi)這個(gè)文件了猖闪。除此之外你還可以移動(dòng)鼠標(biāo)到兩個(gè)窗口之間,將要打開(kāi)的文件在這里插入一個(gè)新的窗口:

綜合這個(gè)功能肌厨,更加方便我們對(duì)比閱讀培慌,快速開(kāi)發(fā)!尤其在一些關(guān)聯(lián)性比較強(qiáng)的幾個(gè)頁(yè)面柑爸,我們就不再需要切來(lái)切去吵护,更加方便清晰

MiniMap

MiniMap 是本次更新的特色(吐槽有點(diǎn)模仿)提供這個(gè)縮略小圖,當(dāng)然能夠讓開(kāi)發(fā)者更加清晰表鳍,這個(gè)功能還是非常不錯(cuò)的馅而!~~~大局觀 ????

并且你可以通過(guò) MiniMap 快速的跳轉(zhuǎn)到文件的任何區(qū)域。MiniMap 支持代碼標(biāo)記进胯, 斷點(diǎn)顯示用爪,以及搜索高亮提示,非常多的便捷功能胁镐。

比如下圖偎血, 我們搜索 app 這個(gè)關(guān)鍵字诸衔,右邊的MiniMap 上會(huì)標(biāo)記處代碼文件中所有命中的搜索, 并且還會(huì)高亮展示出當(dāng)前命中搜索的位置(這個(gè)需要仔細(xì)看一下)

從上面的截圖想必你也應(yīng)該感受到這個(gè) MiniMap 的作用了颇玷!

編輯器功能增強(qiáng)

代碼注釋的補(bǔ)齊功能笨农。

現(xiàn)在可以直接點(diǎn)擊函數(shù)方法,右鍵選擇 Add Documentation 會(huì)自動(dòng)補(bǔ)齊代碼注釋帖渠,簡(jiǎn)潔方便谒亦。看來(lái)蘋(píng)果爸爸也實(shí)在受不了我們亂七八糟沒(méi)有注釋的代碼空郊,提倡我們文明編程 ????

Change Bar

  • Change Bar這個(gè)功能之前也有份招,我還是比較喜歡的! 當(dāng)你的項(xiàng)目關(guān)聯(lián)了版本控制工具時(shí),比如 Git狞甚, Xcode 會(huì)檢測(cè)出當(dāng)前文件哪些地方相對(duì)于上次遞交的版本有更改锁摔,并且會(huì)通過(guò)在左邊顯示一個(gè)藍(lán)色線條標(biāo)記出來(lái):
  • Change Bar 點(diǎn)擊左鍵還可以選擇 show Change 查看我們變化之前的代碼,其實(shí)也是對(duì)比變化的功能哼审,當(dāng)然你可以選擇 Discard Change 來(lái)刪除變化更新谐腰!這就比較爽了!可能你這個(gè)時(shí)候你就會(huì)想到前面跟你介紹的Code Review 功能 是來(lái)對(duì)比整個(gè)文件變化涩盾!

Swift Package Manager

Xcode 11 還有另外一個(gè)重要的更新十气,就是對(duì) Swift Package Manager 的內(nèi)置集成。這個(gè)功能貌似在挑戰(zhàn) CocoaPods! 為什么這么說(shuō)呢春霍?我下面給大家開(kāi)始演示

  • 打開(kāi)項(xiàng)目文件砸西,然后找到 Swift Packages 選項(xiàng)卡:
  • 點(diǎn)擊添加要導(dǎo)入的第三方框架,這里以 RxSwift 為??
  • 點(diǎn)擊 Next 會(huì)執(zhí)行驗(yàn)證终畅,稍等片刻就會(huì)讓你選擇版本以及分支籍胯!
  • 選擇完畢點(diǎn)擊 Next 就會(huì)開(kāi)始導(dǎo)入!Resolving 三方框架

設(shè)計(jì)工具(Design Tools)

  • 可以隨時(shí)查看各設(shè)備上的效果以及作出更改离福。
  • 在開(kāi)發(fā)和調(diào)試時(shí)杖狼,隨時(shí)在暗黑和明亮模式之間進(jìn)行切換。
  • Asset目錄可以使你輕松的控制圖像和顏色在暗黑和明亮模式之間進(jìn)行切換妖爷。
  • 可以方便的使用瀏覽所有SF符號(hào)
  • 在蘋(píng)果內(nèi)部還是提供了很多方便的蝶涩,比如下圖,你可以根據(jù)關(guān)鍵字搜索出你需要的圖標(biāo)
  • 同時(shí)你放到相應(yīng)的界面上面絮识,你還可以進(jìn)行調(diào)整绿聘!

代碼管理(Source Control)

在Xcode 11中,新增了 Stash Changescherry pick 功能次舌。

Stash Changes

  • 選擇 Stash Changes 選項(xiàng)熄攘,會(huì)自動(dòng)彈出一個(gè)對(duì)話框,提示我們輸入一些Comment 信息彼念。點(diǎn)擊 Stash 按鈕自動(dòng)跳轉(zhuǎn)到 Git 管理 Tab 下挪圾。

Git Tab 頁(yè)面浅萧,會(huì)展示出當(dāng)前本地 Branches 列表、Stash Changes 列表哲思、Tags 列表洼畅、Remotes 遠(yuǎn)程倉(cāng)庫(kù)列表。

Stash 右下角會(huì)有 Stash 功能選擇按鈕(也可以在左側(cè)Stash Changes右鍵彈出)棚赔。

簡(jiǎn)要說(shuō)下三個(gè)選項(xiàng):

  • Apply Stashed Changes:跟 git stash apply 作用一樣帝簇,會(huì)把當(dāng)前 Stash Changes 棧頂元素應(yīng)用到當(dāng)前分支,Stash Changes 棧不會(huì)移除這個(gè)Stash靠益。

  • Export Stashed Changes as Patch File:將某個(gè)Stash Changes導(dǎo)出一個(gè)Patch文件丧肴。

  • Delete:跟 git stash pop 作用一樣,將 Stash Changes 棧頂元素應(yīng)用到當(dāng)前分支胧后,Stash Changes 棧會(huì)移除這個(gè)Stash闪湾。

Cherry-Pick

假設(shè)有兩個(gè)分支A和B,進(jìn)行合并分支的時(shí)候绩卤,你并不想把B的所有commit合并到A,而是想把單個(gè)commit合并過(guò)來(lái)江醇,這時(shí)候就得用到git cherry-pick命令了濒憋。

選擇某個(gè) commit,然后 cherry-pick陶夜,彈出框點(diǎn)擊 cherry-pick就會(huì)將該commit 合并到 master分支凛驮,并生成一個(gè)新 commit

Debug 工具升級(jí)

Xcode 11 中条辟,對(duì)模擬器調(diào)試做了很多加強(qiáng)黔夭。 你現(xiàn)在可以點(diǎn)擊調(diào)試配置界面,動(dòng)態(tài)改變模擬器的運(yùn)行參數(shù)羽嫡,比如這里改變主題模式到黑色本姥,改變文字大小,更改輔助選項(xiàng)等等:

這樣增強(qiáng)我們開(kāi)發(fā)人員的調(diào)試能力杭棵,對(duì)于每次編碼再調(diào)整的方式大大優(yōu)化婚惫!其實(shí)從這里大家也或多或少也感知到了現(xiàn)在 Apple 對(duì)于可視化的能力得到提升! 說(shuō)白了我們?yōu)槭裁聪矚g用 Xcode 勝過(guò) AppCode 是因?yàn)?/p>

  • Xcode 的官方性
  • Xcode 的可視化能力更強(qiáng)
  • Xcode 的操作更讓開(kāi)發(fā)人員省心,省力魂爪!

對(duì)網(wǎng)絡(luò)和溫度的模擬

Xcode 11 還加入了對(duì)網(wǎng)絡(luò)環(huán)境和設(shè)備溫度的模擬先舷。這兩個(gè)條件對(duì)開(kāi)發(fā)者來(lái)說(shuō)應(yīng)該不陌生,它們也是最難通過(guò)常規(guī)手段復(fù)現(xiàn)的場(chǎng)景滓侍。在設(shè)備管理窗口中蒋川,現(xiàn)在增加了這幾個(gè)選項(xiàng)

  • 根據(jù) Network Link 可以選擇你需要的狀態(tài),當(dāng)然 Thermal status 可以選擇撩笆!都可以讓你的 APP 在更有預(yù)期的狀況下運(yùn)行捺球。

模擬器

  • 直接在Watch模擬器上運(yùn)行Watch app缸浦。
  • 基于Metal多模擬器進(jìn)行了更新,Metal程序可以直接在模擬器上運(yùn)行懒构。
  • 模擬器FPS達(dá)到60幀每秒餐济。
  • CPU占用率減少至少90%。
  • 熱啟動(dòng)至少提速2倍以上胆剧。

性能分析工具(Instruments)

  • 層次更加分明絮姆,更容易瀏覽和更正數(shù)據(jù)。
  • 新的 Swift UI 模版秩霍。
  • 完全重寫(xiě)了 Metal System Trace 模版咙俩,速度提升了10倍以上。

SceneDelegate 更新

Apple 建議我們把視圖層級(jí)相關(guān)的方法從 didFinishLanchingWithOptions 遷移到 SceneDelegate 中的 willConnectTo 方法中谈宛。這樣做有兩個(gè)好處:

  • 首先可以提高預(yù)覽結(jié)果呈現(xiàn)的速度
  • 其次在應(yīng)用進(jìn)入后臺(tái)時(shí)户秤,不會(huì)做一些額外的操作,只會(huì)做一些必要的操作颠悬,使應(yīng)用快速進(jìn)入睡眠狀態(tài)矮燎,以節(jié)省耗電.

關(guān)于Swift UI 的更新

其中我有兩篇博客也介紹到了 SwiftUI :

SwiftUI - 百行代碼變十行,Swift再創(chuàng)輝煌

WWDC - SwiftUI - 初戀般的感覺(jué)

參考:
Apple 官方文檔
一線搬磚工人

PS:想要獲取給iOS中高級(jí)面試官的一份招聘要求 面試題答案的小伙伴可以繼續(xù)關(guān)注我的博客赔癌,我會(huì)在下面的內(nèi)容里面會(huì)更新出來(lái)诞外!同時(shí)看到這里了,點(diǎn)個(gè)贊吧灾票!Thanks?(?ω?)?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末峡谊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子刊苍,更是在濱河造成了極大的恐慌既们,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件正什,死亡現(xiàn)場(chǎng)離奇詭異啥纸,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)埠忘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)脾拆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人莹妒,你說(shuō)我怎么就攤上這事名船。” “怎么了旨怠?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,998評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵渠驼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我鉴腻,道長(zhǎng)迷扇,這世上最難降的妖魔是什么百揭? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,323評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮蜓席,結(jié)果婚禮上器一,老公的妹妹穿的比我還像新娘。我一直安慰自己厨内,他們只是感情好祈秕,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,355評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著雏胃,像睡著了一般请毛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上瞭亮,一...
    開(kāi)封第一講書(shū)人閱讀 49,079評(píng)論 1 285
  • 那天方仿,我揣著相機(jī)與錄音,去河邊找鬼统翩。 笑死仙蚜,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的厂汗。 我是一名探鬼主播鳍征,決...
    沈念sama閱讀 38,389評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼面徽!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起匣掸,我...
    開(kāi)封第一講書(shū)人閱讀 37,019評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤趟紊,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后碰酝,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體霎匈,經(jīng)...
    沈念sama閱讀 43,519評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,971評(píng)論 2 325
  • 正文 我和宋清朗相戀三年送爸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了铛嘱。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,100評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡袭厂,死狀恐怖墨吓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纹磺,我是刑警寧澤帖烘,帶...
    沈念sama閱讀 33,738評(píng)論 4 324
  • 正文 年R本政府宣布,位于F島的核電站橄杨,受9級(jí)特大地震影響秘症,放射性物質(zhì)發(fā)生泄漏照卦。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,293評(píng)論 3 307
  • 文/蒙蒙 一乡摹、第九天 我趴在偏房一處隱蔽的房頂上張望役耕。 院中可真熱鬧,春花似錦聪廉、人聲如沸瞬痘。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,289評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)图云。三九已至,卻和暖如春邻邮,著一層夾襖步出監(jiān)牢的瞬間竣况,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,517評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工筒严, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丹泉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,547評(píng)論 2 354
  • 正文 我出身青樓鸭蛙,卻偏偏與公主長(zhǎng)得像摹恨,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子娶视,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,834評(píng)論 2 345