Oopsify is a modern, lightweight, and offline-first Android application designed to help users gracefully navigate awkward situations with humour. Whether it's a missed deadline, a late arrival, or a skipped social gathering, Oopsify provides a library of funny, creative, and believable excuses at the tap of a button.
Built with a focus on simplicity and a "clean aesthetic" UI, the app offers a smooth, engaging experience without requiring any internet connectivity.
Core Features
•Smart Excuse Generator: Instantly generates excuses with a delightful "typing" animation that brings the text to life.
•Categorised Library: Navigate through specific life situations including:
◦School: For homework and attendance mishaps.
◦Office: For meetings, deadlines, and Zoom calls.
◦Friends: For social battery drains and missed plans.
◦Family: For those inevitable relatives-related delays.
◦General: For everything else in between.
•One-Tap Share & Copy: Quickly copy any excuse to your clipboard or share it directly via WhatsApp, Telegram, or SMS.
•Favourites System: Save your most reliable excuses to a personal "Saved" list for quick access whenever you're in a pinch.
•Offline-First: Zero data usage. The entire excuse database is stored locally on the device, ensuring it works in basements, subways, or remote locations.
•Material 3 Design: A visually modern interface featuring soft shadows, rounded surfaces, and a vibrant color palette that feels at home on the latest Android versions.
Technical Highlights
•Language: 100% Kotlin.
•Architecture: MVVM (Model-View-ViewModel) for a clean separation of concerns and maintainability.
•Persistence: Room Database (processed via KSP) for ultra-fast local storage of favorites.
•UI Components: Material Design 3, ViewBinding for type-safe layout access, and ConstraintLayout for responsive design.
•Asynchronous Processing: Kotlin Coroutines for smooth typing animations and database operations without UI stutter.
•Data Management: Efficient pre-loading of data from local JSON assets on first launch.