【WWDC2019 Session】Xcode 11新特性

寫在前面

Apple WWDC 2019 正如火如荼的進行着。按照WWDC計劃,美國時間從Tuesday到Friday都會有各類Session分享(實在乾貨)。全部Session相關的Video、PPT都將陸續在 WWDC2019官網 放出。git

擼主會根據Session Topic與實際工做的相關性並結合實際操做,陸續將Session內容第一時間分享給你們。github

進入正題,本文分享的是Xcode 11新特性。網絡

PS:1.本文含有大量圖片,主要是筆者實操的步驟截圖,流量不夠用的筒子們慎入!!2.Xcode 11 Beta版很是不穩定,常常閃退(WTF😠!!!),各位在實操的時候注意穩定情緒。3.因Beta版本的不穩定以及操做姿式可能不一樣,若是你們實操的結果與文中有出入,請及時留言交流反饋。app

Xcode 11新特性

Xcode 11主要包含以下新特性:框架

  • Xcode工做流更新。
  • Swift包管理工具(Xcode終於有了本身的可視化包管理工具了😅)。
  • Source Control代碼管理模塊更新。
  • 設計工具。
  • Debug工具更新。
  • Testing模塊更新。
  • Simulator更新。
  • Instruments性能分析工具。
  • 傳新的UI框架SwiftUI。

下面分別介紹這些新特性。ide

1、Xcode工做流更新

Xcode 10右上導航的樣子工具

Xcode 11右上導航的變化性能

Library變化學習

新增Editor Options和Add Editor、以及MiniMap測試

其餘重要能力提高

主要的變化總結以下:

  • Library(代碼塊Snippets和圖片資源預覽),由花括號改爲了「+」號。原先Snippets、圖片預覽兩項功能擴展爲4項:1.SwiftUI控件庫。2.SwiftUI Modifiers。3. Snippets代碼塊。4.圖片資源預覽(包括後面提到的SPM中的圖片資源、Symbols)。5.Color選擇器。

  • Version Editor中把Authors(以做者爲視角查看代碼更改記錄)、Logs(以提交時間爲視角查看代碼更改記錄)移出(集成到Editor Options中),只保留Code Review(Comparison代碼比對)功能。

  • 新增Editor Options和Add Editor功能區。其中Editor Options包含:展現/隱藏SwiftUI畫布、展現/隱藏Authors視角、MiniMap等。Add Editor能夠新增多個編輯窗口,終於不須要幾個編輯窗口來回切換了。

  • 新增MiniMap功能。有了代碼地圖預覽功能,查找代碼再也不繁瑣。搜索代碼,MiniMap也同步高亮顯示。鼠標在MiniMap移動時,也會有方法高亮提示。

  • 其餘重要功能能力提高。主要包括:代碼補全能力提高、拖拽代碼能力提高、拼寫檢查等。(因爲時間和篇幅緣由這部分功能筆者暫未實踐)

總結:從上面的更新Tips來看,Xcode正在往好的方向發展,以前飽受開發者詬病的沙雕功能也已慢慢被Apple優化。MiniMap、和Add Editor是個亮點,有了這兩個重要功能加持,跟其餘IDE相比起碼在易用性上不落下風。

2、Swift包管理工具(SPM)

Xcode終於有了本身的可視化包管理工具了!!!喜大普奔,筆者趕忙嘗試了一下SPM。

SPM入口

用Xcode 11打開工程,點擊Project,在Info、Build Setting後面多了一個Swift Packages選項,這就是SPM入口。

點擊+號,Xcode會提示你綁定一個帳號: BitBucket、GitHub、GitLab

筆者綁定的是GitHub帳號,Xcode會按照時間順序自動檢索出該帳號下的repositories。

添加一個repository到工程(筆者加入的是Alamofire Swift網絡庫)

添加完成以後,會在文件目錄的最下方出現Swift Package Dependencies目錄

使用新加入的repository

在Appdelegate.m中引入剛添加的Swift Package->Alamofire。發起一個GET請求,打印出返回的HTML字符串,完美運行。

適配現有工程、建立Swift Package庫、二進制庫等等

這部份內容筆者會盡快去嘗試,而後拿出來分享給你們。除了以上的內容,還有幾個問題須要咱們去思考並嘗試的。

  • SPM如何管理包之間的依賴問題?
  • SPM如何進行包的版本控制?
  • SPM如何適配私有Swift庫?

總結:跟SPM命令行工具相比,可視化的包管理工具顯得更簡單直接。(是否是能夠義正詞嚴的跟Cocoapods、Carthage說拜拜了?可能須要很長的路要走。。。😅)。SPM可視化工具的出現具備劃時代的意義,體現了Apple致力於完善Swift生態的堅決決心。

3、Source Control代碼管理模塊更新

相信大多數的iOS開發者不多使用Xcode自帶的Git GUI工具(實在太雞肋,功能少的可憐),通常用Source Tree或者Command Line居多。並且在Xcode 10之前,Xcode Git GUI工具不支持stash、cherry-pick命令,在Xcode 11中加入了這兩項功能。

在Source Control下拉菜單中加入了Cherry-Pick、Stash Changes選項。

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。

總結:Xcode Git GUI工具雖然加入了Stash、Cherry-pick功能,但對某些版本管理需求複雜的業務場景遠遠不夠, 而對於基本的開發來說徹底夠用了。

4、設計工具

暗黑模式切換操做區

Symbols(另類Icon Font)

在Library中,能夠選擇Symbols元素。

Xcode 11居然也有本身的標準圖片Icon庫了,並且能夠進行Symbols Configuration,Icon Font即視感有沒有!!!

自定義圖片暗黑模式適配

在Asset Catalog中添加自定義圖片,而後選擇Appearances,而後添加暗黑模式下的圖片便可。

總結:感受Xcode 11中,無論SwiftUI仍是Symbols,都跟Flutter正面剛上了啊😅。。不知接下來Xcode是否是也會提供相似於Material Design風格的控件集。官方Session中提到,Symbols會自動適配iOS 13暗黑模式(這個筆者實驗了下,Icon並無跟隨模式自動切換,知道怎麼設置的同志能夠留言告訴我一下)。

PS:在設計工具Topic分享中,出現了位女中豪傑->Lisa Xiao。不知是不是中國人,只是以爲真🐂🍺。

5、Debug工具更新

網絡模擬測試

以前真機網絡測試只能在手機上操做,如今能夠直接在Xcode->Devices & Simulators中進行測試。

能夠點擊真機左上角小按鈕來中止測試。

總結:Xcode 11進行網絡測試更方便

6、Testing模塊更新

  • Reusable across schemes:經過配置不一樣的schemes來實現複用。
  • Define what tests to include:自定義測試所包含的內容。
  • Specify multiple configurations:支持多種配置來進行白盒測試。
  • 支持iPad App for Mac以及SwiftUI的測試。

Testing加入了Test Server的模塊,用來把測試用例一次性運行在不一樣的平臺上(iPhone、iPad、Mac App)。

總結:一次編寫+一次配置=多端可測。Testing的相關更新,筆者還沒有具體實踐,有興趣的筒子能夠去體驗一把,貌似國內基於TDD開發模式的團隊少之又少吧。。。

7、Simulator更新

Watch App模擬器更獨立,能夠單獨運行

利用Metal重構Simulator,且Metal程序能夠直接在模擬器中運行

官方給出的Simulator性能數據:

  • 模擬器FPS達到60幀每秒。
  • CPU佔用率減小至少90%。
  • 熱啓動至少提速2倍以上。

總結:Watch Simulator獨立出來,能夠預見Apple對於可穿戴設備的重視程度,除此以外Apple Wacth還會有本身獨立的Watch App Store。另外Simulator利用Metal重構,其在性能上的表現確實讓人眼前一亮。是否是要開始Metal框架的學習了呢?😅

8、Instruments性能分析工具

加強分類信息展現

新增SwiftUI Instrument模版

加強Metal System Trace模版數據分析性能(數據分析速度提升10倍以上)

9、傳新的UI框架SwiftUI

兩個字:🐂🍺

後續會繼續出一些關於SwiftUI的相關分享。

結束語

文章首發GitHub github.com/Lobster-Kin…

相關文章
相關標籤/搜索