An iOS app for tracking a dog's daily care — meals, water, medication, bathroom trips, walks, and exercise — shared live across everyone in the household.
Built with SwiftUI, SwiftData, and CloudKit. Deployment target is iOS 26.
If more than one person looks after a dog, the hard question is usually "has she already been fed?" Dog Log answers it: any household member can log an event in two taps, and it appears on everyone else's phone and home screen.
Quick logging. The home screen is a grid of one-tap category buttons — meal, fresh water, medication, pee, poo, walk, play, exercise. Logging an event takes a single tap; the detail sheet is optional.
Multiple dogs. Each dog has its own log, medications, and reminders.
Medications. Per-dog medication list with a quick-pick sheet, so recording a dose doesn't mean retyping the name and amount every time.
Reminders. Scheduled either daily at a fixed time, or as an interval since the last event of that kind — "four hours since the last bathroom trip" rather than a fixed clock time. Delivered as local notifications.
Household sharing. A CloudKit sync engine mirrors the SwiftData store to a shared iCloud container, so several people see the same log in near real time.
Home screen widgets. A summary widget and a quick-log widget backed by App Intents, letting you record an event without opening the app. Widget and app share data through an app group.
Exercise durations. Walks, play, and exercise can carry a duration rather than just a timestamp.
DogLog/
Models/ Dog, LogEntry, Medication, ScheduledReminder,
ActivityCategory, DeletedRecord
Views/ Quick-log home, per-dog log, medications,
reminders, collaboration, onboarding
Support/ CloudKitSyncEngine, ReminderScheduling,
NotificationSupport, SharedModelStore,
CollaborationPrefs, DogLogWidgetRefresh
DogLogWidget/ Widget bundle, quick-log widget, App Intents
DogLogTests/
DeletedRecord exists because CloudKit needs deletions propagated explicitly —
a tombstone records what was removed so other devices drop it too.
Open DogLog.xcodeproj in Xcode and run.
The project is configured against a specific Apple developer team and iCloud
container (iCloud.com.chrisswecker.DogLog). To build it under your own
account, change the signing team in the target settings and update the iCloud
container identifier in DogLog/DogLog.entitlements and
DogLogWidget/DogLogWidgetExtension.entitlements, along with the app group.