Skip to content

MahmoudAlaa92/ToDoList

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

58 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ ToDoList – iOS App

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.


πŸš€ Features

  • πŸ“… 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

🧱 Architecture & Design

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

πŸ› οΈ Technologies & Tools

  • 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

πŸ”„ State Management

  • Uses Combine publishers to bind data between ViewModels and Views
  • Reactive updates ensure smooth UI performance
  • Business logic is fully separated from UI

πŸ§ͺ Code Quality

  • βœ… Follows SwiftLint rules
  • βœ… Clean, readable, and testable code
  • βœ… Protocol-based abstractions
  • βœ… No massive ViewModels
  • βœ… Easy to extend and refactor

🎨 UI & UX

  • SwiftUI components built with reusability in mind
  • Adaptive layouts for all screen sizes
  • Smooth navigation using Coordinator Pattern
  • Consistent spacing, typography, and colors

πŸ“¦ Installation

  1. Clone the repository:

    git clone https://github.com/MahmoudAlaa92/ToDoList.git
  2. Open the project in Xcode

  3. Run the app on a simulator or device πŸš€


πŸ“Œ Requirements

  • iOS 26.0+
  • Xcode 26.0+
  • Swift 6.1+

πŸ‘¨β€πŸ’» Author

Mahmoud Alaa iOS Developer – SwiftUI & UIKit MVVM β€’ Combine


πŸ“š Behance To Preview

Desktop - 14 1 2 3 3-3 4 5 6 6-6 7 8 9 10 11 12 13 Screenshot 2025-12-21 at 11 46 22β€―PM dark0 dark1 dark2 dark3 dark4 Screenshot 2025-12-21 at 11 43 58β€―PM