Skip to content

civnam/MealsApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

45 Commits
 
 
 
 

Repository files navigation

MealsApp

Victor Isaac Dimas Moreno

Meals App is an app where you can look up for the best meals recipes, in there you can find the ingredients, measures, instructions and youtube video tutorial (if existing) of many different kinds of meals like pasta, beef, etc. In Meals App you can also track a schedule in a calendar where you can put on the meals that you were looking for.

Youtube video: https://youtu.be/-ay8QIFYHDY

Installation

Go to the path where the Podfile is and execute the pod install command. Then open the .workspace file generated

The app was tested in Xcode 14.3 and supports iOS 16+ because of the SwiftUI features that were used

Features in the Meals App

  • Dashboard Module

    The app has a main dashboard section in which the user can see the week specialty (Desserts by default) and also look up for other meal categories, and also the user can see the detail of those meals.

  • Search Module

    The user can look up for meals depending of a category selected and filter them in a searchbar when the user types something.

  • Tracking Food Calendar Module

    The user can look up for recipes in this section and added them as an event to the calendar, also the user can access to the recipe saved in that particular day for showing the detail of the meal.

Frameworks used in the Meals App

  • UIKit

    For the dashboard views and the TabBar. (Programmatic UI, NOT INTERFACE BUILDER)

  • SwiftUI

    For the Search and Calendar modules and the intro sliding cards

  • Combine

    For binding the variables that were used in the SwiftUI views

  • XCTest

    For unit testing

  • Lottie

    For the intro of the App

  • Youtube Helper

    For the youtube videos in the detail view of the meal

More Technical features

  • JSONDecoder and JSONSerialization used for parsing the data of the API
  • UserDefaults singleton used for storing a boolean of the user first time trying the app, if it's the first time then intro sliding cards are showed
  • Responsive height of the scrollview depending of the size of the elements of the view and thus the size of the screen
  • Dedicated Networking layer
  • Cache for UIImageView
  • Management of memory leaks with [weak self]
  • Added Coordinator pattern for the AppDelegate for controling inital view instances
  • Added Delegate pattern for comunicating objects through the app
  • Added Unit Testing for the networking layer applying AAA pattern (Arrange, Act, Assert)
  • Added MVP architecture for the UIKit views
  • Added MVVM architecture for the SwiftUI views
  • Added reusable views like the detail view of the meal
  • Added custom font for the text in the app
  • Added extensions of the different objects in Foundatin, UIKit and SwiftUI for reusing code
  • Applied GitFlow for this repo by using the flow: Main -> Dev -> Task

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published