Paquetes y ecosistemas Tracelet
Tracelet se construye utilizando una Arquitectura de complemento federado. En lugar de forzar una dependencia monolítica masiva en su aplicación, Tracelet se divide en varios paquetes modulares. Esto garantiza que el tamaño de su aplicación siga siendo pequeño, que solo proporcione los permisos y el código nativos que realmente necesita y que la lógica de backend permanezca completamente desacoplada del seguimiento de ubicación.
A continuación se muestra una descripción general de cada paquete del ecosistema Tracelet y lo que hace.
Los paquetes principales
Estos paquetes son la base de Tracelet. La mayoría de las aplicaciones sólo necesitarán interactuar directamente con el paquete principal tracelet.
NO TRADUCIR
Este es el paquete de interfaz principal que agrega a su pubspec.yaml. Proporciona la API principal de Dart (Tracelet.start(), Tracelet.ready()), los objetos de configuración (Config.balanced()) y maneja los enlaces de Dart a Rust.
NO TRADUCIR
La interfaz común abstracta que conecta el paquete frontend tracelet con las plataformas nativas subyacentes. Nunca interactuará con esto directamente, pero garantiza que todas las plataformas cumplan exactamente con los mismos métodos y tipos de retorno.
tracelet_android & tracelet_ios & tracelet_web
Estas son las implementaciones específicas de la plataforma. Cuando instala tracelet, Flutter automáticamente coloca estos paquetes de plataforma debajo del capó.
tracelet_androidcontiene los contenedores de Kotlin y la lógica del servicio en segundo plano de Android.tracelet_ioscontiene los contenedores Swift y la lógicaCLLocationManager.
Adaptadores de red y sincronización
Tracelet separa estrictamente el “seguimiento de ubicación” de la “sincronización de red”. Si desea crear su propia lógica de reintento HTTP manual dentro de onLocation, nunca tendrá que instalarlas. Pero si desea una sincronización fuera de línea automatizada y que funcione con batería, debe utilizar un adaptador.
NO TRADUCIR
El principal motor de redes nativo. Proporciona la API TraceletSync. En lugar de activar el motor Dart para enviar solicitudes HTTP, ejecuta un WorkManager (Android) o BGTask (iOS) nativo para vaciar las ubicaciones de SQLite en su backend HTTP automáticamente, incluso cuando se fuerza el cierre de su aplicación.
NO TRADUCIR
Un adaptador prediseñado para Supabase . Apunta el motor de sincronización HTTP nativo de Tracelet a una función RPC de Supabase Postgres (o una función de borde), establece los encabezados apikey/Authorization y actualiza el token de sesión de Supabase en segundo plano para que la sincronización siga funcionando cuando finaliza la aplicación.
NO TRADUCIR
Un adaptador prediseñado para Firebase Realtime Database (RTDB) . Apunta el motor de sincronización HTTP nativo de Tracelet a la API REST RTDB (100% sin servidor, sin funciones de nube) y actualiza el token de ID de autenticación de Firebase en segundo plano para que la sincronización siga funcionando cuando finaliza la aplicación.
Herramientas de diagnóstico y depuración
NO TRADUCIR
Un paquete de superposición de interfaz de usuario directo para desarrolladores. Agréguelo como dependencia de desarrollo (flutter pub add dev:tracelet_doctor), no como una dependencia normal: Flutter excluye los paquetes de dependencia de desarrollo de las versiones de lanzamiento, por lo que se elimina automáticamente de lo que envía. Al agregar tracelet_doctor a su aplicación durante la prueba, obtiene una hermosa superposición de diagnóstico que muestra:
- Anillos de precisión GPS en tiempo real
- El estado de movimiento actual (ESTACIONARIO vs EN MOVIMIENTO)
- Recuentos de filas de bases de datos SQLite nativas
- El consumo de batería subyacente
Se recomienda encarecidamente utilizar tracelet_doctor durante el control de calidad y las pruebas. Manténgalo en dev_dependencies y proteja el uso detrás de kDebugMode para que quede eliminado de sus versiones de lanzamiento.