Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swiftで広がるIoTの世界:Embedded Swiftを試してみよう!

Avatar for tussy5969 tussy5969
December 06, 2024
63

Swiftで広がるIoTの世界:Embedded Swiftを試してみよう!

Avatar for tussy5969

tussy5969

December 06, 2024
Tweet

Transcript

  1. 自 己 紹介 宮地 篤 士 / @tussy5969 • LINEヤフー株式会社

    iOSエンジニア • マップサービスの開発 • 船橋市在住 • 高 知→奈良→埼 玉 →千葉と移ってきました • 趣味: 弓 道、DIY、登 山
  2. Embedded Swift • 組み込み開発向けのSwiftサブセット 言 語 • メモリが限られているデバイス上でSwiftコードを動作させることが可能 • Swiftの

    一 部の 言 語機能や標準ライブラリの使 用 を制限して、コードサイズを 大 幅に縮 小 Swift Embedded Swift メモリ使 用 量 多い(MB単位) 少ない(KB単位) ランタイム依存 あり(動的機能をサポート) ない、または極 小 化 使 用 可能な標準ライブラリ 全て 一 部制限されている
  3. • Embedded Swiftで使える🙆 • Array、Bool、Integer、Dictionary、Collection、Setなど • Embedded Swiftで使えない🙅 • Mirror

    API(ランタイムリフレクション) 、Any(プロトコル型)、 Lazy Collections、weak referencesなど 詳しくは以下を参照👇 https://github.com/swiftlang/swift/blob/main/docs/EmbeddedSwift/ EmbeddedSwiftStatus.md Embedded Swiftでの使 用 制限
  4. 実際に動かしてみよう • 今回は公式が提供している「swift-embedded-examples」を参考 • https://github.com/apple/swift-embedded-examples • 使 用 するデバイス: ESP32C6

    • 2.4GHz Wi-Fi6、Bluetooth5などとの接続が可能 • Matter対応 • 秋 月 電 子 で 税込 1,040円 • https://akizukidenshi.com/catalog/g/g129481/
  5. 実際に動かしてみよう 事前準備(ダウンロード) • ESP-IDF • ESP32向けの公式の開発フレームワーク • Swift Toolchain •

    Embedded Swiftをビルドするために必要 • 通常のSwiftツールチェーンではなく、組み込みシステム向けに最適化され たものを使 用 する
  6. 実際に動かしてみよう ビルドをするために必要なファイル • BridgingHeader.h(変更なし) • C 言 語で書かれたベンダー製SDKを使うためのブリッジヘッダー • CMakeLists.txt

    (変更なし) • Swiftコードをビルドするための、CMakeロジック • Main.swift 👈 • 今回の実装を記述しているSwiftコード
  7. Matterを使ってホームアプリから制御してみる こちらも公式がチュートリアルを提供している • やること • デバイスをWi f に接続 • Toolchain,

    ESP-IDFのインストール • ESP-Matterのインストール • Matterプロトコルをサポートするフレームワーク • Dockerで環境構築も可能 • 30GB程度使 用 😇