TASK Tool is a simple and modular SwiftUI application for creating and listing tasks, integrated with a RESTful backend API.
- β 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
This project follows a modular architecture with clear separation of concerns:
- Model: Defines data structures and API responses
- ViewModel: Handles business logic and state management
- View: SwiftUI views observe
@Publishedproperties for reactive updates
- Abstracts data access logic via the
TaskRepositoryprotocol - Includes:
- RemoteTaskRepository: communicates with the backend API
- MockTaskRepository: simulates local data (for testing and preview)
- Injects the appropriate repository into SwiftUI views
- Enables easy switching between mock and live data sources
- Built from scratch to communicate with the backend RESTful API
- Includes:
RequestBuilder: builds and configures URL requestsAPIClient: handles the request/response cycleAPIRequest: defines the endpoint configurationHTTPMethod,Parameters, andNetworkLoggerutilities for clean and flexible networking
This project does not rely on external libraries for networking or architecture β all logic is built natively using Swift and SwiftUI.
- 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
