Skip to content

JulianDr14/gps-tools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPS Tools

Aplicación móvil desarrollada con Flutter para capturar ubicaciones GPS, registrar rutas en tiempo real, consultar historial y administrar datos locales.

Funcionalidades principales

  • 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.

Arquitectura del proyecto

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 con NavigationBar.

También cuenta con pruebas unitarias y de UI en test/ para viewmodels y páginas clave.

Stack tecnológico

  • 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

Versiones usadas

Solicitadas para este proyecto:

  • Flutter 3.38.9
  • Dart 3.10.8

Nota: en pubspec.yaml el environment actual declara sdk: ^3.5.3, por lo que conviene validar compatibilidad de dependencias al actualizar o alinear versiones.

Requisitos previos

Antes de ejecutar el proyecto:

  1. Instalar Flutter y Dart (idealmente en las versiones indicadas arriba).
  2. Tener Android Studio/Xcode configurado según plataforma.
  3. Verificar dispositivos disponibles:
flutter doctor
flutter devices

Instalación y ejecución

# 1) Clonar
git clone <URL_DEL_REPOSITORIO>
cd GPS-Tools

# 2) Instalar dependencias
flutter pub get

# 3) Ejecutar
flutter run

Pruebas

flutter test

Permisos relevantes

Android

Incluye 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.

iOS

Incluye descripciones de permisos para:

  • Ubicación en uso y en segundo plano.
  • Cámara.
  • UIBackgroundModes para location/remote-notification.

Archivo: ios/Runner/Info.plist.

Base de datos local

La app usa SQLite (locations.db) y crea tablas para:

  • locations
  • routes
  • route_points

Archivo principal de acceso y creación: lib/core/data/data_base_helper.dart.

Navegación principal

La pantalla principal usa un NavigationBar con 4 secciones:

  1. Ubicación
  2. Grabar Ruta
  3. Historial
  4. Ajustes

Archivo: lib/features/home/presentation/pages/home_screen.dart.

About

GPS location capture, real-time route tracking, and local data management in a Flutter app

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages