Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/esraa-ragab7/planets
https://github.com/esraa-ragab7/planets
clean coredata mvp swift unit-testing universal-app
Last synced: about 6 hours ago
JSON representation
- Host: GitHub
- URL: https://github.com/esraa-ragab7/planets
- Owner: Esraa-ragab7
- Created: 2021-11-24T20:25:20.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2021-11-24T22:09:00.000Z (about 3 years ago)
- Last Synced: 2025-01-28T01:37:38.121Z (11 days ago)
- Topics: clean, coredata, mvp, swift, unit-testing, universal-app
- Language: Swift
- Homepage:
- Size: 924 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Planets
Planets is an application designed to analyze any recipe and get a detailed nutrition data about it.## Architecture pattern
* MVP(Model View Presenter) + Clean Architecture concepts## Run Requirements
* Minimum xcode version: Xcode 11
* Swift 5## Installation
* Clone this repo:
`git clone https://github.com/Esraa-ragab7/Planets.git`
* Open the terminal and navigate to the directory of project:
`cd Planets`
* Run this command to open the project directory:
`open .`
* Open the workspace Planets.xcodeproj.
* Now you can run the project.![alt text](https://user-images.githubusercontent.com/13772702/143316833-c2844a47-c6e1-4473-994f-c88480146485.png)
## App Layers
#### MVP Concepts
##### Presentation Logic
* `View` - handle user interaction events to the `Presenter` and displays data passed by the `Presenter`
* `Presenter` - contains the presentation logic and tells the `View` what to present
* `Configurator` - injects the dependency object graph into the scene (view controller)
* `Router` - contains navigation / flow logic from one scene (view controller) to another#### Clean Architecture Concepts
##### Application Logic* `UseCase / Interactor` - contains the application / business logic for a specific use case in your application
* `Entity` - plain `Swift` classes / structs##### Gateways & Framework Logic
* `Gateway` - contains actual implementation of the protocols defined in the `Application Logic` layer
* `Persistence / API Entities` - contains framework specific representations
* `Framework specific APIs` - contains implementations of `iOS` specific APIs such as sensors / bluetooth / camera