一、什么是Widgets?
Widgets词典释义为“小组件”、“窗口小部件”,他不是一个全新的事物,而是早在10多年前,安卓手机就已经出现并进行应用了。
安卓系统的小组件与IOS14的widgets
比如IOS14原生的日历和天气widgets,都是一些很常用的功能,在手机桌面上就可以直接展示用户主要关心的关键信息,而这些信息绝不是一定非要打开APP才能使用的。
但从上面的图片可以看出来,安卓版本的widgets可以操作更多的功能,如搜索,播放音乐等等交互类功能,iOS版本只是一些功能的展示。功能的差异性会在后面的开发者需知里详细介绍。
二、开发须知
苹果并不希望开发者将 Widget 仅仅当作 app 的一个快捷入口,苹果基于上面的设计定位,同时也为了节省系统资源保证续航,对 Widget 的做了一些限制:通过苹果开发者文档creating-a-widget-extension也能看到苹果给了明确的声明
窗口小部件显示只读信息,不支持交互式元素,例如滚动元素或开关。 在呈现窗口小部件的内容时,WidgetKit会忽略交互式元素
主要限制如下:
- iOS14系统以上才支持
- 它只能使用SwiftUI进行开发,所以需要SwiftUI和Swift基础。
- Widget只支持3种尺寸systemSmall (2x2)、 systemMedium (4x2)、 systemLarge(4x4)
- 不支持动画(包括视频),仅支持静态页面展示。
- 更新频率由系统通过机器学习来动态分配。
- 不支持拖拽、滚动等复杂的交互,不支持 Switch 等控件。
- 用户点击 Widget 一定会跳转到 app。
- 无法主动更新数据 (重点,让所有交互型的逻辑都无法实现)
从上面的条例可以看出,小组件功能几乎做不了交互。小组件是一个可以大大提升使用体验的功能,但苹果明显不想开放太多的权限给小组件功能(更弱的交互能力),目前来说,小组件只有用来作为一些页面/信息展示这个场景下还有作用,感觉更像是为苹果自身的应用做一个使用场景,从开发者角度来讲对平台开发者并不友好,但苹果系统本身的体验还是提升了一个台阶,小组件的存在可以iOS14用户制作一些个性化精致的主题。
三、老的小组件开发方式
答案应该是会被废弃。
在 iOS 14 的开发套件里面,老的小组件开发方式已经被标注为过时,也即不推荐、随时会被废弃的内容。按以往的经验,标注为过时的方法是作为过渡时期的方案,并终将会被移除的。
四、后记
iOS 14的桌面小组件将重点放在了“信息展示”,而不是将其视为应用程序的“快捷方式”,进一步弱化了小组件的交互能力。对于这个Widget组件,我的感觉是好像有点用,但其实没啥用,因为交互性能太弱了,基本做不了任何东西,哪怕是一个switch点击也无法实现,仅仅可以做一些信息的展示,当然,如果你的app刚好有需要,那么iOS14小组件是个非常不错的选择,个人也期待比较好效果的开发,最后,希望苹果后续开通更多的权限来帮助小组件完成更强的应用体验!
参考文献:
Widgets
Creating a Widget Extension
Timeline
关于iOS14 widgets的尝新与思考
一次对 iOS 桌面的大手术,开发者怎么看 iOS 14 的 Widgets 变化
iOS14 Widget开发踩坑
如何进行 iOS Widget 开发?
网友评论