Notilog is a Flutter-based Android notification history app. It captures device notifications through Android's NotificationListenerService and stores them locally so users can view recent notification history even after notifications are dismissed.
- Captures posted notifications from apps and system sources.
- Stores notification data locally on the device.
- Shows a searchable notification timeline sorted by newest first.
- Supports app-based filtering and category tabs such as
All,Installed,System Apps, andOthers. - Lets users open a detail screen for full notification content.
- Supports deleting a single notification or clearing history.
Each saved notification contains:
idappNamepackageNametitlemessagetimestampappIcon
The app is intentionally limited to recent history only. Notifications older than 24 hours are removed automatically.
The Android side uses NotificationListenerService to receive posted notifications in real time.
When a notification arrives, the native layer:
- extracts app name, package name, title, message, timestamp, and app icon
- pushes the event to Flutter when the app is running
- writes the event into a native local buffer so notifications are not lost while the app is closed
The native buffer keeps only the last 24 hours of notification data.
This is important because:
- the app can stay unopened for a long time without the buffer growing forever
- old data is pruned even while the Flutter UI is not running
- startup remains safer because the app only drains recent entries
When the app opens, Flutter drains the recent native buffer and stores entries in Hive.
Hive is used as the local persistence layer for:
- fast local reads
- simple object storage
- offline access with no backend
The repository also prunes expired entries from Hive, so only the last 24 hours remain in local history.
Home screen:
- shows notification history in a lazy
ListView - displays app icon, title, message preview, and time
- includes search and filter controls
Detail screen:
- shows full notification content
- includes app icon, app name, and timestamp
- supports long content with scrolling
The app supports:
- search across title and message
- filter by app name
- category tabs for installed apps, system apps, and device/system activity
The Others tab is intended for system-level or background-style notifications such as:
Responsibility split:
- models define the saved notification shape
- services handle platform channel communication, retention, and storage logic
- screens render the app flow
- widgets hold reusable UI pieces
- This app does not block notifications or interfere with the system notification tray.
- All data is stored locally on-device.
- There is no external backend, cloud sync, or Firebase integration.
Suraj Chaurasia