Welcome to the documentation for Recipe Search App, an iOS app built to explore recipes. This document provides an overview of the app's architecture, features, installation process, usage guidelines, and testing.
Recipe Search App is a Swift-based iOS app designed to fetch and display recipes from Edamam. Users can interact with the app to search recipes, view ingredients, and manage their favorites.
To ensure the successful execution and adherence to the design principles, the app adheres to the following requirements:
-
Code-based UI Development: UI and layout development strictly adhere to a code-based approach, eliminating the use of Storyboards or Xibs. This choice emphasizes maintainability and reduces the complexity of the UI development process.
-
MVVM Architecture: The app architecture is structured following the Model-View-ViewModel (MVVM) pattern.
Upon launching the app, users can view some meal suggestions.
The app provides a search functionality, enabling users to search for recipes.
Users can add the favorite recipe to their favorites and check whether a recipe is part of their favorites.
The app is designed with the MVVM (Model-View-ViewModel) architecture, a widely adopted architectural pattern in iOS development. This choice ensures a clear separation of concerns and facilitates maintainability. The project is structured into distinct modules, fostering organization and clarity within the codebase. This architectural approach aims to enhance scalability and readability throughout the development lifecycle.
Our UI tests are situated on the app side, while the unit tests are located in the following modules:
-
ViewModels: The
ViewModels
module contains unit tests for the view models, ensuring that business logic and data transformations are functioning as expected. -
Services: The
Services
module includes unit tests for various services, such as API communication and data fetching, guaranteeing the reliability of these components. -
DataStore: The
DataStore
module is covered by unit tests to validate the correctness of data storage and retrieval operations. -
Coordinators: The
Coordinators
module is tested to confirm that navigation and coordination between different parts of the app work as intended. -
Coordinators: The
Coordinators
module is tested to confirm that navigation and coordination between different parts of the app work as intended.
For info about the Modules, see README.md.
To set up and run the Recipe Search App iOS app on your local environment, follow these steps:
- Clone this repo: Clone or download this repo to your computer.
git clone https://github.com/fsanto-dev/RecipeSearchApp.git
-
Open in Xcode: Open the
RecipeSearchApp/RecipeSearchApp.xcworkspace
workspace file in Xcode. -
Build the app: Once all the above steps are complete, you are ready to build and deploy the iOS app in Xcode.