Bandwidth Monitor v3.3.0

Bandwidth Monitor 3.3.0 is here! This release includes many improvements under the hood that pave the way for more features and fixes in the future. While it doesn’t have too many new and shiny features, you will appreciate the changes in everyday use.

Bandwidth 3.3 overview

Big performance gains

Bandwidth has been demanding a lot of processor time in recent releases — you may have noticed the graphs lag as they update and redraw.

I tracked down the root causes: charts were re-resolving colors on every redraw, and the engine was re-decoding every stored configuration from disk on every 5-second poll. Fixing both dropped observed baseline CPU usage from around 60% to 5–6% on one core, and cut each update cycle from around 150ms to under 70ms — more than twice as fast.

Migration to Swift 6

Bandwidth has been written in Swift from the beginning and migrating to newer versions of the language has always been part of keeping it maintained. Swift 5 was released in 2019, and it has been the first language version that stuck around for an extended period of time.

Swift 6 introduced strict concurrency checking to the Swift Concurrency system which turned potential data races into compile-time errors. In theory, this is an extremely helpful feature, but in practice it required extensive rewrites across the entire codebase. That is why I put it off, like a lot of other developers.

Swift 6.2 made the adoption of this new system feasible, and I took this chance to adopt it. The result is more performant calls across the entire app and compiler-guaranteed safety that should eliminate a whole class of concurrency-related crashes.

Requires iOS 26

I took a look at my analytics and found out that more of you are already running the iOS 27 Betas than there are users on iOS 17 and iOS 18 combined! I was aware that you are a very technical bunch, but this surprised me nonetheless.

I took this as a sign to drop iOS 17 and 18 altogether and adopt new APIs which leverage Swift Concurrency to make app-internal message dispatch even safer and more performant.

More improvements and bug fixes

Apart from these fundamental changes which took a long time to get right, you will find a few additions like an indicator for iCloud sync activity, and a note if the FRITZ!Box reports the connection as offline.

Non-Pro users are now able to use all their configurations again. Please excuse the erroneous deactivation of existing ones.

If you had trouble with iCloud sync behavior forgetting your passwords in the past or configurations getting shuffled around, that should happen less often now.

As always, thank you for using Bandwidth Monitor and for all the feedback you’ve been sending my way. If you have ideas for improvements, let me know — I read all your feedback.

Sören