iOS14-Widget开发、SwiftUI应用

本文介绍了iOS14及更高版本的Widget开发,包括使用SwiftUI、Widget流程、主工程与Widget的数据共享,强调了SwiftUI的核心原理和响应性,以及Widget用户交互的方法。实战经验中分享了TimelineProvider的使用技巧,如异步数据处理限制,以及Widget UI开发注意事项。
摘要由CSDN通过智能技术生成

背景

  • 大民哥带给你京南 互联网大厂千万级日活项目iOS14Widget(小组件)实战经验分享,玩转iOS14及以上的Widget这一篇文章就够了。
  • 我们最关心的:
    Widget是如何处理数据刷新的?
    Widget什么时候网络请求?
    Widget与主App之间如何信息共享、如何通信?
    主App如何控制Widget数据刷新?
    WidgetKit、SwiftUI使用注意事项?
    Widget与主App之间用户交互注意事项?
  • 根据业界的调研,一般人每天看手机屏幕在90次以上,大部分是为了浏览自己的数据,而每次浏览不过数秒,如果一个app启动缓慢或者看到的是满屏菊花,那这样的App估计要在冷宫了。还有我们浏览个人的数据可能就不怎么想打开App,比如看自己买的股票、基金走势,或看圈里自己发布的东西评论 等等简明扼要的内容。为满足这部分不想打开App也想看到部分内容的用户需求,Apple的Widget诞生了。

前景

Widget非常适合移动终端,移动终端屏幕相对较小,打开APP却占用了有限的屏幕资源,导致手机上网用户体验较差。Widget不仅可以独立于APP运行,有效地利用手机屏幕,而且可以更加快速直接方便地访问移动互联网。 Widget给手机用户带来良好的呈现方式和互联网体验,可提升流量的转化。

  • 屏幕多元化
  • 独立于App运行
  • 直观体验好
  • 待开发潜力大
  • 提升流量转化

准备

基础

iOS14的Widget开发需要有以下相关基础,

  • Swift
  • SwiftUI
  • WidgetKit

因为WidgetExtension 使用的是新的WidgetKit不同于Today Widget,它只能使用SwiftUI进行开发,所以需要SwiftUI和Swift基础。
Apple官方已经弃用Today Extension,Xcode12已经不再提供Today Extension的添加,已经有Today Widget的应用则会显示到一个特定的区域进行展示。

认识

iOS中的Widget目前只支持三种尺寸样式:

屏幕尺寸

小-systemSmall(pt) 中-systemMedium(pt) 大-systemLarge(pt)
414x896pt (XR/XsMax/11/12/13/所有 ProMax) 169x169 360x169 360x379
375x812 pt (X/Xs/所有 Pro) 155x155 329x155 329x345
414x736 pt (6p/6sp/7p) 159x159 348x159 348x357
375x667 pt (6/6s/7/8) 148x148 321x148 321x324
320x568 pt (5/5s/SE) 141x141 292x141 292x311

样式

systemSmall(2x2)systemMedium(4x2)systemLarge(4x4)
请添加图片描述

Widget流程

请添加图片描述

创建Widget

  • Xcode的File -> New -> Target -> Widget Extension
    在这里插入图片描述
  • 命名根据公司项目命名规范即可
  • 如果Widget需要支持用户配置的话,命名完需要勾选下面的Include Configuration Intent
  • ⚠️:如果一个widget在版本1不支持用户配置,但版本2突然需要版本配置,app在覆盖安装的时候widget不会生效,实践经验所得,4x4的Large尺寸的widget,最好一开始就创建可用户配置,否则后续需要用户配置的版本迭代,用户需要主动重启手机才有效

OC主工程混编Swift

注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

☆MOON

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值