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…