A modern iOS application for managing health-related reminders, built with UIKit, SwiftUI, and following clean architecture principles.
- 📱 Create and manage health-related reminders
- 🔔 Local notifications for timely reminders
- 🎯 Multiple reminder categories (Water, Exercise, Vitamins, Sleep, etc.)
- 🔄 Real-time updates using Combine
- 🔗 Deep linking support
- 📊 Detailed reminder information
- 🎨 Modern UI with UIKit and SwiftUI integration
- Architecture: VIPER, Service Locator
- UI: UIKit, SwiftUI
- Data Flow: Combine
- Persistence: SwiftData
- Testing: XCTest, Snapshot Testing
- Minimum iOS Version: iOS 17.0+
HealthReminder/
├── Application/ # App configuration and setup
├── Assembly/ # Dependency injection
├── Builders/ # Builder pattern implementations
├── Custom/ # Custom UI components
├── Extensions/ # Swift extensions
├── Factories/ # Factory pattern implementations
├── Formatters/ # Data formatting utilities
├── Managers/ # Various managers
├── Models/ # Data models
├── Modules/ # Feature modules
│ ├── RemindsModule/ # Main reminders list
│ ├── RemindDetail/ # Reminder details
│ └── CreateRemindModule/ # Create new reminder
├── Resources/ # Assets and resources
├── Services/ # Business logic services
└── Support/ # Supporting files
The project follows a hybrid architecture approach:
- VIPER for UIKit-based screens
- Service Locator for dependency management
- Builder Pattern for object creation
- Factory Method for notification generation
- Combine for reactive data flow
- Displays list of reminders using UITableView
- VIPER architecture implementation
- Real-time updates via Combine
- "+" button to create new reminders
- Text input and interval selection
- Category selection with custom options
- Builder pattern for Reminder creation
- Integration via UIHostingController
- Deep linking support
- Opens from list or push notification
The project includes comprehensive testing:
- ReminderService logic
- NotificationFactory functionality
- Data persistence
- CreateReminderView
- ReminderDetailView
- Reminder creation flow
- Deep linking from notifications
- User interaction scenarios
- iOS 17.0+
- Xcode 14.0+
- Swift 5.0+
swift
ios
swiftui
uikit
viper
combine
swiftdata
health
reminders
notifications
local-notifications
deeplink
clean-architecture
service-locator
builder-pattern
factory-pattern
Danil Zabinskij
- VIPER architecture pattern
- SwiftUI and UIKit integration
- Combine framework
- Local notifications system

