TaskManager is a feature-rich task management application built with the latest iOS technologies. Designed with a focus on beautiful UI, intuitive UX, and robust architecture, this app showcases advanced SwiftUI implementations while maintaining clean, maintainable code through SOLID principles and the MVVM pattern.
Beautiful UI in Light & Dark Mode
![]() |
![]() |
![]() |
| Task List (Light) | Task Creation (Light) | Task Details (Light) |
![]() |
![]() |
![]() |
| Task List (Dark) | Task Creation (Dark) | Task Details (Dark) |
- Task Management: Create, view, edit, and delete tasks with comprehensive details
- Rich Sorting & Filtering: Organize tasks by priority, due date, or alphabetically
- Customizable Themes: Switch between light and dark modes with customizable accent colors
- Fluid Animations: Enjoy polished animations for all interactions
- Drag & Drop Reordering: Intuitively reorganize your task list with haptic feedback
- Gesture Controls: Quick actions with swipe gestures and contextual feedback
- Visual Progress Tracking: Monitor completion with a custom animated progress ring
- Full Accessibility Support: VoiceOver compatibility, Dynamic Type, and more
- Persistent Storage: Reliable data persistence with Core Data
- Optimized Performance: Smooth experience even with large task lists
TaskManager is built following industry best practices and modern architectural patterns:
The application is structured into distinct layers with clear separation of concerns:
TaskManager/
├── Application/
├── Data/
│ ├── CoreData/
│ ├── Models/
│ └── Repositories/
├── Domain/
│ ├── Entities/
│ ├── Repositories/
│ └── UseCases/
└── Presentation/
├── Common/
│ ├── Components/
│ └── Extensions/
├── DI/
└── Modules/
├── HomeView/
├── Settings/
├── TaskCreation/
└── TaskDetail/
Each screen follows the Model-View-ViewModel pattern:
- Models: Core domain entities representing tasks and related data
- Views: SwiftUI views focused purely on presentation
- ViewModels: Connecting the UI to business logic with reactive properties
The codebase adheres to all SOLID principles:
- Single Responsibility: Each class has a single, well-defined purpose
- Open/Closed: Modules are open for extension but closed for modification
- Liskov Substitution: Subtypes are substitutable for their base types
- Interface Segregation: Clients are not forced to depend on interfaces they don't use
- Dependency Inversion: High-level modules depend on abstractions, not concrete implementations
- SwiftUI 5 Components: NavigationStack, LazyVStack, and the latest SwiftUI features
- Custom Animations: Spring animations, fade effects, and seamless transitions
- Intuitive Navigation: Logical flow between task list, creation, details, and settings
- Empty State Design: Engaging visuals and prompts when no tasks exist
- Error Handling: Graceful error presentation with actionable feedback
- Shimmer Effects: Elegant loading states for data retrieval
- Swift 5.10: Latest language features for cleaner, safer code
- iOS 18+: Optimized for the latest iOS platform capabilities
- SwiftUI 5: Modern declarative UI framework
- Core Data: Robust data persistence with efficient queries
- Combine: Reactive programming for handling asynchronous events
- Dependency Injection: Protocol-based DI for testable code
- Comprehensive Testing: UI tests, snapshot tests, and unit tests
- iPhone (iOS 18.0+)
- iPad (iOS 18.0+)
- Responsive design for all screen sizes
- Xcode 16.0 or later
- iOS 18.0+ device or simulator
- Clone this repository
git clone https://github.com/johnnyowayed/TaskManager.git-
Open
TaskManager.xcodeprojin Xcode -
Select your target device/simulator and hit Run
The application uses a Core Data stack with the following entity structure:
TaskEntityentity with attributes for title, description, priority, due date, and completion status- Batch operations for performance with large datasets
- VoiceOver support with descriptive labels and hints
- Dynamic Type compatibility for all text elements
- Color contrast considerations for all UI elements
The project includes comprehensive test coverage:
TaskManagerTests: Unit tests for business logic and data layerTaskManagerUITests: UI tests for critical user flows and interface consistency
- Cloud synchronization with iCloud
- Recurring tasks functionality
- Rich notifications with action buttons
- Widget support for home screen
- Siri shortcuts integration
- Apple Watch companion app
- Apple's Human Interface Guidelines
- SwiftUI community for inspiration
Developed with ❤️ by Johnny Owayed





