A modern and comprehensive navigation application built with Flutter, offering an advanced alternative to Google Maps with real-time navigation, background services, and sophisticated user interface powered by Azure Maps.
Join us in revolutionizing mobile navigation! We welcome contributions from developers of all skill levels.
π Contributing Guide β’ π Report Issues β’ π¬ Discussions
(Screenshots coming soon)
- Optimized route calculation powered by Azure Maps API
- Real-time navigation with continuous GPS tracking and turn-by-turn instructions
- Multi-modal transport: π Car, ποΈ Motorcycle, πΆ Walking, π΄ Cycling, π Public Transit
- Intelligent voice guidance with advanced text-to-speech
- Automatic recalculation when deviating from route
- Smart caching for partial offline navigation
- Persistent navigation with Android foreground service
- Rich notifications with real-time progress updates
- System overlay for display over other applications
- Automatic management of permissions and battery optimizations
- Quick actions: Stop/open from notifications
- Material Design 3 with smooth animations
- Adaptive dark/light mode following system preferences
- Responsive design optimized for all screen sizes
- Reusable components with modular architecture
- Optimized performance with Provider state management
- Multi-modal route calculation (car, bike, walking, public transit)
- Turn-by-turn voice instructions
- Real-time navigation with automatic recalculation
- Traffic avoidance and alternative routes
- Navigation mode with simplified interface
- Save locations with custom descriptions
- Category organization (Home, Work, Restaurants, etc.)
- Custom tags for better organization
- Import/Export favorites functionality
- Cross-device synchronization
- Distance measurement between points
- Area calculation for defined zones
- Real-time measurements with dynamic display
- Metric and imperial units support
- Ruler tool for precise measurements
- Location sharing via link or QR code
- Route sharing with complete details
- QR code generation for quick access
- Export to social networks and messaging apps
- Short links for easy sharing
- Intelligent caching for offline maps
- Local storage with SharedPreferences and ObjectBox
- Memory optimization and performance tuning
- Automatic cache cleanup
- Incremental data backup
- Contextual alerts with various types (info, success, warning, error)
- Differentiated haptic feedback by type
- Non-intrusive notifications with auto-dismissal
- Accessible notification history
- Push notifications for navigation updates
- Flutter 3.19+ - Cross-platform UI framework
- Azure Maps API - Premium mapping and routing services
- Provider Pattern - Reactive state management
- ObjectBox - High-performance local database
- Material Design 3 - Modern UI components
lib/
βββ core/
β βββ config/
β β βββ azure_maps_config.dart # Azure Maps configuration
β βββ theme/
β βββ app_theme.dart # Global themes and styles
βββ features/
β βββ favorites/
β β βββ providers/
β β βββ favorites_provider.dart # Favorites management
β βββ map/
β β βββ providers/
β β β βββ map_provider.dart # Map state management
β β βββ screens/
β β β βββ map_screen.dart # Main map interface
β β βββ widgets/
β β βββ navigation_panel.dart # Navigation UI
β β βββ search_results_sheet.dart # Search results
β βββ navigation/
β β βββ providers/
β β βββ navigation_provider.dart # Route calculation
β βββ search/
β βββ providers/
β βββ search_provider.dart # Search and geocoding
βββ models/
β βββ location_model.dart # Location data structures
β βββ navigation_models.dart # Navigation entities
β βββ search_models.dart # Search result models
βββ services/
β βββ azure_maps_routing_service.dart # Azure Maps routing
β βββ places_service.dart # Places and POI search
β βββ advanced_location_service.dart # Advanced location services
β βββ background_service.dart # Background navigation
βββ shared/
βββ services/
β βββ location_service.dart # GPS and location
β βββ cache_service.dart # Intelligent caching
β βββ storage_service.dart # Local data storage
βββ widgets/
βββ animated_fab.dart # Animated floating button
βββ loading_indicator.dart # Loading animations
βββ map_controls.dart # Map interaction controls
dependencies:
flutter: ^3.19.0
provider: ^6.1.2 # State management
azure_maps_flutter: ^1.0.0 # Azure Maps integration
objectbox: ^4.0.0 # Local database
geolocator: ^12.0.0 # GPS services
permission_handler: ^11.3.1 # System permissions
flutter_local_notifications: ^17.2.1 # Push notifications
flutter_tts: ^4.0.2 # Text-to-speech
share_plus: ^9.0.0 # System sharing
qr_flutter: ^4.1.0 # QR code generationHordMaps follows a clean architecture pattern with distinct layers:
- Presentation Layer: Screens, widgets, and providers
- Business Logic Layer: Services and use cases
- Data Layer: Models, repositories, and data sources
- Infrastructure Layer: External APIs, local storage, and system services
- Flutter SDK 3.19.0 or higher
- Dart SDK 3.3.0 or higher
- Android Studio / VS Code with Flutter extension
- Azure Maps account (for API keys)
-
Clone the repository
git clone https://github.com/yourusername/hordmaps.git cd hordmaps -
Install dependencies
flutter pub get
-
Configure Azure Maps
- Create an Azure Maps account at Azure Portal
- Get your subscription key
- Create
lib/core/config/azure_maps_config.dart:
class AzureMapsConfig { static const String subscriptionKey = 'YOUR_AZURE_MAPS_KEY'; static const String baseUrl = 'https://atlas.microsoft.com'; }
-
Run the application
flutter run
# Android
flutter build apk --release
# iOS
flutter build ios --release- Pan: Drag to move the map
- Zoom: Pinch to zoom in/out or use zoom buttons
- Quick zoom: Double-tap to zoom in
- Add marker: Long press on the map
- Tap the search bar at the top
- Enter an address, place name, or coordinates
- Select from the dropdown results
- The location will be marked and centered on the map
- Search for your destination
- Tap "Directions" on the location card
- Choose your transport mode (car, walking, cycling, transit)
- Start navigation with the "Start" button
- Add to favorites: Long press on any location or tap the star icon
- Organize: Use the favorites menu to create categories
- Edit: Long press on any favorite to modify details
- Share: Select a favorite and use the share button
- +/-: Zoom in/out
- Space: Center on current location
- M: Toggle map style
- S or Ctrl+F: Open search
- N: Enter navigation mode
- Esc: Return to main menu
- Standard: Classic detailed map view
- Dark: Night-friendly dark theme
- Satellite: High-resolution satellite imagery
- Terrain: Topographic with elevation data
- Hybrid: Satellite with road overlays
- Auto: Follows system theme
- Light: Always light theme
- Dark: Always dark theme
- Custom colors: Configurable primary and accent colors
Choose from 5 different marker styles:
- Classic pin
- Modern dot
- Star shape
- Custom icons
- Color-coded categories
We welcome contributions from developers of all skill levels! Here's how you can help:
- Look for issues labeled
hacktoberfest- These are specially curated for the event - Start with
good first issue- Perfect for newcomers - Check out
help wanted- Areas where we need community support
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow the Flutter style guide
- Write tests for new features
- Update documentation for any API changes
- Ensure your code passes all CI checks
- π Bug fixes: Help us squash bugs
- π New features: Add exciting functionality
- π Documentation: Improve guides and API docs
- π Translations: Help localize the app
- π¨ UI/UX: Enhance the user experience
- β‘ Performance: Optimize app speed and memory usage
- iOS version release
- Offline maps download
- Voice command integration
- Route optimization improvements
- Public transport integration
- Traffic data integration
- Social features (location sharing with friends)
- Advanced search filters
- AR navigation mode
- Electric vehicle routing
- Integration with smart home devices
- Advanced analytics dashboard
This project is licensed under the MIT License - see the LICENSE file for details.
- Azure Maps - Microsoft Azure mapping services
- Material Design - Google's design system
- OpenStreetMap - Community-driven map data (for public transport)
- Flutter Community - Amazing open-source packages
- π Documentation
- π¬ Discussions
- π Issue Tracker
- β Star this repository to show your support
- π Watch for updates and releases
- π Share with your developer network
For business inquiries or partnerships: contact@hordmaps.com
Thanks goes to these wonderful people (emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!