Skip to content

staskus/QuickBaby

Repository files navigation

QuickBaby

A simple, brutalist-designed iOS app for tracking baby activities: sleep, diapers, and feeding. Features CloudKit sync across devices and iCloud account sharing.

Features

  • Sleep Tracking: Log naps and night sleep with start/end times
  • Diaper Tracking: Record wet, dirty, or mixed diapers
  • Feeding Tracking: Track breast, bottle, or solid feedings with amounts
  • History View: Browse past events by date with filtering
  • CloudKit Sync: Automatic sync across all your iOS devices
  • Family Sharing: Share tracking data with another iCloud account
  • Brutalist Design: Clean, bold typography with baby-friendly color scheme

Requirements

  • iOS 18.0+
  • Xcode 16.0+
  • Swift 6.0
  • XcodeGen

Project Structure

QuickBaby/
├── Package.swift                 # Root SPM package
├── Sources/
│   └── QuickBabyKit/            # Shared business logic
│       ├── Models.swift         # Data models
│       ├── Interfaces.swift     # Protocols
│       ├── BabyEventController.swift  # Main state controller
│       └── BabyCloudSync.swift  # CloudKit sync
├── Tests/
│   └── QuickBabyKitTests/       # Unit tests
├── apps/
│   ├── ios/
│   │   ├── project.yml          # XcodeGen configuration
│   │   ├── Sources/             # iOS app sources
│   │   └── Tests/               # iOS app tests
│   └── shared/
│       └── Sources/
│           └── BrutalistTheme.swift  # Design system
└── Scripts/

Setup

  1. Install XcodeGen (if not already installed):

    brew install xcodegen
  2. Generate Xcode project:

    cd apps/ios
    xcodegen generate
  3. Open the project:

    open QuickBaby.xcodeproj
  4. Configure signing:

    • Open project settings
    • Select your development team
    • Ensure CloudKit capability is enabled

Building

Using Xcode

Open apps/ios/QuickBaby.xcodeproj and build using Xcode.

Using xcodebuild

cd apps/ios
xcodegen generate
xcodebuild -project QuickBaby.xcodeproj -scheme QuickBaby -destination 'platform=iOS Simulator,name=iPhone 17 Pro' build

Testing

cd apps/ios
xcodebuild test -project QuickBaby.xcodeproj -scheme QuickBaby -destination 'platform=iOS Simulator,name=iPhone 17 Pro'

Architecture

Design Patterns

  • Observable Pattern: BabyEventController uses @Observable for SwiftUI binding
  • Protocol-based Dependencies: Sync manager uses protocols for testability
  • Actor-based Concurrency: CloudKit sync uses Swift actors for thread safety
  • Origin Tracking: Device identifier prevents sync loops in multi-device scenarios

CloudKit Integration

  • Uses private CloudKit database for personal data
  • Supports sharing via CKShare for family access
  • Silent push notifications for real-time sync
  • Fallback to local storage when offline

Color Scheme

The app uses a baby-friendly brutalist color palette:

  • Mint (#66CCB8): Primary accent, feeding
  • Peach (#FFB399): Diaper events
  • Lavender (#BFAEE6): Sleep events
  • Sky (#8CBFF2): Secondary accent

License

Private project - All rights reserved.

About

Simple baby tracking app for sleep, diapers, and feeding with CloudKit sync

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors