A comprehensive iOS application for professional drivers, fleet operators, and vehicle owners to track vehicles, perform pre-trip inspections, and log drives with iCloud synchronization.
- π Multi-Vehicle Tracking - Manage cars, trucks, vans, trailers, boats, motorcycles, and more
- β Pre-Trip Checklists - Customizable inspection templates for vehicle safety
- π Drive Logging - Record trips with mileage, dates, and detailed notes
- βοΈ iCloud Sync - Automatic synchronization across all your iOS devices
- π Conflict Resolution - Smart handling of sync conflicts with user control
- π· License Plate Scanner - Built-in OCR for quick plate recognition
- πΎ Import/Export - Backup and restore data in JSON format
- π Privacy First - All data stored locally or in your private iCloud
Coming soon - Add screenshots of the app in action
- iOS 17.0+ / iPadOS 17.0+
- Xcode 15.0+ (for development)
- Swift 5.9+
- iCloud account (optional, for sync)
-
Clone the repository:
git clone https://github.com/furfarch/Purus.Drive.git cd Purus.Drive -
Open the project in Xcode:
open PurusDrive.xcodeproj
-
Select your target device and run (βR)
Coming soon
- Launch the app and choose storage mode (Local or iCloud)
- Add your first vehicle - Tap + and fill in details
- Create a checklist template - Set up pre-trip inspections
- Log a drive - Record your first trip with mileage
For detailed instructions, see the Getting Started Guide.
Comprehensive documentation is available in the Wiki:
- Getting Started - Installation and setup
- User Guide - Complete usage guide
- Features Guide - Detailed feature documentation
- Architecture - Technical architecture overview
- Data Models - Core data structures
- CloudKit Sync - Synchronization implementation
- Developer Guide - Contributing and development
- SwiftUI - Modern declarative UI framework
- SwiftData - Apple's latest persistence framework
- CloudKit - iCloud synchronization and storage
- Vision - License plate recognition
- Combine - Reactive state management
Purus.Drive follows MVVM architecture with these key components:
- Models: SwiftData entities (Vehicle, Trailer, DriveLog, Checklist)
- Views: SwiftUI views with declarative UI
- Services: Business logic layer (CloudKitSyncService, ExportService, etc.)
- Sync: Manual CloudKit sync with conflict detection
For detailed architecture information, see Architecture Documentation.
Track unlimited vehicles with photos, details, and maintenance notes. Support for multiple vehicle types with custom icons.
Create reusable checklist templates for different vehicle types. Complete inspections before each drive to ensure safety and compliance.
Record trips with start/end mileage, dates, and reasons. Attach pre-trip inspection checklists for complete documentation.
Automatic synchronization across all your devices. Smart conflict resolution when the same item is edited on multiple devices.
When sync conflicts occur, users can choose which version to keep (local or remote) with clear timestamps and information.
# Clone repository
git clone https://github.com/furfarch/Purus.Drive.git
cd Purus.Drive
# Open in Xcode
open PurusDrive.xcodeproj
# Build and run
# Press βR in Xcode# Run all tests
xcodebuild test \
-project PurusDrive.xcodeproj \
-scheme PurusDrive \
-destination 'platform=iOS Simulator,name=iPhone 15'Or press βU in Xcode.
# Install fastlane
gem install fastlane
# Run tests
fastlane test
# Build for release
fastlane buildWe welcome contributions! Please see the Developer Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes and add tests
- Commit your changes (
git commit -m 'feat: Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Apple's Swift API Design Guidelines
- Use SwiftUI best practices
- Keep views small and focused
- Add tests for new features
- Update documentation as needed
Purus.Drive/
βββ PurusDrive/ # Main app target
β βββ Models.swift # Data models
β βββ Views/ # SwiftUI views
β βββ Services/ # Business logic
β βββ Assets.xcassets/ # Images and icons
βββ PurusDriveTests/ # Unit tests
βββ PurusDriveUITests/ # UI tests
βββ wiki/ # Documentation
βββ fastlane/ # Automation
βββ .github/ # CI/CD workflows
The project uses GitHub Actions for continuous integration:
- Automated testing on pull requests
- Build verification
- Code quality checks
- Security scanning
- Fuel tracking and economy calculations
- Maintenance scheduling and reminders
- Expense tracking
- Advanced reporting and analytics
- Export to PDF
- Multi-language support
- Apple Watch companion app
- Siri shortcuts integration
See Issues for a list of known issues and feature requests.
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: Wiki
- Bug Reports: GitHub Issues
- Feature Requests: GitHub Issues
- Discussions: GitHub Discussions
Developed by Chris Furfari and contributors.
Special thanks to:
- Apple for SwiftUI, SwiftData, and CloudKit frameworks
- The open-source community
- All contributors and testers
Purus.Drive respects your privacy:
- All data stored locally on your device
- iCloud sync uses your private CloudKit container
- No data shared with third parties
- No analytics or tracking
- You control your data completely
- Built with SwiftUI and SwiftData
- Uses Vision framework for license plate recognition
- Follows Apple's Human Interface Guidelines
- Inspired by the needs of professional drivers
Made with β€οΈ for the driving community