Part of the purus Series - Minimalist apps focused on one tracking task at a time.
A SwiftUI-based iOS and macOS application for managing personal medical records with CloudKit integration for cloud synchronization and sharing.
Purus Health helps you keep track of your medical information and that of your pets in one secure, private application. All data is stored locally on your device using SwiftData, with optional CloudKit synchronization for backup and sharing across devices.
- 📱 Multi-Platform Support: Native apps for iOS (iPhone & iPad) and macOS
- 🔒 Privacy-First: All data stored locally on your device
- ☁️ Optional Cloud Sync: CloudKit integration for backup and synchronization
- 🤝 Sharing: Share medical records with family members or healthcare providers
- 👥 Support for Humans and Pets: Manage medical records for all family members
- 📊 Comprehensive Record Types:
- Blood work and lab results
- Medications and prescriptions
- Vaccinations
- Allergies
- Medical history
- Doctor visits
- Weight tracking
- Medical documents
- Emergency contacts
- iOS: 26.2 or later
- macOS: 26.2 or later
- Xcode: Latest version with Swift 5.0 support
- Development Tools: Swift, SwiftUI, SwiftData
- Language: Swift 5.0
- UI Framework: SwiftUI
- Data Persistence: SwiftData
- Cloud Services: CloudKit (optional)
- Testing: Swift Testing framework
- Xcode installed on your Mac
- An Apple Developer account (for CloudKit features)
- iOS 26.2+ device/simulator or macOS 26.2+ system
-
Clone the repository:
git clone https://github.com/furfarch/Purus.Health.git cd Purus.Health -
Open the project in Xcode:
open PurusHealth.xcodeproj
-
Select your target device (iOS Simulator, iPad Simulator, or My Mac)
-
Build and run the project (⌘R)
Tests use the Swift Testing framework. To run tests:
- In Xcode, open the Test Navigator (⌘6)
- Click the play button next to "PurusHealthTests"
- Or use the keyboard shortcut (⌘U)
PurusHealth/
├── PurusHealth/
│ ├── Models/ # SwiftData model definitions
│ ├── Views/ # SwiftUI views
│ │ ├── RecordEditor/ # Record editing views
│ │ └── RecordViewer/ # Record viewing views
│ ├── Services/ # Business logic and services
│ ├── AppConfig.swift # Centralized configuration
│ └── Assets.xcassets # Asset catalog
├── PurusHealthTests/ # Unit tests
└── PurusHealthUITests/ # UI tests
CloudKit features are opt-in per record:
- Container ID:
icloud.com.purus.health - Features:
- Private database for personal records
- Shared database for records shared with others
- Real-time synchronization across devices
- Participant management for shared records
To enable CloudKit for a record:
- Toggle "Enable Cloud Sync" in the record settings
- Optionally enable sharing to share with others
- Built with SwiftData
@Modelmacro - Cascade delete rules for data integrity
- Support for relationships between entities
- Stable identifiers using
uuidfields
- Declarative SwiftUI patterns
- Environment-based dependency injection
- Separate concerns for editing and viewing
- Preview providers for development
- CloudKit synchronization services
- PDF export functionality
- Contact management
- Share management
Purus Health is part of a family of minimalist tracking apps:
- Simply Drive - Vehicle tracking, drive logs, and maintenance checklists
- Purus Health - Medical records and health tracking for humans and pets
- Simply Train - Workout and training tracker (coming soon)
Each app in the Simply Series follows the same design principles:
- Minimalist approach with essential features only
- Fast data entry and retrieval
- Clean, intuitive interfaces
- Focused scope - one problem solved comprehensively
- Consistent architecture across all apps
This is a personal project, but suggestions and feedback are welcome. Please open an issue to discuss potential changes.
- All data is stored locally on your device by default
- CloudKit integration is optional and user-controlled
- No third-party analytics or tracking
- Full control over data sharing
- iOS hardware encryption protects your data
[Add your license information here]
For issues, questions, or feature requests, please open an issue on GitHub.
Built with SwiftUI and SwiftData, leveraging Apple's modern app development frameworks.