SnapShort is a modern Android application that redefines screenshot management. By combining a robust screenshot tool with Google Gemini AI, SnapShort transforms your static snapshots into actionable tasks, helping you stay organized and productive.
- Clean Capture: Uses an Accessibility Service to dismiss the notification shade before capturing, ensuring clean, clutter-free images.
- Instant Preview: A non-intrusive, floating preview appears immediately after capture. Drag to dismiss or tap to edit.
- Smart Gallery: Automatically separates raw "Snaps" from processed "Tasks". Only view what needs your attention.
- Image Editor: Integrated editor with crop, zoom, and pan capabilities.
- Bulk Actions: Long-press to select multiple images for batch deletion.
- Snap-to-Task: Tap the "Star" button on any screenshot.
- Gemini Intelligence: Uses Google Gemini 1.5 Flash to analyze the text and context of your image.
- Auto-Fill: Automatically suggests a Task Title, Description, and Due Date based on the screenshot content.
- Task Persistence: Tasks are saved locally using a Room Database.
- Swipe Actions:
- Swipe Right to mark as Done/Active.
- Swipe Left to Delete (removes both the task and the image file).
- Organization: Filter by Active, Done, or All tasks.
- Language: Kotlin
- UI Toolkit: Jetpack Compose (Material 3)
- Architecture: MVVM (Model-View-ViewModel)
- Dependency Injection: Hilt
- Local Storage: Room Database
- Networking/AI: Google Generative AI SDK (Gemini)
- Image Loading: Coil
- Concurrency: Coroutines & Flow
SnapShort is built with scalability and modern Android standards in mind:
- Service Layer: A
ScreenshotTileServiceandAccessibilityServicehandle the system-level interactions required to capture the screen globally. - Data Layer:
ScreenshotRepository: Monitors the file system for new images.TaskRepository: Manages task metadata in SQLite (Room).GalleryViewModel: Merges these two streams to show a unified view.
- UI Layer: A single-activity architecture (
MainActivity) hosting a Jetpack Compose Navigation graph.
For a deeper dive, check out the Technical Architecture.
- Clone the repository:
git clone https://github.com/yourusername/snapshort.git
- Open in Android Studio: Ensure you are using a recent version (Koala or newer recommended).
- Build & Run: Deploy to an emulator or physical device.
- Note: To use the screenshot trigger, you must add the SnapShort tile to your Quick Settings panel and enable the Accessibility Service when prompted.
This project is licensed under the MIT License - see the LICENSE file for details.