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主要包含以下新特性:框架
下面分別介紹這些新特性。ide
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相比起碼在易用性上不落下風。
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命令行工具相比,可視化的包管理工具顯得更簡單直接。(是否是能夠義正詞嚴的跟Cocoapods、Carthage說拜拜了?可能須要很長的路要走。。。😅)。SPM可視化工具的出現具備劃時代的意義,體現了Apple致力於完善Swift生態的堅決決心。
相信大多數的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右鍵彈出)。
簡要說下三個選項:
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功能,但對某些版本管理需求複雜的業務場景遠遠不夠, 而對於基本的開發來說徹底夠用了。
暗黑模式切換操做區
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。不知是不是中國人,只是以爲真🐂🍺。
網絡模擬測試
以前真機網絡測試只能在手機上操做,如今能夠直接在Xcode->Devices & Simulators中進行測試。
能夠點擊真機左上角小按鈕來中止測試。
總結:Xcode 11進行網絡測試更方便
Testing加入了Test Server的模塊,用來把測試用例一次性運行在不一樣的平臺上(iPhone、iPad、Mac App)。
總結:一次編寫+一次配置=多端可測。Testing的相關更新,筆者還沒有具體實踐,有興趣的筒子能夠去體驗一把,貌似國內基於TDD開發模式的團隊少之又少吧。。。
Watch App模擬器更獨立,能夠單獨運行
利用Metal重構Simulator,且Metal程序能夠直接在模擬器中運行
官方給出的Simulator性能數據:
總結:Watch Simulator獨立出來,能夠預見Apple對於可穿戴設備的重視程度,除此以外Apple Wacth還會有本身獨立的Watch App Store。另外Simulator利用Metal重構,其在性能上的表現確實讓人眼前一亮。是否是要開始Metal框架的學習了呢?😅
加強分類信息展現
新增SwiftUI Instrument模版
加強Metal System Trace模版數據分析性能(數據分析速度提升10倍以上)
兩個字:🐂🍺
後續會繼續出一些關於SwiftUI的相關分享。
文章首發GitHub github.com/Lobster-Kin…