A beautifully designed React Native habit tracker with RPG-style gamification and native platform integration
- Flexible Scheduling: Daily, weekly, monthly, or custom frequency patterns
- Positive & Negative Habits: Track both habits you want to build and behaviors to avoid
- Smart Reminders: Optional notification system to maintain consistency
- Multi-count Tracking: Support for habits that can be completed multiple times per day
- XP & Leveling: Earn experience points for every completed habit
- Tier System: Progress through Bronze โ Silver โ Gold โ Platinum โ Diamond tiers
- Streak Tracking: Visual fire indicators showing consecutive completion days
- Achievement System: Unlock badges for milestones like "7-day streak" or "100 habits completed"
- Virtual Currency: Earn coins to unlock future avatar customizations and themes
- Daily Challenges: Bonus XP opportunities with specific daily goals
- Visual Progress Bars: See your advancement toward the next level
- Weekly Activity Charts: Bar charts showing habit completion patterns
- Habit Performance: Individual completion rates for each habit
- Stats Dashboard: Track total completions, longest streaks, and coins earned
- Platform-Native Tabs: Uses iOS's native tab bar and Android's Material tabs
- Adaptive Theme: Automatically switches between light and dark mode based on system preference
- SF Symbols on iOS: Native iOS icons for authentic feel
- Material Icons on Android: Consistent Material Design across Android
- Dynamic Colors: Full support for iOS Dynamic Colors and Android theme colors
- Today: Daily overview with habit checklist, challenges, and progress percentage
- Habits: Manage all habits with filtering by type (positive/negative)
- Progress: Detailed statistics with XP visualization and performance charts
- Achievements: Browse unlocked and locked achievements with progress tracking
- Profile: User level, tier badge, avatar customization, and settings
- Framework: Expo ~54.0
- Language: TypeScript 5.9
- Navigation: Expo Router 6.0 with file-based routing + Native Tabs
- UI Components: React Native with platform-specific icons
- Theme System: Dynamic light/dark mode following system preference
- State Management: React hooks (useState, useEffect)
- Date Handling: date-fns 4.1
- Storage: AsyncStorage (ready for local data persistence)
The app features a comprehensive theme system that automatically adapts to the system's appearance:
- Clean white backgrounds with subtle gray cards
- Black/dark gray text for optimal readability
- Vibrant indigo primary color (#6366F1)
- Warm gold for XP and rewards
- Fresh colors for success, warning, and error states
- True black background (#000000) for OLED efficiency
- Pure white text for maximum contrast
- Softer indigo primary color (#818CF8)
- Maintains tier colors with slight adjustments
- Reduced opacity for better dark mode experience
All colors are defined in constants/Colors.ts with semantic naming:
- Core: background, foreground, card, primary, secondary
- Status: success, warning, destructive, info
- Gamification: xp, streak, bronze, silver, gold, platinum, diamond
- Node.js 18+
- npm or yarn
- Expo CLI
- iOS Simulator (Mac) or Android Emulator
# Clone the repository
git clone https://github.com/PrimeCodeWhisperer/habitquest-native.git
cd habitquest-native
# Install dependencies
npm install
# Start the development server
npm start# iOS
npm run ios
# Android
npm run android
# Web (experimental)
npm run webThe app currently uses comprehensive mock data including:
- 6 sample habits with various frequencies and types
- 30 days of historical completion data
- 6 achievements (4 unlocked, 2 in progress)
- 2 daily challenges
- User progress at Level 12, Silver tier
This version is fully functional with mock data. Backend integration points are prepared but not implemented, allowing you to:
- Test all UI flows and interactions
- Explore the gamification mechanics
- Evaluate the user experience
- Connect to your preferred backend solution later
habitquest-native/
โโโ app/
โ โโโ (tabs)/ # Tab-based navigation screens
โ โ โโโ index.tsx # Today screen
โ โ โโโ habits.tsx # Habits management
โ โ โโโ progress.tsx # Progress & stats
โ โ โโโ achievements.tsx
โ โ โโโ profile.tsx # User profile
โ โโโ _layout.tsx # Root layout
โโโ types/
โ โโโ index.ts # TypeScript type definitions
โโโ data/
โ โโโ mockData.ts # Mock data for development
โโโ constants/
โ โโโ Colors.ts # Theme color definitions
โโโ hooks/
โ โโโ useColorScheme.ts # System theme detection
โ โโโ useThemeColor.ts # Theme color hook
โโโ utils/
โ โโโ storage.ts # AsyncStorage utilities
โโโ assets/ # Images and fonts
โโโ package.json
โโโ tsconfig.json
- Core UI/UX with 5 main screens
- Native platform tabs (iOS & Android)
- Dynamic light/dark theme system
- Mock data implementation
- Gamification mechanics (XP, levels, tiers)
- Streak tracking
- Achievement system
- Daily challenges
- AsyncStorage integration for local data
- Habit CRUD operations (Create, Read, Update, Delete)
- Completion history tracking
- Settings persistence
- Push notifications for reminders
- Custom habit icons and colors
- Habit notes and journaling
- Calendar view with heat map
- Habit templates library
- Avatar customization shop
- Unlockable themes
- Weekly/monthly challenges
- Leaderboards (optional social features)
- Bonus XP events
- User authentication
- Cloud sync across devices
- Data backup and restore
- Analytics and insights
HabitQuest combines proven habit-tracking principles with engaging game mechanics:
- Loss Aversion: Streaks create motivation to maintain consistency
- Variable Rewards: Occasional bonus XP and achievements provide excitement
- Progress Visualization: Multiple ways to see growth (levels, charts, percentages)
- Clear Goals: Specific targets for leveling up and achievements
- Positive Reinforcement: Celebrations for completions and milestones
- Native Experience: Platform-specific UI elements for familiar interactions
Contributions are welcome! This is a learning project, so feel free to:
- Report bugs
- Suggest new features
- Submit pull requests
- Improve documentation
MIT License - feel free to use this project for learning or as a starting point for your own habit tracker.
Built following best practices from successful habit trackers like:
- Habitica (gamification elements)
- Streaks (minimalist design)
- Productive (flexible scheduling)
- Fabulous (progress visualization)
And following native iOS and Android design guidelines for authentic platform experience.
Built with โค๏ธ using Expo and React Native
Supports both iOS and Android with native platform integration
Start your habit journey today! ๐