A beautiful, minimal water tracking app for iOS and Apple Watch that helps you build a sustainable hydration habit.
- Smart Water Reminders - Timely, non-intrusive notifications throughout the day
- Daily & Weekly Progress Tracking - Simple statistics to visualize hydration consistency
- Apple Health Sync - Automatically sync water intake with Apple Health
- Apple Watch App - Log water intake instantly from your wrist
- Widgets - Quick access to daily progress from your home screen
- Dark Mode - Comfortable viewing in all lighting conditions
- Custom Notifications - Personalized reminder schedules
- Streak Tracking - Motivation through daily consistency tracking
- Beautiful UI - Soft pastel colors with smooth animations
- Unlimited usage
- 100% Ad-free
- Access to all features
- All Air Apps included
H2O/
├── Models/ # Data models (WaterEntry, DailyGoal, etc.)
├── Views/ # SwiftUI views
│ ├── HomeView.swift
│ ├── StatsView.swift
│ ├── SettingsView.swift
│ ├── OnboardingView.swift
│ └── AddWaterView.swift
├── Services/ # Business logic and managers
│ ├── WaterTrackingManager.swift
│ ├── NotificationManager.swift
│ ├── HealthKitManager.swift
│ └── SiriShortcutManager.swift
├── Resources/ # Assets and color sets
└── Info.plist
H2OWatch/ # Apple Watch app
├── H2OWatchApp.swift
└── WatchHomeView.swift
H2OWidget/ # Home screen widgets
└── H2OWidget.swift
- Singleton pattern for centralized water tracking
- Manages daily entries, goals, and streaks
- Persists data using UserDefaults with JSON encoding
- Auto-cleanup of old entries (90 days)
- Local notification scheduling
- Configurable reminder intervals
- Motivational notifications on goal completion
- Foreground notification support
- Bidirectional Apple Health sync
- Water intake logging in liters
- Authorization handling
- Background sync support
The app uses a soft, calming color palette inspired by water:
- AccentColor: Teal/Cyan (#66B3CC) - Primary actions and highlights
- AccentColorLight: Light Cyan (#80CCFF) - Gradients and secondary highlights
- BackgroundTop: Very light blue (#FFEFD9) - Top gradient
- BackgroundBottom: Light cyan (#F2E5B3) - Bottom gradient
- TextPrimary: Dark gray-blue (#4D6666) - Main text
- TextSecondary: Medium gray (#809999) - Secondary text
- Rounded Corners: 16-20px for cards, 10-12px for buttons
- Shadows: Subtle shadows (opacity 0.03-0.05) for depth
- Gradients: Linear gradients for backgrounds and important CTAs
- Progress Rings: Circular progress indicators with smooth animations
- Quick Add Buttons: Grid of preset water amounts for fast logging
waterEntries- JSON array of all water entriesdailyGoal- JSON object of daily goal configurationcurrentStreak- Integer for current streak countlongestStreak- Integer for best streak achievedhasCompletedOnboarding- Boolean for onboarding statusisPro- Boolean for subscription status
WaterEntry {
id: UUID
amount: Double (ml)
timestamp: Date
}
DailyWaterGoal {
targetAmount: Double (ml)
reminderInterval: Int (minutes)
startTime: Date
endTime: Date
}
DailyStats {
date: Date
totalAmount: Double
entries: [WaterEntry]
goalCompleted: Bool
}- Scheduled based on user's active hours (default: 8 AM - 10 PM)
- Configurable interval (default: 60 minutes)
- Auto-reschedule on settings change
- Motivational messages on goal completion
Requested during onboarding with clear explanation of benefits.
- Real-time sync with iPhone app
- Quick add buttons (100ml, 250ml, 500ml, 750ml)
- Progress ring showing daily percentage
- Current streak display
- Goal completion indicator
Widget support for watch faces showing:
- Current progress percentage
- Total intake vs goal
- Streak count
- Progress percentage (large)
- Current intake amount
- Goal amount (small text)
- Water drop icon
- Progress ring (left side)
- Detailed stats (right side)
- App branding
- Current intake and goal
Widgets update every 15 minutes to show current progress.
- Monthly subscription: $9.99/month
- Auto-renewable subscription
- Managed through StoreKit
- Restore purchases support
- Unlimited water tracking
- Ad-free experience
- All app features unlocked
- Access to Air Apps suite
- Notifications - For water reminders
- HealthKit - For Apple Health sync (optional)
- No user data collection
- All data stored locally on device
- HealthKit data synced only with user consent
- Full privacy policy at: https://airapps.co/privacy
- Xcode 14.0+
- iOS 15.0+
- watchOS 8.0+
- Swift 5.7+
- Open the project in Xcode
- Configure signing & capabilities
- Add HealthKit capability
- Add Push Notifications capability
- Configure App Groups for Watch sync
- Build and run on device or simulator
- HealthKit
- Push Notifications
- App Groups (for Watch sync)
- WidgetKit
- Siri & Shortcuts
- Water entry logging
- Goal completion detection
- Notification scheduling
- HealthKit sync
- Watch app sync
- Widget updates
- Streak calculation
- Onboarding flow
- Settings persistence
- Subscription flow
- iMessage stickers
- Custom app icons
- Social sharing
- Export data to CSV
- Water intake insights
- Smart goal recommendations
- Integration with Fitness+ workouts
- Implement proper StoreKit 2 for subscriptions
- Add unit tests for managers
- Add UI tests for critical flows
- Implement CloudKit sync for multi-device support
- Add analytics (privacy-focused)
- Email: support@airapps.co
- Facebook: https://www.facebook.com/airappsco
- Twitter: https://twitter.com/airappsco
- Instagram: https://www.instagram.com/airappsco
Copyright © 2024 Air Apps. All rights reserved.
H2O - Building healthy hydration habits, one drop at a time.