{"id":51391657,"url":"https://github.com/kolisko/pills-alarm","last_synced_at":"2026-07-04T00:06:11.976Z","repository":{"id":368525675,"uuid":"1271437589","full_name":"kolisko/pills-alarm","owner":"kolisko","description":"SwiftUI iPhone medication schedule and dose confirmation app powered by iCloud and CloudKit.","archived":false,"fork":false,"pushed_at":"2026-07-01T00:38:17.000Z","size":2034,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-01T02:13:13.712Z","etag":null,"topics":["cloudkit","ios","medication-tracker","swift","swiftui"],"latest_commit_sha":null,"homepage":null,"language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kolisko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-16T16:58:02.000Z","updated_at":"2026-07-01T00:38:21.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/kolisko/pills-alarm","commit_stats":null,"previous_names":["kolisko/pills-alarm"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/kolisko/pills-alarm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolisko%2Fpills-alarm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolisko%2Fpills-alarm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolisko%2Fpills-alarm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolisko%2Fpills-alarm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kolisko","download_url":"https://codeload.github.com/kolisko/pills-alarm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kolisko%2Fpills-alarm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35105535,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-03T02:00:05.635Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudkit","ios","medication-tracker","swift","swiftui"],"created_at":"2026-07-04T00:06:09.453Z","updated_at":"2026-07-04T00:06:11.965Z","avatar_url":"https://github.com/kolisko.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Pill Care\n\nPill Care is a SwiftUI iPhone app for coordinating medication schedules and dose confirmations with family members or caregivers through iCloud and CloudKit.\n\nThe app is built around a simple rule: CloudKit is the source of truth. Dose confirmations, skipped doses, shared care groups, and shared medication plans are stored as CloudKit records and synchronized across devices instead of being treated as local-only state.\n\n## Screenshots\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003cstrong\u003eToday\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cstrong\u003ePlans\u003c/strong\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003cstrong\u003eSettings\u003c/strong\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"docs/screenshots/today.png\" alt=\"Today screen\" width=\"240\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"docs/screenshots/plans.png\" alt=\"Medication plans screen\" width=\"240\"\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"docs/screenshots/settings.png\" alt=\"Settings screen\" width=\"240\"\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n## Features\n\n- Create private medication plans with multiple daily dose times and phased dosing.\n- Track tablets and syrup doses with distinct dose controls and visual indicators.\n- Confirm, skip, and undo dose confirmations from the Today screen.\n- Share a care group through the system `UICloudSharingController`.\n- Share individual medication plans into a group while keeping personal plans private.\n- Preserve dose confirmation history when a plan is shared or removed from sharing.\n- Synchronize private and shared CloudKit zones with incremental updates, full recovery paths, and foreground refresh safeguards.\n- Schedule local notifications for upcoming and late-synced doses.\n\n## Architecture\n\nThe app separates core business rules from platform infrastructure:\n\n- `Packages/PillCore` contains pure domain models, scheduling logic, access rules, confirmation state handling, and unit tests.\n- `PillsAlarm` contains the SwiftUI app, CloudKit repository, notification scheduling, and UI composition.\n- `PillsAlarmTests` mirrors the important domain test coverage for the app target.\n\nCloudKit sync uses zone change tokens for efficient incremental reloads. Authoritative full refreshes are still used for first launch, manual refresh, foreground recovery, token invalidation, and network recovery so that stale local projections do not become the source of truth.\n\n## Requirements\n\n- Xcode 16 or newer\n- iOS 17 or newer\n- Swift 6\n- An Apple Developer account with CloudKit capability\n\n## Apple Capabilities\n\nThe app expects the following iCloud container:\n\n```text\niCloud.com.kolisko.pillcare\n```\n\nThe iOS target must have these capabilities enabled:\n\n- iCloud / CloudKit\n- Push Notifications\n- Background Modes / Remote notifications\n\nEntitlements are defined in `PillsAlarm/PillsAlarm.entitlements`.\n\n## Build And Test\n\nRun the pure core test suite:\n\n```bash\nswift test --package-path Packages/PillCore\n```\n\nRun the iOS app tests from Xcode or with `xcodebuild`:\n\n```bash\nxcodebuild test \\\n  -project PillsAlarm.xcodeproj \\\n  -scheme PillsAlarm \\\n  -destination 'platform=iOS Simulator,name=iPhone 16,OS=latest'\n```\n\n## GitHub Automation\n\nThis repository uses GitHub Actions for:\n\n- PillCore unit tests\n- iOS simulator build/test coverage\n- CodeQL analysis\n- Dependabot updates for GitHub Actions and Swift Package Manager\n\n## Status\n\nPill Care is under active development. The production CloudKit schema and App Store/TestFlight deployment are managed separately through Apple Developer and App Store Connect.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkolisko%2Fpills-alarm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkolisko%2Fpills-alarm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkolisko%2Fpills-alarm/lists"}