Welcome to Recipe Roamer! Discover a world of flavors with our iOS app. From comforting classics to exotic delights, find recipes from around the globe.
- Xcode: Version 15.2
- Language: Swift 5.9
- Minimum iOS Version: 17.2
- Dependency Manager: SPM
In developing Recipe Roamer, I used the VIPER (View-Interactor-Presenter-Entity-Router) architecture for these key reasons:
- I wanted to practice VIPER :)
- Clear Separation: VIPER architecture separates UI, business logic, and navigation for cleaner, more maintainable code.
- Test-Driven Development: VIPER's modular structure enables comprehensive unit testing, ensuring app stability.
- Scalability: VIPER's modular design allows easy addition of features and modifications.
85 % Unit test covarage
- BreadList: View, Presenter, Interactor are tested.
- BreadRecipe: View, Presenter, Interactor are tested.
- API: MealService is tested.
Before you begin, ensure you have the following:
- Xcode installed
Also, make sure that these dependencies are added in your project's target:
- Moya: Network abstraction layer written in Swift.
- Kingfisher: Powerful and pure Swift library for downloading and caching images.
- JGProgressHUD: A versatile and customizable progress HUD to provide users with feedback during asynchronous tasks.
-
Clone the repository:
git clone https://github.com/lochmidth/RecipeRoamer.git
-
Open the project in Xcode:
cd RecipeRoamer open RecipeRoamer.xcodeproj
-
Add required dependencies using Swift Package Manager:
- Moya - Kingfisher - JGProgressHUD
-
Build and run the project.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropiate.
This project is licensed under the MIT License.