5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

iOSDC Japan 2025: Hondaブースで活用したEmbedded Swift

Last updated at Posted at 2025-09-19

はじめに

Hondaはモビリティをもっと便利で楽しくするために、さまざまなデジタルプロダクトを開発しています。

  • 車に搭載された Android Automotive OS 上で動くアプリ
  • CarPlay、Android Auto で車のディスプレイに投影して使うアプリ
  • 車やバイクとスマートフォンをつなげて使うコンパニオンアプリ

これらのプロダクトを知っていただくために、国内の技術カンファレンスにも積極的に出展しています。

今回初めてiOSDC Japan 2025に協賛してブース出展しました。

ブースでは来場者の皆さんに楽しんでいただけるよう、ラジコンを使った縦列駐車ゲームを用意しました。

スマートフォンをコントローラーとして操作し、Bluetoothで制御しているラジコンを縦列駐車させるゲームです。

シンプルな操作ながら、正確さとスピードが求められるちょっと難しいゲームです。

image.png

IMG_0159.PNG

このラジコンは以下の要素で制作しています。

  • ラジコンのボディ
    • with Emile(エミル)を3Dプリンターで印刷して塗装
  • iOS用のコントローラーアプリ
    • SwiftUI
    • CoreBluetooth
    • CoreMotion
  • ラジコン側のBluetooth制御

Embedded Swift

マイコンや組込みシステム向けに Swift を使えるようにする技術、フレームワーク、ツール周りの集合体を “Embedded Swift” と呼ばれています。

Bluetooth 制御 × Embedded Swift でのメリット

ラジコンをRaspberry Pi Pico 2+Bluetoothで制御するという用途において、Embedded Swift を使うと次のような利点があります。

  • 安定性
    • Bluetooth の通信途中のバッファオーバーフローや不正なポインタアクセスなどが原因のクラッシュを未然に防げます
  • 既存ドライバの活用
    • 既存の Bluetooth モジュールの CやC++ ドライバがありますが、これを Swift 側でラッパーなしまたは最小限のラッパーで使えるようにし、モジュールの組み込みを容易にします
  • コードの可読性
    • Swift の言語機能などが使えるので、可読性・保守性がよくなります
  • 小さなバイナリ
    • マイコンにはリソース制約がりますが、Embedded Swift は小さなバイナリを生成することを目指していているので、Bluetooth スタックを載せた上で動作させるマージンが増えます

終わりに

iOSアプリ開発で慣れ親しんだSwiftの表現力や安全性が、組込みの領域でもそのまま活かせるのはとても魅力的でした。
iOSエンジニアにとって、組込みはもはや遠い存在ではないのかもしれません。


  • iOSはCiscoの登録商標であり、Apple Inc.がライセンスに基づき使用しています。
  • SwiftはApple Inc.の商標です。
  • AndroidはGoogle LLCの登録商標です。
  • BluetoothはBluetooth SIG, Inc.の登録商標です。
  • Raspberry Pi は Raspberry Pi Ltdの登録商標です。
5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?