A modern iOS To-Do List application built with SwiftUI that helps users organize and remember tasks for today or any day throughout the month.
The app is designed with clean architecture, scalable patterns, and Apple design guidelines, focusing on maintainability, performance, and user experience.
- π Add tasks for today or any selected date
- π§ Remember and manage tasks throughout the month
- βοΈ Edit, delete, and complete tasks
- π Reactive UI updates using Combine
- π¨ Clean and minimal UI following Apple Human Interface Guidelines
- π§© Scalable architecture ready for future features
This project follows a professional iOS architecture:
- MVVM (Model β View β ViewModel)
- SOLID Principles
- POP (Protocol-Oriented Programming)
- Coordinator Pattern for navigation
- Factory Pattern for object creation
- Strategy Pattern for flexible business logic
- Dependency Injection for testability and loose coupling
- SwiftUI
- Combine
- SwiftLint β Enforcing Swift style & best practices
- SwiftGen β Type-safe access to assets, colors, and strings
- Dependency Injection
- @Environment / @EnvironmentObject
- Clean Code Principles
- Apple Design Guidelines
- Uses Combine publishers to bind data between ViewModels and Views
- Reactive updates ensure smooth UI performance
- Business logic is fully separated from UI
- β Follows SwiftLint rules
- β Clean, readable, and testable code
- β Protocol-based abstractions
- β No massive ViewModels
- β Easy to extend and refactor
- SwiftUI components built with reusability in mind
- Adaptive layouts for all screen sizes
- Smooth navigation using Coordinator Pattern
- Consistent spacing, typography, and colors
-
Clone the repository:
git clone https://github.com/MahmoudAlaa92/ToDoList.git
-
Open the project in Xcode
-
Run the app on a simulator or device π
- iOS 26.0+
- Xcode 26.0+
- Swift 6.1+
Mahmoud Alaa iOS Developer β SwiftUI & UIKit MVVM β’ Combine