623498583c6da36760bc51baaa89c2fe
WWDC20 10160 - Formatters: 让数据更人性化

概述
如今,App 中存在着各种各样的数据。
随着国际化出海的进行,App 开发者不仅要保证产品在自己语言环境下各种数据有正确的格式,更要考虑在不同的语言,地区,环境下,数据格式的正确性。由于不同语言和地区有各种组合,也对格式提出了更高的挑战:比如说一个生活在阿联酋的法语用户,App 提供的数据的格式应该符合阿联酋当地的格式标准,而非法语中的格式。这些越来越复杂的情况,若没有工具,对开发者来说,是巨大的挑战,因为你很难通过自己的代码来实现所有环境下的所有格式。
幸运的是,Apple 提供给开发者 Formatter API,能够尽可能简单的解决数据格式的问题,在最新版本的 iOS,macOS,watchOS 和 tvOS 中,苹果也进一步提升了算法来改进这些复杂情况下数据格式的准确性。

日期和时间

DateFormatter 对处理日期和时间格式提供了非常强大的支持。

你可以使用简单的 Style 属性来设置想得到的格式,也可以通过更自由的 Template 来得到更复杂的格式。
Date Template 是由 Unicode 组织发布的统一的格式模板。而苹果作为 Unicode 组织成员,在 API 中提供了对 Template 的完整支持。
开发中如果需要一些比较复杂的日期时间格式,就可通过查找 Unicode Date Template 来找到符合自己需求的 Template,并将其传给 DateFormatter,剩下的所有工作,就会由系统 API 去完成,这无疑大大的减轻了开发者的负担。

度量衡


度量衡则是另一个常见且常用的数据类型。比如说,在苹果原生的天气应用中,你可以看到温度,速度,压力等数据,而这些数据的格式也会因为地区,语言的不同有不同的样式。
MeasurementsFormatter 则是苹果针对这种情况给出的一套完整的解决方案。在 WWDC 2016 年的 Measurements and Units 演讲中,具体说了应该怎么使用 MeasurementsFormatter,有兴趣的话,不妨回头重温一下当时的视频。

姓名


姓名尤其是英文名一直是 App 开发中一个太好处理的点。实际开发中,需要特别注意在不同的语言下,姓和名不同的格式,在一些情况下可能还需要缩写。NameFormatter 则可以让开发者免去手动处理的困扰。

近些年来,花押字(名字的首字母缩写)越来越流行,苹果也在 API 中提供了支持,开发者可以合理利用,显示合适的信息。

top Created with Sketch.