Aplicación móvil desarrollada con Flutter para capturar ubicaciones GPS, registrar rutas en tiempo real, consultar historial y administrar datos locales.
- Ubicación actual
- Obtiene latitud, longitud y precisión del dispositivo.
- Permite copiar coordenadas al portapapeles.
- Guarda ubicaciones con nombre en base de datos local.
- Incluye captura con cámara y superposición de datos de ubicación.
- Grabación de rutas
- Inicia/detiene seguimiento de recorrido.
- Registra puntos de ruta en segundo plano.
- Visualiza recorrido en mapa.
- Historial
- Lista ubicaciones y rutas guardadas.
- Consulta detalle de rutas registradas.
- Exporta datos y comparte información.
- Ajustes
- Limpieza de archivos temporales.
- Exportar/importar base de datos.
- Acceso a licencias de terceros.
El proyecto está organizado por features y capas:
lib/core: servicios reutilizables, widgets compartidos, tema y utilidades.lib/features/ubicacion: captura de ubicación, persistencia y UI asociada.lib/features/rutas: tracking de rutas y gestión de puntos.lib/features/historial: consulta y visualización de registros guardados.lib/features/ajustes: configuración operativa de la app.lib/features/home: navegación principal conNavigationBar.
También cuenta con pruebas unitarias y de UI en test/ para viewmodels y páginas clave.
- Framework: Flutter
- Lenguaje: Dart
- Estado: Riverpod
- Mapa/GPS:
flutter_map,geolocator,latlong2 - Persistencia local:
sqflite - Multimedia:
camerawesome,image - Compartir/archivos:
share_plus,file_picker,file_saver - Notificaciones:
flutter_local_notifications - Tracking en segundo plano:
flutter_background_geolocation
Solicitadas para este proyecto:
- Flutter 3.38.9
- Dart 3.10.8
Nota: en
pubspec.yamlelenvironmentactual declarasdk: ^3.5.3, por lo que conviene validar compatibilidad de dependencias al actualizar o alinear versiones.
Antes de ejecutar el proyecto:
- Instalar Flutter y Dart (idealmente en las versiones indicadas arriba).
- Tener Android Studio/Xcode configurado según plataforma.
- Verificar dispositivos disponibles:
flutter doctor
flutter devices# 1) Clonar
git clone <URL_DEL_REPOSITORIO>
cd GPS-Tools
# 2) Instalar dependencias
flutter pub get
# 3) Ejecutar
flutter runflutter testIncluye permisos para:
- Ubicación precisa y aproximada.
- Servicio en primer plano para tracking de ubicación.
- Cámara.
- Internet.
- Notificaciones y arranque tras reinicio.
Archivo: android/app/src/main/AndroidManifest.xml.
Incluye descripciones de permisos para:
- Ubicación en uso y en segundo plano.
- Cámara.
UIBackgroundModespara location/remote-notification.
Archivo: ios/Runner/Info.plist.
La app usa SQLite (locations.db) y crea tablas para:
locationsroutesroute_points
Archivo principal de acceso y creación: lib/core/data/data_base_helper.dart.
La pantalla principal usa un NavigationBar con 4 secciones:
- Ubicación
- Grabar Ruta
- Historial
- Ajustes
Archivo: lib/features/home/presentation/pages/home_screen.dart.