使用嵌入式 Swift 构建 Matter 配件
此存储库包含一个简单的嵌入式 Swift 应用程序示例,该应用程序实现了 Matter 智能灯配件,可以从 HomeKit 使用。 这些示例使用 ESP32-C6 或 ESP32-C3 (RISC-V) 微控制器,并构建在 ESP-IDF 和 ESP-Matter SDK 之上。
注意
此存储库与 WWDC24 会议 10197 相关:使用嵌入式 Swift 缩减规模。
嵌入式 Swift 是 Swift 的一个子集,专为受限环境而设计,例如嵌入式设备、内核代码和其他底层系统。 它包括大多数 Swift 语言特性,例如泛型、值类型和引用类型、可选类型、错误处理等。 嵌入式 Swift 将 Swift 的安全性和表现力引入通常由 C 或 C++ 代码主导的环境。 要了解更多信息,请参阅嵌入式 Swift 的愿景。
Matter 是一个用于构建智能家居配件的开放标准,由许多智能家居生态系统(例如 HomeKit)原生支持。 有关 Matter 的更多信息,请参阅 Matter 文档。
有关包含详细说明的综合教程,请参阅项目文档。
在运行示例之前,请确保您拥有以下工具
重要提示
这些示例专为来自 macOS 和 Linux 主机系统的 Espressif C6 开发套件而设计。 其他配置可能有效,但未经测试。
重要提示
我们强烈建议您按照提供的教程进行操作。
确保您的 shell 可以访问上面列出的工具,有关其他设置说明,请参阅在 macOS 上开始或使用 Docker 在 Linux 上开始。
$ git clone https://github.com/apple/swift-matter-examples.git
$ cd swift-matter-examples/smart-light
smart-light
示例也应该可以在 esp32c3
上运行。$ idf.py set-target esp32c6
$ idf.py build flash monitor
探索实现,有关指导性演练,请参阅探索 LED 闪烁示例和探索智能灯示例。
此存储库旨在演示如何将嵌入式 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 核心团队 的成员。