TahaMahmoud / Recipes

Display Recipes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Recipes

Recipes is a simple iOS application, it retrieves recipes from free API and display it for the user, and allow the user to view recipes details and add it to favourite. User also can login or process to use the application.

Using api.npoint.io

Don't Forget To Install Pods

pod install

Login

Use this data to try Login feature

  • use taha@taha.com for email field.
  • and use 123456 for password.

Used In The APP

  • SWIFT
  • Alamofire-based Network Layer
  • MVVM Architecture Pattern
  • Coordinator Pattern For Handling Navigation
  • RxSwift, RxCocoa For Data Binding
  • Kingfisher For Images Downloading and Caching
  • XIB Files
  • Realm For Caching Recipes using [Generic Realm Manager]
  • UserDefaults for Storing simple data using [Generic UserDefaults Manager]
  • Adobe XD For Designing The UI

TODO:-

  • Code Refactoring
  • Use Repository Pattern
  • Dark Mode Support
  • Unit Tests
  • UI Tests
  • Enhance UI/UX

Screenshots

  • Launch Screen

  • Login Screen [Invalid Data]

  • Login Screen [Valid Data]

  • Loading Screen

  • Recipes Screen

  • Recipes Screen [Add To Favourites]

  • Recipes Screen [Remove From Favourites]

  • Recipes Details

  • Recipes Details

  • Recipes Details [Add To Favourite]

App Structure:

  • Common

    • Application
      • Core
      • Coordinator
    • Configuration
    • Resources
    • Extensions
      • UI
      • ExternalComponents
  • Externals

    • Networking
    • DataPersistence
      • UserDefaults
      • Realm
  • Scenes

    • Login
      • View
      • ViewModel
      • Coordinator
      • Interactor
    • RecipesList
      • Model
      • View
      • ViewModel
      • Coordinator
      • Interactor
    • RecipeDetails
      • Model
      • View
      • ViewModel
      • Coordinator
      • Interactor

Authors:

Created by

Please don't hesitate to ask any clarifying questions about the project if you have any.

About

Display Recipes


Languages

Language:Swift 99.3%Language:Ruby 0.7%