1. 程式人生 > IOS開發 >Xcode 11 初體驗

Xcode 11 初體驗

今天更新了 Xcode 11 感覺很不錯(主要很多陌生的東西,但是很有意思)!這裡跟大家一起分享一下!前面翻譯過一篇官方文件: 但是大家紛紛反饋看不懂,其實大家更希望看到就是一些帶著更新去操作的東西。趁著最新更新正是版本的 Xcode 11 於是就有這一篇 Xcode 11 初體驗

Xcode工作流的改進(Workflows)

工程建立

程式碼塊

  • 程式碼塊也做了調整,介面漂亮直觀、編輯顯示也非常清晰! (本人是非常喜歡程式碼塊的,對於這個調整我要點贊)

  • Version Editor 中的 log 選項卡移到了檢查器中,組成了新的Source Control History區。
  • Assistant、和 Vesion Editor下的 Autor 選項卡合併為一項,並從主導航中移除,向下移到每個編輯面板中,組成 Editor Option。主導航中只保留Code Review功能。
  • 新增Add EditorMiniMap

我們這裡著重介紹一下 Editor OptionsAdd Editor

MiniMap 這3個選項。

Editor Options

  • 通過Editor Options可以設定當前編輯器的顯示模式,包含:Editor OnlyEditor and CanvasEditor and Assistant這三個編輯選項。
  • Editor Only:只顯示程式碼編輯器。
  • Editor and Canvas:程式碼編輯器和 SwiftUI預覽檢視。
  • Editor and Assistant:程式碼編輯器和輔助檢視。

其中說明一下:SwiftUI 預覽 系統最低要求macOS 10.15

Add Editor

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

  • 可以指定檔案開啟的位置。
  • 使用 Focus Mode 專注使用某一個視窗。
  • 綜合這個功能還是不錯的,我經常也會開啟多個頁面!來回進去出來麻煩!

直接點選這個按鈕,會橫向進行分割。 按住 Option 按鍵點選它,會縱向分割, 下圖是一個分割後的介面示例

上圖中介面被分成了 3 個編輯視窗。 左邊被上下分割成了兩個小視窗,右邊被單獨分割出一個大視窗。

指定檔案開啟位置

上面我們介紹了視窗分割,在 Xcode 11 中,你還可以按住 Option + Shift,然後在左邊點選要開啟的檔案,這時會出現視窗選擇提示

你可以用鍵盤,或者滑鼠任意方式選擇你要開啟這個檔案的視窗,選中後點擊滑鼠左鍵或者鍵盤的 Enter 鍵,就可以在指定視窗開啟這個檔案了。除此之外你還可以移動滑鼠到兩個視窗之間,將要開啟的檔案在這裡插入一個新的視窗:

綜合這個功能,更加方便我們對比閱讀,快速開發!尤其在一些關聯性比較強的幾個頁面,我們就不再需要切來切去,更加方便清晰

MiniMap

MiniMap 是本次更新的特色(吐槽有點模仿)提供這個縮略小圖,當然能夠讓開發者更加清晰,這個功能還是非常不錯的!~~~大局觀 ??

並且你可以通過 MiniMap 快速的跳轉到檔案的任何區域。MiniMap 支援程式碼標記, 斷點顯示,以及搜尋高亮提示,非常多的便捷功能。

比如下圖, 我們搜尋 app 這個關鍵字,右邊的MiniMap 上會標記處程式碼檔案中所有命中的搜尋, 並且還會高亮展示出當前命中搜索的位置(這個需要仔細看一下)

從上面的截圖想必你也應該感受到這個 MiniMap 的作用了!

編輯器功能增強

程式碼註釋的補齊功能。

現在可以直接點選函式方法,右鍵選擇 Add Documentation 會自動補齊程式碼註釋,簡潔方便。看來蘋果爸爸也實在受不了我們亂七八糟沒有註釋的程式碼,提倡我們文明程式設計 ??

Change Bar

  • Change Bar這個功能之前也有,我還是比較喜歡的! 當你的專案關聯了版本控制工具時,比如 GitXcode 會檢測出當前檔案哪些地方相對於上次遞交的版本有更改,並且會通過在左邊顯示一個藍色線條標記出來:

  • Change Bar 點選左鍵還可以選擇 show Change 檢視我們變化之前的程式碼,其實也是對比變化的功能,當然你可以選擇 Discard Change 來刪除變化更新!這就比較爽了!可能你這個時候你就會想到前面跟你介紹的Code Review 功能 是來對比整個檔案變化!

Swift Package Manager

Xcode 11 還有另外一個重要的更新,就是對 Swift Package Manager 的內建整合。這個功能貌似在挑戰 CocoaPods! 為什麼這麼說呢?我下面給大家開始演示

  • 開啟專案檔案,然後找到 Swift Packages 選項卡:

  • 點選新增要匯入的第三方框架,這裡以 RxSwift 為?

  • 點選 Next 會執行驗證,稍等片刻就會讓你選擇版本以及分支!

  • 選擇完畢點選 Next 就會開始匯入!Resolving 三方框架

設計工具(Design Tools)

  • 可以隨時檢視各裝置上的效果以及作出更改。
  • 在開發和除錯時,隨時在暗黑和明亮模式之間進行切換。
  • Asset目錄可以使你輕鬆的控制影象和顏色在暗黑和明亮模式之間進行切換。
  • 可以方便的使用瀏覽所有SF符號

  • 在蘋果內部還是提供了很多方便的,比如下圖,你可以根據關鍵字搜尋出你需要的圖示

  • 同時你放到相應的介面上面,你還可以進行調整!

程式碼管理(Source Control)

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

Stash Changes

  • 選擇 Stash Changes 選項,會自動彈出一個對話方塊,提示我們輸入一些Comment 資訊。點選 Stash 按鈕自動跳轉到 Git 管理 Tab 下。

Git Tab 頁面,會展示出當前本地 Branches 列表、Stash Changes 列表、Tags 列表、Remotes 遠端倉庫列表。

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

簡要說下三個選項:

  • Apply Stashed Changes:跟 git stash apply 作用一樣,會把當前 Stash Changes 棧頂元素應用到當前分支,Stash Changes 棧不會移除這個Stash

  • Export Stashed Changes as Patch File:將某個Stash Changes匯出一個Patch檔案。

  • Delete:跟 git stash pop 作用一樣,將 Stash Changes 棧頂元素應用到當前分支,Stash Changes 棧會移除這個Stash

Cherry-Pick

假設有兩個分支A和B,進行合併分支的時候,你並不想把B的所有commit合併到A,而是想把單個commit合併過來,這時候就得用到git cherry-pick命令了。

選擇某個 commit,然後 cherry-pick,彈出框點選 cherry-pick就會將該commit 合併到 master分支,並生成一個新 commit

Debug 工具升級

Xcode 11 中,對模擬器除錯做了很多加強。 你現在可以點選除錯配置介面,動態改變模擬器的執行引數,比如這裡改變主題模式到黑色,改變文字大小,更改輔助選項等等:

這樣增強我們開發人員的除錯能力,對於每次編碼再調整的方式大大優化!其實從這裡大家也或多或少也感知到了現在 Apple 對於視覺化的能力得到提升! 說白了我們為什麼喜歡用 Xcode 勝過 AppCode 是因為

  • Xcode 的官方性
  • Xcode 的視覺化能力更強
  • Xcode 的操作更讓開發人員省心,省力!

對網路和溫度的模擬

Xcode 11 還加入了對網路環境和裝置溫度的模擬。這兩個條件對開發者來說應該不陌生,它們也是最難通過常規手段復現的場景。在裝置管理視窗中,現在增加了這幾個選項

  • 根據 Network Link 可以選擇你需要的狀態,當然 Thermal status 可以選擇!都可以讓你的 APP 在更有預期的狀況下執行。

模擬器

  • 直接在Watch模擬器上執行Watch app。
  • 基於Metal多模擬器進行了更新,Metal程式可以直接在模擬器上執行。
  • 模擬器FPS達到60幀每秒。
  • CPU佔用率減少至少90%。
  • 熱啟動至少提速2倍以上。

效能分析工具(Instruments)

  • 層次更加分明,更容易瀏覽和更正資料。
  • 新的 Swift UI 模版。
  • 完全重寫了 Metal System Trace 模版,速度提升了10倍以上。

SceneDelegate 更新

Apple 建議我們把檢視層級相關的方法從 didFinishLanchingWithOptions 遷移到 SceneDelegate 中的 willConnectTo 方法中。這樣做有兩個好處:

  • 首先可以提高預覽結果呈現的速度
  • 其次在應用進入後臺時,不會做一些額外的操作,只會做一些必要的操作,使應用快速進入睡眠狀態,以節省耗電.

關於Swift UI 的更新

其中我有兩篇部落格也介紹到了 SwiftUI :

SwiftUI - 百行程式碼變十行,Swift再創輝煌

WWDC - SwiftUI - 初戀般的感覺

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

PS:想要獲取給iOS中高階面試官的一份招聘要求 面試題答案的小夥伴可以繼續關注我的部落格,我會在下面的內容裡面會更新出來!同時看到這裡了,點個贊吧!Thanks♪(・ω・)ノ