Skip to content

maxhumber/BreadBuddy

Repository files navigation

BreadBuddy Logo BreadBuddy

BreadBuddy is a recipe scheduler for iOS. I use it to schedule my overnight pizza dough, and my partner uses it to schedule her awesomely complicated (but incredibly yummy) sourdough baguettes!

Screenshots

BreadBuddy1 BreadBuddy2 BreadBuddy3 BreadBuddy4

Download

BreadBuddy Download Link

Open Source

BreadBuddy is the reference I wish I had when I was first learning how to build apps with Swift/SwiftUI. It was therefore built to be open source.

Code Philosophy

The source code for BreadBuddy is meant to be read, tested, and replaced. The app is influenced by—but not beholden to—Clean Code, SOLID, and TDD.

⛳️ CADI

BreadBuddy is built with SwiftUI and MVVM. And is organized with CADI, an acronym that stands for Core, App, Data, Interface. Pronounced like, and inspired by, "Caddie", the system compliments MVVM through the use of folders, local packages, and protocols to make feature iteration, code replacement, and refactoring a relative breeze...

  • Core/*
    • Models (the M in MVVM)
      • Core data representations
    • Services (domain logic)
      • Made as thin as possible
    • Type extensions
    • Critical unit tests
  • App/
    • @main entry point
    • Configuration files
    • Asset catalogues
    • Environment/plist variables
  • Data/
    • Database
    • Stores
      • With protocols to allow for future data layer substitutions
  • Interface/
    • Views (the V in MVVM)
      • Organized by Screen
      • Co-located/nested ViewModels (the VM in MVVM)
    • Fonts
    • Colors
    • Sugar*
      • Custom and reusable UI components

​ *Core and Sugar are local packages firewall-ed from the rest of the app

Notable Files