A beautiful, modern iOS focus timer app designed to help you stay productive and maintain focus during work sessions.
- Pomodoro Timer: 25-minute focus sessions with 5-minute short breaks and 15-minute long breaks
- Beautiful UI: Gradient background with modern, clean design
- Session Management: Editable session titles with emoji support
- Timer Controls: Play/pause, reset, and picture-in-picture mode
- Daily Motivational Quotes: Rotating inspirational messages
- Onboarding Flow: Welcome screens with Apple Sign In integration
- Tab Navigation: Easy switching between Timer, Stats, and Profile
- Sound Library: Ambient sounds and focus music (free + pro options)
- Volume Control: Adjustable sound levels for optimal focus
- Comprehensive Stats: Track focus time, sessions, streaks, and averages
- Visual Charts: Weekly and monthly progress visualization
- Achievement System: Unlock badges for consistency and productivity
- Session History: Detailed log of all completed sessions
- Premium Backgrounds: 50+ curated background images
- Extended Sound Library: 100+ premium focus sounds and music
- Advanced Analytics: Detailed productivity insights and trends
- Cloud Sync: Sync data across all your devices
- Priority Support: Get help when you need it most
- Color Scheme: Beautiful gradient from blue (#223B70) to pink (#E07BE0)
- Typography: SF Pro Rounded fonts for modern, readable text
- UI Elements: Glass-morphism effects with rounded corners
- Icons: SF Symbols for consistent iOS design
- Layout: Clean, distraction-free interface optimized for focus
The app includes the following main screens:
- Timer View: Main focus timer with session controls
- Stats View: Analytics, charts, and progress tracking
- Profile View: User settings, achievements, and pro upgrade
- Onboarding: Welcome flow with Apple Sign In
- Sound Control: Music and ambient sound selection
- Xcode 15.0 or later
- iOS 17.0 or later
- Apple Developer Account (for device testing)
- Clone the repository
- Open
zensapp.xcodeprojin Xcode - Select your target device or simulator
- Build and run the project
- The app uses UserDefaults for data persistence
- Apple Sign In requires proper app configuration
- Push notifications need to be configured in Xcode
zensapp/
├── zensappApp.swift # Main app entry point
├── MainTabView.swift # Tab navigation
├── ContentView.swift # Main timer interface
├── OnboardingView.swift # Welcome and sign-in flow
├── StatsView.swift # Analytics and charts
├── ProfileView.swift # User profile and settings
├── ProUpgradeView.swift # Subscription management
├── SoundControlView.swift # Music and sound selection
├── UserData.swift # Data model and persistence
└── NotificationManager.swift # Local notifications
- UserData: ObservableObject for app state management
- SessionRecord: Data model for tracking sessions
- NotificationManager: Handles timer and reminder notifications
- TimerMode: Enum for different timer types
The app uses a consistent color palette defined in the gradient:
- Primary:
Color(red: 0.133, green: 0.231, blue: 0.439)- #223B70 - Secondary:
Color(red: 0.878, green: 0.482, blue: 0.878)- #E07BE0 - Accent:
Color(red: 0.635, green: 0.349, blue: 1.0)- #A259FF
Default durations can be modified in ContentView.swift:
- Focus: 25 minutes
- Short Break: 5 minutes
- Long Break: 15 minutes
Add new sounds by updating the sounds array in SoundControlView.swift
The app uses UserDefaults for:
- User preferences and settings
- Session history and statistics
- Pro subscription status
- Sound preferences
The app supports:
- Timer completion alerts
- Daily streak reminders
- Custom notification sounds
- Create new SwiftUI views in the project
- Update
MainTabView.swiftfor navigation - Add data models to
UserData.swiftif needed - Update persistence logic for new data
- Test on different iOS versions
- Verify timer accuracy across devices
- Test notification permissions
- Validate Apple Sign In flow
This project is created for educational and personal use.
Feel free to submit issues and enhancement requests!
Zens - Focus, track, and grow your productivity! 🚀