了解 watchos 26 的新功能,以及如何将这些功能整合到你的 watchos 和 ios app 中。探索 arm64 架构,并深入了解全新设计系统。我们还将介绍小组件方面的更新,并就如何将控件引入 apple watch 提供一些建议。

视频封面
视频地址

此文章由AI生成,可能存在错误,如有问题,请联系djs66256@163.com

watchOS 26 新特性全面解析

苹果在 watchOS 26 中带来了众多令人期待的新功能和技术革新,这些改进将极大地丰富 Apple Watch 用户的体验,同时也为开发者提供了更多展示应用价值的机会。

设计系统与架构革新

watchOS 26 采用了全新的设计语言,整个操作系统的视觉呈现全面升级。这一变化包括材质与控件的更新、应用图标的全新设计,以及表盘、控制中心等系统界面的改进。值得注意的是,所有为 watchOS 10 及以上版本构建的应用将自动适配新样式,保持与系统整体风格的统一性。

在架构方面,Apple Watch Series 9、Ultra 2 及后续机型在 watchOS 26 中启用了 ARM64 架构。开发者需要在 Xcode 中为 Apple Watch 目标使用标准架构构建设置,以确保应用兼容所有 Apple Watch 架构。特别提醒开发者注意 ARM64 上的类型差异,尤其是 Float 和 Int 类型的使用以及指针计算。

控件与智能叠放的新机遇

watchOS 26 引入了控件功能,允许用户将控件添加到控制中心和智能叠放,还能与 Apple Watch Ultra 的操作按钮配合使用。这些基于 WidgetKit 构建的控件,让用户无需打开应用就能快速执行操作或跳转到特定界面。

开发者需要根据应用的主要目的选择合适的内容呈现方式:

  • 控件:适合执行操作(如更改应用设置)
  • 小组件:适合持续显示信息(如天气预报)
  • 实时活动:适合有明确起止时间的事件(如体育比分)

智能叠放现在支持控件、小组件和实时活动三种形式。对于健身类应用,系统可以根据用户的锻炼习惯在智能叠放中推荐应用,用户点击即可快速开始锻炼。开发者需要正确指定 HKWorkoutActivityType、记录准确的锻炼时间,并使用 HKWorkoutRouteBuilder 添加位置信息,以确保系统正确推荐。

增强的配置能力

watchOS 26 允许用户自定义小组件和控件。开发者可以通过返回空建议数组的方式,让小组件变得可配置:

func recommendations() -> [AppIntentRecommendation<BeachConfigurationIntent>] {
  return []
}

对于控件,开发者可以使用 AppIntentControlConfiguration 来提供额外的配置选项:

struct ConfigurableMeditationControl: ControlWidget {
  var body: some ControlWidgetConfiguration {
    AppIntentControlConfiguration(
      kind: WidgetKinds.configurableMeditationControl,
      provider: Provider()
    ) { value in
      // 控件内容
    }
    .displayName("海洋冥想")
    .description("可选海浪声的冥想计时器")
    .promptsForUserConfiguration()
  }
}

MapKit 与位置相关体验

watchOS 26 的 MapKit 新增了多项实用功能,包括搜索兴趣点、获取路线信息以及在 SwiftUI 地图上叠加路线。这些功能通过熟悉的 iOS API 实现,对于需要查找附近地点并显示路线的独立 Watch 应用特别有用。

通过全新框架 RelevanceKit,应用可以根据上下文线索(如日期、睡眠习惯、健身信息和位置)在最合适的时机显示相关内容。小组件还能与 MapKit 兴趣点类别关联,当用户身处特定地点类型时,对应小组件会自动变得相关。

开发者可以这样为 MapKit 兴趣点类别创建位置 RelevantContext:

func relevance() async -> WidgetRelevance<Void> {
  guard let context = RelevantContext.location(category: .beach) else {
    return WidgetRelevance<Void>([])
  }
  return WidgetRelevance([WidgetRelevanceAttribute(context: context)])
}

相关小组件与推送更新

watchOS 26 引入了专为智能叠放设计的相关小组件。与传统时间线小组件不同,相关小组件允许系统根据特定上下文建议多个视图,解决活动时间重叠导致的视图截断问题。

构建相关小组件需要创建 RelevanceEntry、实现 RelevanceEntriesProvider 的 relevance 方法,并使用 RelevanceConfiguration。为避免重复显示,开发者应在 RelevanceConfiguration 中添加 associatedKind 修饰符,关联时间线小组件的 kind。

另一个重要改进是推送更新功能。从 watchOS 26 开始,开发者可以使用 APNs 推送小组件更新,所有支持 WidgetKit 的 Apple 平台都支持此功能,为需要复杂推送的应用提供了更多可能性。

总结与展望

watchOS 26 为开发者提供了丰富的新工具和机会,包括:

  • 全新设计系统和 ARM64 架构支持
  • 控件功能和智能叠放增强
  • 可配置的小组件和控件
  • 增强的 MapKit 功能和位置相关体验
  • 相关小组件和推送更新功能

开发者应尽快在 watchOS 26 上测试应用,确保风格协调且完美支持新架构。尝试在 Apple Watch 上使用 iOS 控件,构建相关小组件,并用推送通知保持数据最新。这些新特性将帮助开发者在更多系统场景中创造价值,为用户提供更丰富、更贴心的 Apple Watch 体验。

相关视频

了解 Liquid Glass
使用 Icon Composer 构建图标
小组件的新功能
将 App 控制扩展到系统级别
认识 SwiftUI 版 MapKit
进一步了解 WidgetKit 中的复杂功能

文档

创建跨系统执行操作的控件
提升智能叠放中小组件的可见性
制作可配置的小组件
MapKit
锻炼与活动圆环