A simple, brutalist-designed iOS app for tracking baby activities: sleep, diapers, and feeding. Features CloudKit sync across devices and iCloud account sharing.
- 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
- iOS 18.0+
- Xcode 16.0+
- Swift 6.0
- XcodeGen
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/
-
Install XcodeGen (if not already installed):
brew install xcodegen
-
Generate Xcode project:
cd apps/ios xcodegen generate -
Open the project:
open QuickBaby.xcodeproj
-
Configure signing:
- Open project settings
- Select your development team
- Ensure CloudKit capability is enabled
Open apps/ios/QuickBaby.xcodeproj and build using Xcode.
cd apps/ios
xcodegen generate
xcodebuild -project QuickBaby.xcodeproj -scheme QuickBaby -destination 'platform=iOS Simulator,name=iPhone 17 Pro' buildcd apps/ios
xcodebuild test -project QuickBaby.xcodeproj -scheme QuickBaby -destination 'platform=iOS Simulator,name=iPhone 17 Pro'- Observable Pattern:
BabyEventControlleruses@Observablefor 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
- Uses private CloudKit database for personal data
- Supports sharing via
CKSharefor family access - Silent push notifications for real-time sync
- Fallback to local storage when offline
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
Private project - All rights reserved.