百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

Xcode 11 初体验

bigegpt 2024-09-04 02:56 3 浏览

Xcode 11 初体验

今天更新了 Xcode 11 感觉很不错(主要很多陌生的东西,但是很有意思)!这里跟大家一起分享一下!前面翻译过一篇官方文档:但是大家纷纷反馈看不懂,其实大家更希望看到就是一些带着更新去操作的东西。趁着最新更新正是版本的 Xcode 11 于是就有这一篇 Xcode 11 初体验


Xcode工作流的改进(Workflows)


工程创建


  • 创建工程进来,就会发现 User Interface 可以进行选择 SwiftUIstoryboad其中我有两篇博客也介绍到了SwiftUI:SwiftUI - 百行代码变十行,Swift再创辉煌 和 WWDC - SwiftUI - 初恋般的感觉

  • 代码块



  • 代码块也做了调整,界面漂亮直观、编辑显示也非常清晰! (本人是非常喜欢代码块的,对于这个调整我要点赞


  • Version Editor 中的 log 选项卡移到了检查器中,组成了新的Source Control History区。
  • Assistant、和 Vesion Editor下的Autor 选项卡合并为一项,并从主导航中移除,向下移到每个编辑面板中,组成 Editor Option。主导航中只保留Code Review功能。
  • 新增Add EditorMiniMap


  • 我们这里着重介绍一下 Editor OptionsAdd EditorMiniMap 这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 官方文档一线搬砖工人


    原文作者:逻辑iOS技术号(Cooci)

    公众号:

    相关推荐

    当Frida来“敲”门(frida是什么)

    0x1渗透测试瓶颈目前,碰到越来越多的大客户都会将核心资产业务集中在统一的APP上,或者对自己比较重要的APP,如自己的主业务,办公APP进行加壳,流量加密,投入了很多精力在移动端的防护上。而现在挖...

    服务端性能测试实战3-性能测试脚本开发

    前言在前面的两篇文章中,我们分别介绍了性能测试的理论知识以及性能测试计划制定,本篇文章将重点介绍性能测试脚本开发。脚本开发将分为两个阶段:阶段一:了解各个接口的入参、出参,使用Python代码模拟前端...

    Springboot整合Apache Ftpserver拓展功能及业务讲解(三)

    今日分享每天分享技术实战干货,技术在于积累和收藏,希望可以帮助到您,同时也希望获得您的支持和关注。架构开源地址:https://gitee.com/msxyspringboot整合Ftpserver参...

    Linux和Windows下:Python Crypto模块安装方式区别

    一、Linux环境下:fromCrypto.SignatureimportPKCS1_v1_5如果导包报错:ImportError:Nomodulenamed'Crypt...

    Python 3 加密简介(python des加密解密)

    Python3的标准库中是没多少用来解决加密的,不过却有用于处理哈希的库。在这里我们会对其进行一个简单的介绍,但重点会放在两个第三方的软件包:PyCrypto和cryptography上,我...

    怎样从零开始编译一个魔兽世界开源服务端Windows

    第二章:编译和安装我是艾西,上期我们讲述到编译一个魔兽世界开源服务端环境准备,那么今天跟大家聊聊怎么编译和安装我们直接进入正题(上一章没有看到的小伙伴可以点我主页查看)编译服务端:在D盘新建一个文件夹...

    附1-Conda部署安装及基本使用(conda安装教程)

    Windows环境安装安装介质下载下载地址:https://www.anaconda.com/products/individual安装Anaconda安装时,选择自定义安装,选择自定义安装路径:配置...

    如何配置全世界最小的 MySQL 服务器

    配置全世界最小的MySQL服务器——如何在一块IntelEdison为控制板上安装一个MySQL服务器。介绍在我最近的一篇博文中,物联网,消息以及MySQL,我展示了如果Partic...

    如何使用Github Action来自动化编译PolarDB-PG数据库

    随着PolarDB在国产数据库领域荣膺桂冠并持续获得广泛认可,越来越多的学生和技术爱好者开始关注并涉足这款由阿里巴巴集团倾力打造且性能卓越的关系型云原生数据库。有很多同学想要上手尝试,却卡在了编译数据...

    面向NDK开发者的Android 7.0变更(ndk android.mk)

    订阅Google官方微信公众号:谷歌开发者。与谷歌一起创造未来!受Android平台其他改进的影响,为了方便加载本机代码,AndroidM和N中的动态链接器对编写整洁且跨平台兼容的本机...

    信创改造--人大金仓(Kingbase)数据库安装、备份恢复的问题纪要

    问题一:在安装KingbaseES时,安装用户对于安装路径需有“读”、“写”、“执行”的权限。在Linux系统中,需要以非root用户执行安装程序,且该用户要有标准的home目录,您可...

    OpenSSH 安全漏洞,修补操作一手掌握

    1.漏洞概述近日,国家信息安全漏洞库(CNNVD)收到关于OpenSSH安全漏洞(CNNVD-202407-017、CVE-2024-6387)情况的报送。攻击者可以利用该漏洞在无需认证的情况下,通...

    Linux:lsof命令详解(linux lsof命令详解)

    介绍欢迎来到这篇博客。在这篇博客中,我们将学习Unix/Linux系统上的lsof命令行工具。命令行工具是您使用CLI(命令行界面)而不是GUI(图形用户界面)运行的程序或工具。lsoflsof代表&...

    幻隐说固态第一期:固态硬盘接口类别

    前排声明所有信息来源于网络收集,如有错误请评论区指出更正。废话不多说,目前固态硬盘接口按速度由慢到快分有这几类:SATA、mSATA、SATAExpress、PCI-E、m.2、u.2。下面我们来...

    新品轰炸 影驰SSD多款产品登Computex

    分享泡泡网SSD固态硬盘频道6月6日台北电脑展作为全球第二、亚洲最大的3C/IT产业链专业展,吸引了众多IT厂商和全球各地媒体的热烈关注,全球存储新势力—影驰,也积极参与其中,为广大玩家朋友带来了...