finds.dev← search

// the find

SwiftKickMobile/SwiftMessages

★ 7,557 · Swift · MIT · updated Jan 2026

A very flexible message bar for UIKit and SwiftUI.

SwiftMessages is a UIKit/SwiftUI message presentation library for iOS — banners, cards, bottom sheets, modal-style alerts. It handles the surprisingly painful parts: queueing, deduplication, dimming, gesture dismissal, keyboard avoidance, and VoiceOver. If you need toasts or non-modal alerts in an iOS app, this is the most complete off-the-shelf option available.

The message queue with deduplication via `Identifiable` is genuinely useful — you can call `show()` from multiple code paths without stacking duplicate messages. The `SwiftMessagesSegue` for full view controller presentation is a clever extension of the concept that most libraries skip entirely. Physics-based dismiss gesture adds real tactile quality without you writing a UIDynamicAnimator. The SwiftUI integration is done properly — both imperative (`SwiftMessages.show()`) and declarative (`.swiftMessage()` modifier) paths exist, with an `@Environment` dismiss action that follows SwiftUI conventions instead of reaching out to a singleton.

The nib-file customization story is showing its age — copying `.xib` files into your project and subclassing `MessageView` is UIKit-era workflow that feels out of place when you're building a SwiftUI app. The test suite is essentially empty (one file, minimal coverage), which matters when you're depending on this for production alert flows. `SwiftMessagesSegue` requires Interface Builder storyboards for its documented setup path, which is a real friction point for code-only projects. The README mentions Xcode 26 compatibility in a fire-emoji banner but the podspec and topics still reference `swift4` and `ios11`, suggesting the project metadata hasn't kept pace with actual maintenance.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →