$ show thatsmanmeet/Tasky
Tasky is a native Android todo and notes application written in Kotlin with Jetpack Compose. It provides task management with date/time reminders, daily repeating tasks, a recycle bin for deleted tasks, a notes feature, Material You dynamic theming, Lottie task-completion animations, sound effects, and offline zip-based backup/restore. The app is fully offline, privacy-first, and published on Google Play with multi-language string resources and fastlane metadata. Architecture is a single-module Android app following MVVM: three Room databases (todo, deleted todo, notes) with DAO/Repository/ViewModel layers, Jetpack Compose UI with Navigation Compose, DataStore for settings, and AlarmManager + BroadcastReceiver for notification scheduling. Boot and date-change receivers reschedule pending notifications. The primary data flow is: user creates task → Room insert → Compose observes Flow → UI updates; reminders are scheduled via exact alarms that fire a BroadcastReceiver posting a notification. Code quality is mixed. The structure is reasonable (clean package separation, Room schema exports with auto-migrations), but notable issues exist: duplicated notification-rescheduling logic between Recursor and BootCompletedReceiver, deprecated onActivityResult APIs, hardcoded UI strings bypassing string resources, allowMainThreadQueries on all Room databases, no meaningful tests (the instrumented test asserts the wrong package name and would fail), and a build.gradle referencing a stability_config.conf file that does not exist in the repository. The app was declared EOL and recently revived for minor updates only.
The LLM identified 3 files worth highlighting for reuse:
Self-contained DataStore preferences wrapper exposing typed Flow<Boolean?>/Flow<String?> for app settings (theme, clock format, sounds, animations, legacy pickers). Depends only on AndroidX DataStore and Context. Demonstrates the singleton DataStore + typed preference key pattern cleanly and can be extracted into any Android app needing persisted user preferences with reactive observation.
Manufacturer-specific auto-start settings launcher that maps OEMs (Xiaomi, Oppo, Vivo, Letv, Honor, Asus, Nokia, Huawei) to their autostart management activities via ComponentName intents. Solves the recurring Android problem of notifications being killed by OEM battery optimizers. Self-contained, guarded with try/catch, and directly reusable in any Android app needing to guide users to autostart settings.
Top-level utility functions (scheduleNotification, cancelNotification, setRepeatingAlarm, getTimeInMillis) implementing exact alarm scheduling for task reminders via AlarmManager.setExactAndAllowWhileIdle + PendingIntent + BroadcastReceiver, including cancellation and daily repeating alarm setup. This is the standard Android pattern for future-dated notifications and could be extracted into a reusable reminder scheduler by generalizing the Todo parameter to a simple reminder model.