Skip to content

OGSarah/Culinary-Catalog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Culinary Catalog

A very simple iOS recipe management app built with SwiftUI that seamlessly integrates CoreData and async/await networking to provide a smooth, responsive recipe browsing experience. The app fetches and displays recipe data from a remote API, allowing users to explore, search, and interact with a comprehensive collection of culinary inspirations.

Screenshots:

Here are some screenshots showcasing the app's features:

Key Features:

  • SwiftUI interface
  • CoreData local storage
  • Asynchronous API data fetching
  • Responsive search functionality
  • Smooth recipe browsing experience
  • Code quality enforcement through SwiftLint
  • Test coverage with unit tests.

Technologies:

  • Swift 6
  • SwiftUI
  • Swift Testing
  • CoreData
  • Async/Await
  • WebKit
  • RESTful API Integration
  • iOS 26 minimum OS target

Architecture & Design Patterns:

  • MVVM
  • Singleton
  • Dependency Injection

Focus Areas:

  1. Core Data Integration: I focused on getting the Core Data setup right.

  2. SwiftUI Implementation

  3. Networking and Data Flow: I put a lot of effort into designing a solid network layer with NetworkManager.

  4. Error Handling: I made sure to handle errors well (NetworkError, error handling in view models) because I wanted the app to be robust. I made sure to test various network conditions using the Network Link Conditioner in Xcode.

Time Spent:

I spent roughly a 5-day work week on this project. Here's how I split my time:

  • 40% on data modeling, Core Data setup, and repository patterns.
  • 30% went into crafting those SwiftUI views and view models.
  • 20% on networking, error handling, and keeping data consistent between offline and online states.
  • 10% was dedicated to testing, debugging, and documenting.

Trade-offs and Decisions:

  • I went with CoreData to save the download images and the rest of the data from the network.

Weakest Part of the Project:

  • Testing. See below.

Additional Information:

A few insights and constraints:

  • Testing: If I had more time I would have updated the unit tests after I did the latest code changes, I would do accessibility testing, and added UI testing.

License

Proprietary Software

© 2026 SarahUniverse

This software and its source code are the exclusive property of SarahUniverse. No part of this software may be reproduced, distributed, or transmitted in any form or by any means without prior written permission.

About

A simple iOS 26 recipe app built with SwiftUI, CoreData, and async/await.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages