Welcome to Bouncer, a privacy-focused SMS filtering app for iOS devices. Utilizing the ILMessageFilterExtension, Bouncer organizes unwanted and specific messages into the "Junk", "Promotion", and "Transaction" sections of the Messages app.
Unlike other SMS filtering apps, Bouncer does not upload or send your SMS messages to a remote server — every filter decision happens on your phone. When you create, change, or delete a rule, the rule itself (the phrase, where to look, what it does) is sent to a server the developer controls, along with your general region and the time. A sender rule's phrase can be a phone number, so treat it like any other personal detail you choose to type into the app.
Bouncer checks messages against a user-defined blacklist, providing a personalized and clutter-free messaging experience.
- Filter SMS messages using a simple list of words
- Categorize filtered messages in iOS 16+ sections (Junk, Transaction, Promotion) and subcategories
- Unlimited filter rules
- Localized in English, Spanish, and more
- Support for both word lists and regular (PCRE) expressions
- Import and export filter rules
Version 2.x is available in the App Store.
Feeling adventurous? Join the beta test group in TestFlight.
The older 1.x version (UIKit-based) is no longer available in the App Store, but you can obtain the source code and build it from the 1.20 release.
Bouncer is written entirely in Swift and features:
- SwiftUI lifecycle (no storyboards or AppDelegate)
- Redux-like architecture
- Combine framework
- SwiftUI 2.x features and improvements
- Zero UIKit dependency
For more information on the architectural approach, check out the Redux-like architecture with SwiftUI series.
To build Bouncer, simply open Bouncer.xcodeproj in Xcode and click Build.
The production version of Bouncer stores basic analytics for filter creation/update/deletion, using a SupaDB backend.
Feel free to report any issues, fork the repo, and open pull requests with fixes, features, or updates.
Bouncer is distributed under the MIT license.