/dragndrop

Primary LanguageSwiftMIT LicenseMIT

WORK IN PROGRESS

Project Description

Drag and Drop elements around columns

Demo project contains data like Kanban developer tasks, with three columns to move it

This repository contains a demo project built using SwiftUI, connected. The project adheres closely to the principles of Clean Architecture, with a focus on SOLID principles. Notably, no third-party libraries have been used in the development of this project.

Next Steps

  • SwiftData persistance
  • Developers CRUD
  • Tasks CRUD

Features

  • SwiftUI Implementation: The user interface is built entirely using SwiftUI, Apple's modern framework for building user interfaces across all Apple platforms.

  • Clean Architecture: The project follows the Clean Architecture principles, separating concerns into layers such as Presentation, Domain, and Data layers. This ensures modularity, maintainability, and testability of the codebase.

  • SOLID Principles: The codebase adheres to the SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion), promoting code that is easy to understand, maintain, and extend.

Structure

The project is organized into several modules:

  • Presentation Layer: Contains SwiftUI views, view models, and UI-related logic.

  • Domain Layer: Defines business logic and entities that are independent of any specific UI framework or data source.

  • Data Layer: Handles data retrieval and storage, including networking with the Rick and Morty API.

Getting Started

To run the project locally, follow these steps:

  1. Clone this repository to your local machine.
  2. Open the project in Xcode.
  3. Build and run the project on your desired iOS or macOS device/simulator.

Requirements

  • Xcode 15 or later

Contributing

Contributions to this project are welcome! If you find any bugs or have suggestions for improvements, please feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License. Feel free to use and modify the code as needed.

Acknowledgements

  • Thanks to the community for providing feedback and suggestions for improvement.