Apple stellt Swift für ESP32-C6 und andere Mikrocontroller vor
Mit Swift für Mikrocontroller hat Apple seine Programmiersprache bereit für IoT und das Smarthome gemacht.
- Carsten Wartmann
Swift ist eine seit 2010 bei Apple entwickelte Programmiersprache, die Konzepte von anderen Sprachen (wie Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, D …) aufgreift. Seitdem wird bei Apple Swift vermehrt genutzt. Auf der Entwicklerkonferenz WWDC 2024 wurde nun Swift für embedded Geräte und Mikrocontroller vorgestellt.
Bisher wird Swift bei Apple für Server, Desktops und mobile Geräte verwendet; jetzt soll sie auch auf Mikrocontroller und Smarthome-Geräte Einzug halten. Dabei soll es neben den normalen Applikationen auch für Kernel-Code und Libraries geeignet sein, bisher die Domäne von C und C++. Dabei sollen die Sicherheitsfeatures und die Speicherverwaltung Fehler vermeiden helfen. Wer es genauer wissen möchte, kann sich die Apples Vision für Swift anschauen.
Embedded Swift unterstützt die meisten Sprachkonstrukte von Swift auf größeren Architekturen. Bisher unterstützt Embedded Swift die Mikrocontroller ESP32-C6, Raspberry Pi RP2040, STM32F7 und nRF52840. Beispiele für die Plattformen gibt es schon auf GitHub. Am weitesten ist die Unterstützung für den RISC-V-Mikrocontroller Espressif ESP32-C6. Im Gegensatz zu etwa Python oder Basic auf Mikrocontrollern muss aber Swift compiliert werden, dazu braucht es ein Entwicklungssystem auf C/C++ Basis und das Entwicklungskit des Hardwareherstellers. In dem Video auf der Website von Apple wird das Espressif-SDK mit dem SP32-C6-DevKitC-1-Entwicklungsboard von Espressif benutzt.
Empfohlener redaktioneller Inhalt
Mit Ihrer Zustimmmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.
Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.
Das zweite Beispiel nutzt dann auch die LED auf dem Board, um diese durch Swift zu steuern, das klassische "Helloworld" auf Mikrocontrollern. Dazu wird ein sogenannter Bridging Header (BridgingHeader.h) verwendet, der die SDK-C-APIs in Swift zur Verfügung stellt. Damit greift man dann praktisch direkt über die Hardware auf die Features des Boards zu und kann die LED blinken lassen. Das ist natürlich bis jetzt nicht wirklich elegant und auch fehlerträchtig, also kann man die Hardware in einem weiteren Layer (oder Library) abstrahieren. Leider hat man bei einer neuen Programmiersprache noch keine fertigen Libraries und muss viel selbst schreiben oder darauf hoffen, dass dies andere Entwickler tun. Das kann man dann auch, wie in dem Video demonstriert, für eine Matter C++ API machen und so ein IoT-Gerät entwickeln (im Video eine „smarte“ IoT-Led-Lampe).
Somit bleibt wohl als Zielgruppe für Embedded-Swift nur der eingefleischte Apple-Programmierer, der für das Apple-Universum passende Geräte programmieren will (oder muss). Maker und Gelegenheitsprogrammierer werden bei C/C++, Arduino, MicroPython oder gar Basic bleiben. Die letzteren beiden Sprachen werden sogar interpretiert und wenn Geschwindigkeit nicht die entscheidende Sache ist, lassen sich mit ihnen Programme rasch auf das Board bringen.
(caw)