IOS系统|支持高度自定义的 iOS 14 小组件制作工具:OneWidget

Matrix精选
文章代表作者个人观点 , 少数派仅对标题和排版略作修改 。
OneWidget是一款支持在iOS14上自定义小组件显示内容的工具 , 支持设置的内容有时间、习惯、待办事项、生命倒计时等等 。本文除了OneWidget的产品介绍外 , 还包括了我在开发OneWidget的过程中对相关iOS14小组件的技术讨论 , 如有错误欢迎指出 。
IOS系统|支持高度自定义的 iOS 14 小组件制作工具:OneWidget
文章图片

文章图片

iOS14小组件该怎么用
OneWidget在内测期间有超过1万人参与TestFlight测试 , 由于Apple对小组件的引导和教育做得并不明显 , 导致很多用户并不知道如何添加小组件 , 更不知道如何配置小组件 。所以 , 本文先对iOS14小组件做一个知识普及 。
一个应用可以拥有多个不同尺寸的小组件
小组件允许三种尺寸:小、中、大 , 分别对应4、8、16个图标所占据的范围 。在Apple内置的应用中 , 我们已经看到这些案例 。需要注意的是 , 支持什么尺寸、提供多少个小组件目前是可以由开发者决定的 。
IOS系统|支持高度自定义的 iOS 14 小组件制作工具:OneWidget
文章图片

文章图片

动态小组件可以在不打开应用的情况下配置数据
小组件以是否可以配置 , 分为「静态小组件」和「动态小组件」 。区分它们的方法很简单 , 长按小组件如果出现「编辑小组件」就表明该组件可以配置数据 , 是「动态小组件」 。
动态小组件在配置数据时 , 无须打开主应用就能完成数据的选择和结果呈现 。比如备忘录可以选择显示哪一个备忘文本、股票小组件可以选择哪一个公司等 。如果小组件可以根据数据显示不同的样式 , 那么就能做到数据选择后 , 改变小组件的样式 , OneWidget就是这样完成了组件样式的改变 。
IOS系统|支持高度自定义的 iOS 14 小组件制作工具:OneWidget
文章图片

文章图片

同一个小组件可以被添加多次展示不同的数据
再者 , 我们可以对同一个小组件添加多次 , 系统没有对于同一款小组件有添加次数方面的限制 。你可以把一个组件添加很多次 , 而每一次选择不一样的数据 。比如 , OneWidget的小尺寸组件 , 每一次添加可以选择不同的类型展示 。有了这些特点 , iOS14小组件在使用上有很多个性化的方法 , OneWidget的灵感即来源于此 。
iOS14小组件的一些使用问题
Apple对Widgets开发的API限制非常多 , 这导致很多用户在原有TodayWidget可以拥有的体验大量消失 。为了避免用户对「开发者」的误解 , 下面罗列一些供大家参考的信息 。
时钟类型的延迟问题
小组件只能通过一个叫做Timeline的接口进行刷新 , 但是它并不能做到完美的以秒刷新 , 而且对刷新的次数有要求 。这就导致开发者只能通过较高的频率和有限的时间范围刷新小组件 , 时钟类型的小组件很容易遇到延迟和停止的情况 。
无法及时刷新数据
同样 , 如果某些数据是基于系统 , 比如健康、日历 , 开发者无法在数据被更新后及时同步到小组件 , 用户在日历里添加了数据 , 第三方组件是无法立刻刷新获取这些数据的 , 需要打开该第三方应用进行刷新 。OneWidget的日历、日程和未来的健康数据小组件也是如此 , 大家在使用时候注意及时打开主应用进行一次刷新 。
无法展示动画效果
小组件所呈现的界面 , 在接口里叫做「Snapshot」 , 也就是快照截图 , 所以它无法实现动画效果 。有很多用户建议制作翻页时钟 , 在新的iOS14小组件里是无法实现的 。
无法设置透明效果


推荐阅读