Swift Matter 示例

使用嵌入式 Swift 构建 Matter 配件

概述

此存储库包含一个简单的嵌入式 Swift 应用程序示例,该应用程序实现了 Matter 智能灯配件,可以从 HomeKit 使用。 这些示例使用 ESP32-C6 或 ESP32-C3 (RISC-V) 微控制器,并构建在 ESP-IDF 和 ESP-Matter SDK 之上。

注意

此存储库与 WWDC24 会议 10197 相关:使用嵌入式 Swift 缩减规模

嵌入式 Swift

嵌入式 Swift 是 Swift 的一个子集,专为受限环境而设计,例如嵌入式设备、内核代码和其他底层系统。 它包括大多数 Swift 语言特性,例如泛型、值类型和引用类型、可选类型、错误处理等。 嵌入式 Swift 将 Swift 的安全性和表现力引入通常由 C 或 C++ 代码主导的环境。 要了解更多信息,请参阅嵌入式 Swift 的愿景

Matter

Matter 是一个用于构建智能家居配件的开放标准,由许多智能家居生态系统(例如 HomeKit)原生支持。 有关 Matter 的更多信息,请参阅 Matter 文档

其他资源

入门

文档

有关包含详细说明的综合教程,请参阅项目文档

要求

在运行示例之前,请确保您拥有以下工具

重要提示

这些示例专为来自 macOS 和 Linux 主机系统的 Espressif C6 开发套件而设计。 其他配置可能有效,但未经测试。

快速入门指南

重要提示

我们强烈建议您按照提供的教程进行操作。

确保您的 shell 可以访问上面列出的工具,有关其他设置说明,请参阅在 macOS 上开始使用 Docker 在 Linux 上开始

  1. 克隆存储库并导航到其中一个示例。
$ git clone https://github.com/apple/swift-matter-examples.git
$ cd swift-matter-examples/smart-light
  1. 为您的微控制器配置构建系统,smart-light 示例也应该可以在 esp32c3 上运行。
$ idf.py set-target esp32c6
  1. 构建应用程序并将其部署到您的设备。
$ idf.py build flash monitor

探索实现,有关指导性演练,请参阅探索 LED 闪烁示例探索智能灯示例

为 Swift Matter 示例做出贡献

此存储库旨在演示如何将嵌入式 Swift 用于不同的应用程序,并以 Matter 为例。 欢迎提交演示如何调整 Swift 语言或工具以适应此应用程序的 PR。 它不打算成为功能齐全的 Matter SDK,因此请不要提出 PR 将 Matter Swift 覆盖扩展到新领域。

行为准则

与所有 Swift.org 项目一样,我们希望这些嵌入式 Swift 示例项目能够培养一个多元化且友好的社区。 我们希望贡献者遵守Swift.org 行为准则

联系方式

该存储库当前的 code owner 是 Kuba Mracek (@kubamracek), Rauhul Varma (@rauhul), 和 Philippe Hausler (https://github.com/phausler)。 您可以通过 Swift 论坛上的用户名 @kubamracek, @rauhul, 和 @Philippe_Hausler 与他们联系。

如果出现审核问题,您还可以直接联系 Swift 核心团队 的成员。