Routinex (branded as My Routine Tracker) is a high-performance, offline-first productivity application built with modern Android development standards. It is designed to help users build lasting habits through structured daily routines, visual progress tracking, and a motivating streak system.
Core Purpose
The app serves as a digital companion for personal organization. It allows users to break down their day into manageable routines (e.g., "Morning Ritual," "Deep Work," "Gym Session") and track individual task completion to ensure nothing falls through the cracks.
Key Features
1.Multi-Routine Management:
◦Create and customize multiple routines for different parts of the day or specific goals.
◦Add an unlimited number of sub-tasks to each routine.
2.Interactive Daily Checklists:
◦A clean, "tappable" interface where tasks can be checked off.
◦Visual feedback including strike-through text and progress bar updates upon completion.
3.Intelligent Streak System:
◦Tracks daily consistency automatically.
◦Displays a "fire" emoji with the current count to gamify the experience and encourage daily usage.
4.
Advanced Progress Tracking:
◦Real-time percentage calculations on the home screen.
◦Uses Material 3 LinearProgressIndicator to provide a bird's-eye view of how much of a routine is finished.
5.100% Offline Reliability:
◦Uses a local Room Database. Your data never leaves your device, ensuring privacy and instant performance even without an internet connection.
Technical Architecture (MVVM)
The app is built using the Model-View-ViewModel pattern, which is the industry standard for scalable, testable Android apps:
•Model (Room DB): Defines the data structure for Routine and Task entities. It handles complex relationships, such as RoutineWithTasks.
•View (Fragments & XML): Uses ViewBinding for type-safe UI interaction and Material Design 3 for a modern, aesthetic look.
•ViewModel: Orchestrates the data flow. It survives configuration changes (like screen rotation) and ensures the UI always has the latest data.
•Repository: Acts as a mediator between the Database and the ViewModel, following the single source of truth principle.
•Navigation Component: Manages the screen flow (Home → Detail → Add/Edit) using type-safe arguments.
Design & UX Philosophy
•Minimalism: A "no-clutter" approach focused on the tasks at hand.
•Aesthetics: Uses a soft pastel color palette (e.g., Pastel Blue, Purple, and Pink) to reduce user anxiety and make the app feel welcoming.
•Responsiveness: Smooth transitions and animations (like the checkbox tick) make the app feel premium and "organic."