A modern GPS journey tracking app built with SwiftUI for recording and visualizing your travel paths
PathTracker is an elegant iOS application designed to help travelers record, visualize, and manage their journeys. Built with SwiftUI and leveraging Apple's native CoreLocation framework, it provides a seamless experience for tracking your adventures around the world.
- Beautiful Overview: Elegant gradient-based interface with travel statistics
- Quick Stats: Real-time display of visited locations, countries, and cities
- Recent Journeys: Quick access to your latest travel experiences
- World Map Preview: Visual representation of your global adventures
- Countries Collection: Organized view of all countries you've visited
- Real-time Tracking: Live GPS tracking with Apple's CoreLocation
- Visual Journey Paths: See your travel routes displayed on the map
- Location Pins: Color-coded pins representing different countries
- Map Controls: Switch between standard, satellite, and hybrid views
- Journey Filtering: Filter journeys by time periods
- Location Details: Tap pins to view detailed visit information
- Smart Tracking: Intelligent path recording with configurable parameters
- Journey Management: Start, pause, resume, and stop tracking
- Photo Integration: Capture and attach photos to your journeys
- Location Naming: Automatic location detection with manual override
- Real-time Status: Live tracking status with current location display
- Chronological Display: View all your journeys in chronological order
- Time Filtering: Filter by this month, last month, or custom date ranges
- Search Functionality: Search through your journey history
- Statistics Summary: Quick stats for the selected time period
- Journey Details: Detailed view of each journey with photos and notes
- User Management: Profile editing with photo upload
- Travel Statistics: Comprehensive travel analytics
- Privacy Controls: Granular privacy settings for location sharing
- Data Export: Export your travel data in multiple formats (JSON, CSV, GPX)
- Notification Settings: Customize app notifications
- Help & Support: Built-in help system and support options
- Secure Login: Email-based authentication system
- User Registration: Simple signup process with validation
- Data Persistence: Secure local data storage
- Privacy First: Location data stays on your device
- SwiftUI: Modern declarative UI framework
- CoreLocation: Apple's native location services
- Combine: Reactive programming for data flow
- PhotosUI: Native photo selection and management
- MapKit: Advanced mapping capabilities
RecordPath/
βββ RecordPathApp.swift # App entry point
βββ ContentView.swift # Main app coordinator
βββ Managers/
β βββ AuthenticationManager.swift # User authentication
β βββ PathTrackingManager.swift # GPS tracking logic
βββ Models/
β βββ PathTrackingModels.swift # Core data models
β βββ SimpleModels.swift # Legacy compatibility models
βββ Services/
β βββ CoreLocationService.swift # Location service wrapper
βββ Views/
βββ Authentication/ # Login/signup screens
βββ Dashboard/ # Home dashboard
βββ Map/ # Map interface
βββ Recording/ # Journey recording
βββ Timeline/ # Journey history
βββ Profile/ # User profile & settings
βββ Country/ # Country-specific views
βββ Journey/ # Journey detail views
- Manages GPS tracking lifecycle
- Handles location permissions
- Processes and filters location data
- Creates journey segments and paths
- User session management
- Sample data generation for demo
- Secure data persistence
- User profile management
- Native iOS location services
- Permission handling
- Real-time location updates
- Battery-optimized tracking
- Xcode 14.0 or later
- iOS 14.0 or later
- Apple Developer account (for device testing)
-
Clone the repository
git clone https://github.com/yourusername/PathTracker.git cd PathTracker -
Open in Xcode
open RecordPath.xcodeproj
-
Configure signing
- Select your development team in project settings
- Update bundle identifier if needed
-
Build and run
- Select your target device or simulator
- Press
Cmd + Rto build and run
The app requires location permissions to function. These are configured in Info.plist:
NSLocationWhenInUseUsageDescriptionNSLocationAlwaysAndWhenInUseUsageDescription
- Location data is processed locally
- No external APIs required for basic functionality
- Optional: Configure AMap SDK for enhanced China support
- Minimum Distance: 5 meters between recorded points
- Time Interval: 10 seconds minimum between recordings
- Battery Optimization: Intelligent location sampling
- Segment Management: Automatic path segmentation
- Journey: Complete travel experience with multiple segments
- PathSegment: Individual tracking sessions within a journey
- LocationPoint: GPS coordinates with timestamp and metadata
- Visit: Significant locations with user annotations
- JSON Format: Complete data with metadata
- CSV Format: Spreadsheet-compatible format
- GPX Format: GPS exchange format for third-party apps
- Photo Inclusion: Optional photo export with data
# Clone the repository
git clone https://github.com/yourusername/PathTracker.git
# Navigate to project directory
cd PathTracker
# Open in Xcode
open RecordPath.xcodeproj- Unit tests available in
RecordPathTests/ - UI tests in
RecordPathUITests/ - Run tests with
Cmd + U
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
| Dashboard | Map View | Recording | Timeline |
|---|---|---|---|
Modify tracking sensitivity in PathTrackingManager.swift:
private let minimumDistance: Double = 5.0 // meters
private let minimumTimeInterval: TimeInterval = 10.0 // secondsCustomize colors and styling in individual view files or create a theme system.
Switch between Apple CoreLocation and AMap SDK by modifying service implementations.
This project is licensed under the MIT License - see the LICENSE file for details.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: support@pathtracker.app
- Cloud sync capabilities
- Social sharing features
- Advanced analytics
- Apple Watch companion app
- Offline map support
- Journey sharing with friends
- AI-powered travel insights
- Apple for CoreLocation and MapKit frameworks
- SwiftUI community for inspiration and best practices
- Open source contributors and testers
Made with β€οΈ for travelers around the world
Start tracking your adventures today! π