Skip to content

TASK Tool is a simple and modular SwiftUI application for creating and listing tasks, integrated with a RESTful backend API.

Notifications You must be signed in to change notification settings

Davidap041/TaskTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

10 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“ TASK Tool

TASK Tool is a simple and modular SwiftUI application for creating and listing tasks, integrated with a RESTful backend API.

πŸš€ Features

  • βœ… Create and list tasks from a remote API
  • 🧱 Built with SwiftUI using a clean and scalable architecture
  • 🧩 Uses the Repository Pattern for data handling
  • 🧠 Follows the MVVM (Model-View-ViewModel) architectural pattern
  • πŸ”„ Supports dependency injection
  • 🌐 Network layer abstraction using a custom-built API client
  • πŸ”Œ Local mock repository for testing and preview purposes
  • πŸŒ— Full support for Light and Dark Mode

🧠 Architecture

This project follows a modular architecture with clear separation of concerns:

MVVM Pattern

  • Model: Defines data structures and API responses
  • ViewModel: Handles business logic and state management
  • View: SwiftUI views observe @Published properties for reactive updates

Repository Layer

  • Abstracts data access logic via the TaskRepository protocol
  • Includes:
    • RemoteTaskRepository: communicates with the backend API
    • MockTaskRepository: simulates local data (for testing and preview)

Dependency Injection

  • Injects the appropriate repository into SwiftUI views
  • Enables easy switching between mock and live data sources

Networking Layer

  • Built from scratch to communicate with the backend RESTful API
  • Includes:
    • RequestBuilder: builds and configures URL requests
    • APIClient: handles the request/response cycle
    • APIRequest: defines the endpoint configuration
    • HTTPMethod, Parameters, and NetworkLogger utilities for clean and flexible networking

πŸ“¦ Dependencies

This project does not rely on external libraries for networking or architecture β€” all logic is built natively using Swift and SwiftUI.

πŸ“± Screens

  • Task List View: Displays all tasks fetched from the API
  • Create Task View: Allows creating new tasks and posting them to the backend
  • Fully responsive to system Light and Dark Mode settings

About

TASK Tool is a simple and modular SwiftUI application for creating and listing tasks, integrated with a RESTful backend API.

Topics

Resources

Stars

Watchers

Forks

Languages