A comprehensive iOS mobile app for home maintenance and asset tracking, designed to help homeowners manage their property maintenance records, schedule tasks, and track service providers.
- Asset Management - Track all home systems, appliances, and equipment
- Maintenance Records - Log all service history with costs and notes
- Task Scheduling - Create and manage upcoming maintenance tasks
- Service Providers - Maintain contact information for contractors and service companies
- Dashboard - Quick overview of your home maintenance status
- ✅ Full CRUD operations for all entities
- ✅ Smart filtering and search
- ✅ Category and location organization
- ✅ Priority levels for tasks
- ✅ Cost tracking with Decimal precision
- ✅ Overdue task detection
- ✅ Offline-first architecture (local SQLite database)
(Coming soon - screenshots will be added after UI polish)
- iOS 17.0 or later
- Xcode 15.0 or later
- Swift 5.9 or later
-
Clone the repository
git clone https://github.com/cjnemes/HomeMaintMobile.git cd HomeMaintMobile -
Open in Xcode
open HomeMaintMobile/HomeMaintMobile.xcodeproj
-
Build and Run
- Select your target device or simulator
- Press
⌘Rto build and run - Or use: Product → Run
(Instructions will be added when app is published to TestFlight)
-
First Launch
- The app automatically creates a default home and seeds categories/locations
- You'll see the Dashboard with 0 assets, 0 tasks, 0 maintenance records
-
Add Your First Asset
- Tap "Assets" on the Dashboard
- Tap the "+" button
- Fill in asset details (name, category, location, etc.)
- Save
-
Log Maintenance
- Navigate to "Maintenance" from the Dashboard
- Tap "+" to add a maintenance record
- Select the asset, add details and cost
- Save
-
Create Tasks
- Navigate to "Tasks" from the Dashboard
- Tap "+" to create a new task
- Set priority, due date, and link to an asset
- Save
- Framework: SwiftUI (iOS 17+)
- Language: Swift 5.9+
- Database: SQLite with GRDB.swift v7.8.0
- Architecture: Repository Pattern + MVVM
- Testing: XCTest (85%+ coverage target)
HomeMaintMobile/
├── HomeMaintMobile/
│ ├── Models/ # Data models
│ ├── Repositories/ # Data access layer (Repository Pattern)
│ ├── ViewModels/ # Business logic (MVVM)
│ ├── Views/ # SwiftUI views
│ │ ├── Assets/
│ │ ├── Dashboard/
│ │ ├── Maintenance/
│ │ ├── ServiceProviders/
│ │ └── Tasks/
│ ├── Services/ # Core services (Database, FileStorage)
│ └── Utils/ # Extensions and helpers
├── HomeMaintMobileTests/ # Unit tests (85%+ coverage)
├── CLAUDE.md # AI development guidelines
├── DEVELOPMENT_ROADMAP.md # Feature roadmap and planning
└── PRE_RELEASE_CHECKLIST.md # Release readiness checklist
HomeMaint Mobile follows best practices from enterprise iOS development:
All database access goes through repository classes that extend BaseRepository. This provides:
- Clean separation of concerns
- Testable data access (90%+ repository test coverage)
- Swappable data sources (could add iCloud sync later)
- Models: Swift structs conforming to Codable/GRDB protocols
- ViewModels:
ObservableObjectclasses using repositories - Views: Pure SwiftUI views observing ViewModels
- Tests written before/during implementation
- 85%+ overall test coverage maintained
- Critical for autonomous AI development
homes- Home/property informationcategories- Asset categories (HVAC, Plumbing, etc.)locations- Rooms and areasassets- Systems, appliances, equipmentmaintenance_records- Service historytasks- Upcoming maintenanceservice_providers- Contractor contactsattachments- Documents and photos (Coming soon)
The app uses a migration system to safely evolve the database schema. Currently at version 3.
# Run all tests
xcodebuild test -scheme HomeMaintMobile \
-destination 'platform=iOS Simulator,name=iPhone 15'
# Run with coverage
xcodebuild test -scheme HomeMaintMobile \
-destination 'platform=iOS Simulator,name=iPhone 15' \
-enableCodeCoverage YES- Overall Target: 85%+
- Repositories: 90%+
- ViewModels: 85%+
- Current Status: ✅ Meeting targets
See DEVELOPMENT_ROADMAP.md for detailed feature planning.
- Database setup with migrations
- Asset management
- Task management
- Service providers
- Maintenance records UI
- Dashboard
- Camera integration and photo capture
- Photo/document attachments
- Attachment management UI
- GitHub repository setup
- Comprehensive documentation
- TestFlight beta distribution
- iCloud sync
- Data export/import
- Push notifications
- Recurring task automation
- Multi-home support
Contributions are welcome! Please read CONTRIBUTING.md (coming soon) for details on:
- Code style guidelines
- Pull request process
- Testing requirements
- Commit message format
This project follows strict guidelines to avoid common pitfalls:
- ✅ Uses Decimal for currency (not Float/Double)
- ✅ Repository Pattern for data access (not direct SQL in views)
- ✅ Proper error handling (no silent failures)
- ✅ Safe database operations (SQL operations, not file deletion)
- ✅ Keychain for sensitive data (not UserDefaults)
See CLAUDE.md for full development guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with GRDB.swift by Gwendal Roué
- Architecture inspired by the HomeMaint web app
- Developed following AI-assisted development best practices
Chris Nemes
- GitHub: @cjnemes
- Project Link: https://github.com/cjnemes/HomeMaintMobile
Status: Active Development | Version: 1.0.0-MVP | Last Updated: October 26, 2025