WWDC 2019:自定义工具和SF符号以及开发iOS应用程序的新方法



人们说运气是长期努力的结果。 这可能部分是正确的。 我们的两名员工以随机彩票的形式赢得了苹果大会上最受欢迎的门票,并于今年夏天在圣何塞去了。

如果不是要举办此盛会,那么梦想与专家讨论苹果公司的新功能,结识全球顶尖的iOS开发人员并在iThink#3上公开发表演讲的梦想将依然存在。

任何iOS开发人员都想参加WWDC会议。 当然,您可以争论:“有一个在线广播,真的不够吗?” 是的,有,但是我们要注意的是,在随机抽取比赛门票的情况下,比赛才刚刚结束! 这显然不是没有道理的。

不幸的是,在线广播的观众看不到整个活动的25%至30%,最重要的是,他们没有参加大师班和会议。 不幸的是,这些非常有趣的事件仍保留在在线广播的幕后,并且只有那些亲自参加会议的人才能使用。

只是为了在这个封闭的区域出现,来自世界各地的开发人员都参加了抽奖,并且晚上不睡觉等待结果。 在这里,他们被告知有关代码编写方面的重要更新和更改,并向他们介绍了将来将要使用的工具。

只有亲自参观该活动,您才能体会其价值。 毫不夸张地说,2019年WWDC是过去五年中最重要的事件。

通过它,访问者被告知,苹果公司已经完全改变了编写代码的技术,该技术已经开发了多年并且为我们所有人所熟悉,从而大大简化了代码。 这将迫使许多开发人员认真思考他们的工作方法,重新审视许多熟悉的事物。

我们想向您介绍iOS开发人员全球社区即将与之联系的实际任务。 具体来说,我们将在WWDC 2019上检查Custom Instruments和SF Symbols的用例和功能,并举例说明我们使用新工具的工作。

定制乐器


苹果公司去年展示了这种面向开发人员的专有“芯片”。 但是有关她的细节直到现在才知道。 在WWDC 2019会议期间,Apple专家向来宾详细介绍了自定义工具的工作原理,开发人员从中受益的方面以及最重要的是如何在实践中有效地应用它们。

去年推出的os_signpost跟踪程序是此工具箱中的主要跟踪程序。 他的主要任务包括创建简单的事件和间隔。

苹果还向开发人员介绍了低成本的os_signpost跟踪器。 据发言者说,它现在可以很容易地集成到最终版本中。 但是Apple程序员建议谨慎使用此工具,在跟踪过程中控制参数的数量,而不要滥用它们。

该工具包的体系结构如下:

  • 数据流 您可以使用os_signpost跟踪器解决将数据转换成输入表的问题,该问题可通过os_signpost跟踪器获得。 输入和输出表的结构在专门创建的XML文件中描述。 读写数据到表的过程是逐步的跟踪。
  • 造型师 它处理和分析输入表中的数据。 用特殊的CLIPS语言编写的Modeller本身有两个部分-声明式和命令式。 这恰恰是它的独特之处! 它处理新事件并转换数据。 使用Modeller,您可以执行自定义计算或将数据转换为开发人员所需的格式。 转换结束时,新值将保存在输出表中。 该过程称为“建模”。
  • 仪器仪表 在他们的帮助下,表中记录的信息将被读取并显示在屏幕上。 您可以使用XML表单控制显示格式。 是的,必须为此创建它。
  • 实用程序StandartUI。 负责读取和可视化输出表中的信息。


CloudKit + CoreData


这是最新的品牌“芯片”之一。 它负责以自动模式同步Core Data和Cloud Kit的任务。 要激活它,必须在项目开始之前标记必要的位置:



请注意,通知以及“功能”中的CLoudKit不会自动打开。 这将必须手动完成。



这是您工作的终点; Xcode将自动完成其余工作。 他本人将基于数据库和CloudKit创建一个用于聚合工作的容器。

另外,我们注意到,这个非常有用的新功能将在以前启动的项目中正确运行。 开发人员所需要做的就是创建一个新的Container,而不是现有的Container。 如您所见,旧项目中的同步过程现在变得更加容易。

SF符号


2019年WWDC上的这个主题引起了最多的问题,这并不奇怪,因为发言者实际上是疾驰而过。 如此简短的摘要如此简短,在会议嘉宾中引起了混乱。

许多访客认真考虑了以下问题:“ Apple为什么要展示和引入新角色? 确实,多年来,开发人员一直在充分利用熟悉的.png / .jpg / .pdf图像。” 是的,此方法有某些缺点,但是它对于UI开发人员来说非常熟悉,因此有充分的理由放弃它。

但是即使考虑到这一点,也不要低估Apple提供的新图标对于创建友好的用户界面的重要性。 在未成功选择图标之后,您可能会冒着该应用程序失去其本机性,对用户造成不便和难以理解的风险,这将不可避免地降低其受欢迎程度。

对于开发人员而言,正确理解和评估应用程序中图标的功能,其外观以及对用户可用性的影响非常重要。

为了更容易理解图标的用途,我们将它们分为三类:

  • 上下文分离;

  • 合并环境;


  • 视觉上下文匹配。


由于这种分离,我们意识到SF Symbols是专门为帮助图标的最佳选择而创建的。 请注意,Apple甚至为此https://developer.apple.com/design/human-interface-guidelines/sf-symbols/overview/开发了一个单独的应用程序,您可以在其中详细了解1,500个新字符。 为了方便开发人员,该应用程序具有搜索和可自定义的参数。 使用它们,您可以评估更改图标值时图标的外观。

好吧,如果在1500个字符中找不到所需的图标,则可以随时绘制自己的图标。 我们在指南中对此进行了说明

请注意,在应用程序中,您将创建图标的矢量图像,其中包括文本元数据。 也许有人使用矢量图形会很不寻常。 WWDC在创建新角色的过程中专门安排了一个单独的会话,这绝非偶然。 它清楚地表明,经过时间考验的旧图标已过时,并且已经失去作用。 如今,iOS开发中最相关的趋势是将符号视为UIFont。

实际上,如下。 无需使用项目中的图标,因为它们已集成到San Francisco系统字体中。 要创建字符,需要新的UIImage初始化程序:



该代码显示初始化程序之一收到一个新参数UIImage.Configuration 。 您可以将UIImage.SymbolConfiguration的后代UIImage.SymbolConfiguration参数的值传递UIImage.Configuration 。 请注意,配置是不可更改的,并且仅在使用apply applying(:) (https://developer.apple.com/documentation/uikit/uiimage/configuration/3294236-applying)时才能应用新参数。

使用配置,您可以更改:

  • 点大小
  • UIImage.SymbolScale;
  • UIFont.TextStyle;
  • UIImage.SymbolWeight;
  • UIFont。

我们将为您详细介绍每个项目。

点数

此参数负责字符的大小,并且还表明该字符不再是普通的PNG图像。 还要记住,从现在开始, Point size (CGFloat) != CGSize 。 因此,现在仅考虑点大小值的SF符号。 共享字符和文本时,这种关系清晰可见。





UIImage.SymbolWeight

如果需要像UIFont中那样更改字符的粗细或粗体,请UIImage.SymbolWeight使用UIImage.SymbolWeight参数。



SymbolConfiguration.init(字体:UIFont)

使用此选项非常简单。 使用它,您只需要选择所需的UIFont,然后系统将在“自动驾驶仪”上执行所有操作。



UIImage.SymbolScale

我们认为,这是最有争议的参数之一。 它执行的第一个功能是调整字符大小。 从这里开始乐趣。 事实是,现在我们有两个影响这一点的整个活动参数。 但是不要紧张!

根据实际经验,我们可以说这些参数不仅容易“相处”,而且可以完美地互补。 我们专门模拟了这种情况,并在实时情况下为我们的UIFont设置了相同的磅值。 他们发现屏幕上符号的大小在视觉上与文本的大小不同(它仍然大于或小于它的大小)。 为了简化工作,并且不使用新的SymbolScale值来创建其他配置,我们建议使用SymbolScale参数。 它将调整图像的大小而不更改其点大小。



UIFont.TextStyle

这是最容易使用的选项。 Apple开发人员建议在需要实现动态字体类型时使用它。

从我们的故事中可以清楚地看到,所提供的大多数更新旨在使应用程序开发人员重新考虑旧的工作方法。 尽管在我们看来,这只是您在不久的将来可能遇到的一小部分。 好吧,为了让创新不会让您感到惊讶,我们建议您在不久的将来开始其开发!

Source: https://habr.com/ru/post/zh-CN470736/


All Articles