A modern, fast, and intelligent SMS client for Android, built with Flutter. Messages parses and categorizes your SMS inbox on-device, offering instant access to OTPs and visual transaction tracking with Material 3 dynamic styling.
IT IS NOT FULLY FUNCTIONAL YET. I AM DEVELOPING IT. WELL YOU CAN CHAT, WITHOUT SENDING MULTIMEDIA.
💬 Personal Chats |
🧠 Smart Inbox |
✉️ Interactive Chat |
⚡ Notifications |
||
🎨 Material You Themes |
📱 Chat Bubbles |
|
- 🧠 Intelligent On-Device Classification: Automatically categorizes incoming and existing messages into:
- 🔑 OTPs: One-Time Passwords from various services.
- 💳 Banking: Financial credits, debits, and transaction information.
- 💬 Personal: Chats and messages from contact numbers.
- 📢 Promotions: Offers, discount alerts, and sales spam.
- 🛡️ Spam & Unknown: Automatic filtering of unrecognized sender IDs.
- ⚡ One-Tap OTP Actions: Detects OTP codes along with service names and expiration. Tap to copy immediately to your clipboard.
- 📊 Visual Transaction Tracker: Extracts financial figures (INR / ₹), debits, credits, and account endings. Renders beautiful debit/credit summary cards in your inbox.
- 🎨 Dynamic Material 3 Design: Fully supports Material You dynamic coloring (light/dark) utilizing your system color scheme.
- 💾 Local-First & High-Performance: Uses Isar Database for lightning-fast offline search, caching, indexing, and sync.
- 📱 Robust OEM Permission Handling: Gracefully handles permission lifecycles, with direct handling of default SMS handler requests and instructions for custom launchers (MIUI, HyperOS, Funtouch OS).
The project follows a clean feature-driven architecture:
graph TD
App([Msgs App]) --> Services
App --> Features
subgraph Services [Shared Services]
SmsRepo[SmsRepository]
Classifier[MessageClassifier]
OtpParser[OtpParser]
IsarDb[(Isar Local DB)]
end
subgraph Features [Feature Modules]
Inbox[Inbox: BLoC / Screen]
Permissions[Permissions Screen]
BankingWidget[Banking: Transaction Cards]
OtpWidget[OTP: Copyable Cards]
Settings[Settings & Theme]
end
SmsRepo --> IsarDb
Inbox --> SmsRepo
BankingWidget --> Classifier
OtpWidget --> OtpParser
lib/core/: Application themes, configurations, and utilities.lib/services/: Shared repository layers, local database models, and classification engines.lib/features/: UI modules organized by user features (Inbox, Conversation, Banking, OTP, Permissions).
- UI Framework: Flutter SDK (Material 3)
- State Management: Flutter BLoC & Provider
- Local Database: Isar (NoSQL local database)
- Animations: Flutter Animate
- Theme Styling: Dynamic Color
- Dependency Injection: Get It
- Flutter SDK (
>= 3.11.4) - Android SDK (configured for local emulation or physical devices)
-
Clone the repository:
git clone https://github.com/Najeer-k11/Messages-FlutterApp.git cd Messages-FlutterApp -
Install dependencies:
flutter pub get
-
Generate local database schemas (Isar): This project relies on
build_runnerto generate code for the database schema models.flutter pub run build_runner build --delete-conflicting-outputs
-
Run the application: Ensure you have an Android device or emulator running.
flutter run
All message processing, categorization, and pattern parsing happens strictly on-device. No messages or financial details are sent to external servers, protecting your privacy.
- SMS Permission: Required to read local SMS storage and receive incoming messages.
- Contacts Permission: Used to resolve contact names from phone numbers in your threads.
- Default SMS Handler: Optionally prompt to set
Msgsas the default SMS application to handle incoming SMS events.
see the LICENSE file for details.