Mobile: A different way using Rust?

Christian Kjær
9 min readJun 25, 2024

Not a Medium member? Read the post here for free.

After having spent the better part of two months deep in the trenches of iOS development with Swift, I can comfortably say: Web Development simply is more mature.

Let’s just run over a few things I ran into that’s bad, broken, or made for a poor experience:

  • A lot of issues with data handling in general◦ Turning iCloud on when using SwiftData will restrict core functionality such as the ability to have unique IDs on your data, meaning everyone now has to handle duplicates
    ◦ iCloud (CloudKit) and data migrations don’t work really work, it just won’t run it making data changes in your models quite the chore
    ◦ SwiftData generally has very bad performance, both in reads, writes, and inserts
    ◦ It’s quite hard to control memorization and rendering performance (e.g. @Query in your View)
  • Swift itself is a bit of an eh language — it has many good parts and ergonomics, but also some weird design choices that make scaling codebases messy such as everything by default living in the global namespace and file names can’t clash
  • SwiftUI is generally great, except when you want to do anything non-standard, in which case you’ll quickly feel the pain
  • The feedback loop is slow: If you can run things in the Preview that’s the fastest, otherwise it’s a full Compile→Run→Simulator loop
  • UI performance issues are very easy to sneak in, and very hard to track down

--

--

Christian Kjær

Founder of codetalk.io and blogging on codethoughts.io 👀 •• Rust/Serverless ❤️ Previously: Director of Eng at Famly 🌱 Built IoT platform at Factbird ☁️