A React Native focus timer app where a virtual cat keeps you accountable. Stay in the app during your focus session, or the cat gets angry! 😾
- ⏱️ Customizable Timer: Set your focus duration (1-180 minutes)
- 🐱 Virtual Cat Companion: Your cat waits for you and gets angry if you leave!
- 📊 Growth Tracking: View your complete focus session history
- 🔥 Streak Counter: Track your daily focus streak
- 🎨 Minimal Cartoonish Design: Beautiful, calming interface
- 💾 Persistent Data: All your progress is saved locally
- Name Your Cat: When you first open the app, give your cat a name
- Set Timer: Choose how long you want to focus (default: 20 minutes)
- Start Focus: Tap "Start Focus" to begin your session
- Stay in App: Keep the app open during your focus time
- Cat Gets Angry: If you exit the app, your cat gets angry and you have to start over! 😾
- Complete Session: Finish your focus to add to your history and streak
- Node.js (v14 or higher)
- npm or yarn
- Expo CLI (
npm install -g expo-cli) - Expo Go app on your phone (from App Store or Play Store)
-
Navigate to the project directory:
cd FocusCatApp -
Install dependencies:
npm install
-
Start the development server:
npm start
-
Run on your device:
- Scan the QR code with Expo Go (Android) or Camera app (iOS)
- Or press
afor Android emulator,ifor iOS simulator
FocusCatApp/
├── App.js # Main application component
├── package.json # Dependencies and scripts
├── app.json # Expo configuration
└── README.md # This file
- React Native: Cross-platform mobile development
- Expo: Development platform and toolchain
- AsyncStorage: Local data persistence
- AppState API: Detect when user exits the app
- Cat name storage
- Focus timer with countdown
- Session history tracking
- Streak calculation
- App state monitoring
- Shows complete focus session history
- Displays date, time, and duration of each session
- Persists across app sessions
- Currently shows "Coming Soon" toast message
- Placeholder for future feature (cat themes/skins)
- Displays current focus streak
- Increments with each completed session
- Shows streak count on tap
You can customize the app by modifying:
- Colors: Change background colors in
styles.containerandstyles.background - Timer Limits: Modify min/max values in timer input validation
- Cat Emojis: Change cat expressions in the
catEmojitext - Button Styles: Update
styles.startButtonand other button styles
expo build:androidexpo build:ios- Make sure you're testing on a real device, not in browser
- AppState API works differently on different platforms
- Check AsyncStorage permissions
- Clear app data and reinstall if needed
- Verify app is in foreground
- Check for any console errors
- Multiple cat themes/skins (Gallery feature)
- Sound notifications
- Cat animations
- Custom cat images
- Weekly/monthly statistics
- Achievement badges
- Dark mode support
- Widget support
Created with 🩷 by Rajat
MIT License - Feel free to use and modify for your own projects!
If you encounter any issues or have suggestions, please open an issue on GitHub or contact the developer.
Happy Focusing! 🐱✨