A modern, Android-first todo app with smart app-triggered reminders built with React Native and Expo.
- ✅ Smart Todo Management: CRUD operations with priority ranking and drag-and-drop reordering
- ⏰ Time-Based Reminders: Scheduled notifications at custom intervals
- 📱 App-Triggered Reminders (Android): Get reminded when opening specific apps
- 🎨 Theme System: Beautiful dark/light mode with smooth transitions
- 💰 Free/Paid Modes: Free tier with 2 app limit, paid with unlimited
- Framework: React Native 0.74+ with Expo SDK 51+
- Build System: Expo Development Builds
- Storage: react-native-mmkv (20-30x faster than AsyncStorage)
- State Management: Zustand
- Notifications: expo-notifications
- Animations: Moti (built on Reanimated 2)
- Drag & Drop: react-native-draglist
- App Detection: Custom native module using UsageStatsManager
- Node.js 18.18+ LTS
- npm or Yarn
- Android Studio (for Android emulator/SDK)
- Expo CLI:
npm install -g @expo/cli - EAS CLI:
npm install -g eas-cli(optional, for cloud builds)
-
Install dependencies:
npm install
-
Generate native directories (required for development builds):
npx expo prebuild
-
Start the development server:
npm start
-
Run on Android:
npm run android
targetz/
├── app/ # Expo Router screens
│ ├── _layout.jsx # Root layout
│ ├── index.jsx # Home screen
│ └── settings.jsx # Settings screen
├── src/
│ ├── components/ # Reusable UI components
│ ├── stores/ # Zustand state stores
│ ├── theme/ # Theme system
│ └── utils/ # Utility functions
├── app-detector/ # Native module for app detection
│ ├── app.plugin.js # Expo config plugin
│ └── android/ # Android native code
└── assets/ # Images, fonts, etc.
- TodoStore: Manages todos with MMKV persistence
- SettingsStore: Handles app settings and preferences
- AppDetectorModule: Native Kotlin module for app detection
- NotificationUtils: Handles notification scheduling
npx expo run:android --variant releaseeas build --platform android-
PACKAGE_USAGE_STATS: Required for app detection feature
- User must grant this manually in Android Settings
- The app will guide users to the settings page
-
Notifications: Required for reminders
- Requested automatically on first use
- Cold start: <2s
- List scrolling: 60fps
- Storage read/write: <1ms (MMKV)
- Battery drain: <2% per day with app detection
Private - All rights reserved