Swift on Flipper Zero — A Proof of Concept

Hey folks!

I've been able to successfully compile an app written in Swift for the Flipper Zero! I published the source code and a write up on my GitHub, for those who are interested.

I faced some of the same challenges that @rauhul mentioned in their blog post about building games for the Playdate, like mismatching memory layouts, which made it easier for me to recognize them. Overall, the process was still kind of painful, but the Rust for Flipper Zero project proved to be an excellent resource. I only ended up needing to make a minor change to the Flipper Zero firmware.

The Swift trunk dev toolchain builds don't seem to include clang runtime libs, so I am linking the libgcc that was part of the Flipper Zero toolchain because it provided the symbol I needed. @harlanhaskins suggested that the clang runtime is a missing piece.

It is really nice to see Swift running on Embedded devices without needing to build the language from source. The lack of Strings and debugger support do make it slightly challenging to develop with but I am really excited for the future of embedded Swift.

P.S. In case you end up building Swift apps for the Flipper Zero, I'd love to hear about them :)

37 Likes

This is fantastic, I'll look into linking to some of these community ports from swift-embedded-examples this week.

2 Likes

I've added a "Community Examples" section with a link to your project :)

4 Likes

Glad to see it there :)