Saltar al contenido principal

Usa el contrato de arquitectura revisado

Driver App es un cliente React Native compuesto por un contenedor de aplicación, proveedores de estado de Ordering, estado de permisos del dispositivo y navegación anidada. Usa este contrato para decidir qué capa es responsable de un estado visible antes de cambiar configuración, navegación o una integración.

El comportamiento depende de la configuración del proyecto, la cuenta y sesión, el horario de Driver, los permisos del dispositivo, la plataforma, la conectividad, el ciclo de vida de la app y la disponibilidad de proveedores.

Disponibilidad​

Las solicitudes públicas de conductores y la asignación desde el lado del operador son flujos de productos adyacentes. No son rutas de Driver App ni demuestran que el cliente móvil haya admitido una cuenta o tarea.

Requisitos previos​

  • Usa una compilación de Driver App configurada para un proyecto de Ordering.
  • Proporciona la configuración mediante los límites compatibles de la aplicación y proveedores de Ordering en lugar de cambiar directamente el estado de navegación.
  • Trata el estado de sesión local, la autorización del servidor y la identidad del proveedor como entradas separadas.
  • Revisa los contratos de permisos y ciclo de vida antes de añadir comportamiento nativo o en segundo plano.
  • Mantén los efectos de pedidos, ubicación, comunicación, cuentas y proveedores en sus contratos públicos específicos.

Límites de responsabilidad​

CapaResponsabilidad públicaNo establece
Contenedor nativo de aplicaciónIniciar React Native, proporcionar diseño de área segura, cargar el tema configurado y transferir el control al árbol de Driver App.Disponibilidad de React Navigation o del backend
Composición de Driver AppProporcionar ajustes de proyecto, proveedores de Ordering, estado de permisos, navegación, avisos y recursos propios de la aplicación.Autorización de una tarea ni éxito de un efecto
Proveedores de OrderingCoordinar configuración de API, idioma, configuración de proyecto, sesión, tiempo real, pedidos, negocios, clientes y estado de interfaz compartido.Que todos los proveedores se completaran correctamente o usen un contrato desplegado que coincida con este código fuente
Navegación RootElegir navegación en carga, sin sesión, bloqueada por horario o autenticada a partir del estado local actual.Aceptación del servidor, vigencia de datos o éxito del proveedor
Navegación autenticadaProporcionar una pila de detalles alrededor del navegador principal por pestañas.Elegibilidad para cualquier acción de detalle visible
Pestañas principalesPresentar primero Orders, además de Map view, Messages y Profile; sustituir Map view por la superficie de permisos cuando se requiera localmente.Éxito de lecturas, escrituras, acceso a ubicación o entrega de mensajes
APIAutorizar y validar cada solicitud de forma independiente antes de responder por una lectura, escritura o efecto posterior aceptado en el servidor. Los contratos de tareas afectadas siguen excluidos si no se demuestra ese límite.Navegación nativa, almacenamiento local ni transferencias del sistema operativo
Sistema operativo y proveedoresControlar permisos, ciclo de vida, notificaciones, tiempo real, mapas, ubicación, medios, contactos y otros comportamientos externos después de la transferencia.Finalización dentro de Driver App

El contenedor de navegación no tiene una configuración revisada de enlaces entrantes. Las páginas genéricas de registro, error de red y no encontrado que existen en el código fuente no están registradas como destinos de Driver App. Mantén los errores productivos dentro del artículo y la superficie que sea responsable de la tarea afectada.

Entradas y resultados​

EntradaLímite consumidorResultado observableLímite
Proyecto y configuración de APIDriver App y proveedores de OrderingLos proveedores se inicializan para el proyecto configurado.Inicializar no demuestra disponibilidad del servicio.
Tema y recursos localesContenedor nativo/de AppLas superficies de carga, navegación y tareas usan la presentación configurada.La presentación no es autoridad de producto ni API.
Estado de sesión guardadoProveedor de sesión y navegación RootRoot puede elegir la rama autenticada o sin sesión cuando termina la carga.Los datos guardados no se validan en el servidor.
Configuración de horario DriverNavegación RootPuede aparecer un requisito previo de horario antes del contenedor autenticado.La comprobación del cliente no define todas las reglas del servidor.
Estado de permisos y plataformaProveedor de permisos y pestaña MapLa aplicación puede mostrar el mapa o un sustituto específico del permiso.Los permisos solicitados, declarados, efectivos, concedidos y bloqueados difieren.
Conectividad y estado de tiempo realProveedores y pantallas autenticadasPueden cambiar las lecturas, suscripciones y estados de carga, vacío o error.La conexión o intención de unirse a una sala no demuestra recibo, vigencia ni finalización.
Evento de navegación y entrada de rutaRoot, pila autenticada o navegación por pestañasPuede hacerse visible la superficie registrada que corresponde.Una ruta visible no demuestra que sus datos o acción hayan tenido éxito.

El orden de proveedores forma parte del contrato: los consumidores internos dependen del estado de las capas externas de API, idioma, configuración, sesión y tiempo real. No reordenes proveedores ni eludas sus controles de carga sin revisar a todos los consumidores posteriores.

Seguridad y privacidad​

  • Guarda y transmite solo la cantidad mínima de datos de cuenta/tarea que requiera el contrato público específico.
  • Nunca expongas tokens, identificadores de proveedores, registros de cuenta, datos de pedidos, mensajes, contactos, coordenadas, medios ni configuración privada en registros o documentación.
  • Trata una sesión local restaurada como no confiable hasta que cada solicitud al servidor aplique su propia autorización y validación.
  • Mantén deshabilitados los proveedores de permisos, ubicación, notificaciones, tiempo real, contactos y medios en entornos de prueba/documentación, salvo que se demuestre el aislamiento de forma independiente.
  • No añadas una ruta pública no revisada a una página inactiva ni a una utilidad interna.

Límites y estados de fallo​

EstadoSignificado arquitectónicoRespuesta de mantenimiento
Pantalla nativa de inicio o App cargandoEl siguiente estado de navegación aún no se admite localmente.Inspecciona por separado la disponibilidad de App y proveedores.
Entrada sin sesiónEl estado local de sesión no admitió la rama autenticada.Usa el contrato de autenticación; no fuerces el navegador autenticado.
Requisito previo de horarioLa compuerta de horario configurada en cliente tiene prioridad.Revisa la responsabilidad del horario y los límites del servidor antes de cambiar la compuerta.
Sustituto de permisosLa pestaña Map no tiene el resultado local de permiso necesario.Mantén el estado de permisos del SO separado de la navegación.
Zona de tarea vacía o con errorUna ruta montada no produjo contenido utilizable.Diagnostica el contrato de lectura/proveedor de esa ruta; no añadas una ruta global de error como atajo.
Tiempo real desconectado o retrasadoEl transporte es independiente de navegación y lecturas de API.Conserva el estado de tarea y usa el contrato de tiempo real.
Transferencia externa no disponibleEl sistema operativo/proveedor no admitió la superficie solicitada.Muestra un fallo local observable sin afirmar que el proveedor completó la operación.

Los efectos de pedidos, asignación, estado, ubicación, mensajes, recibos de lectura, contacto, notificaciones, sesión, reseñas, entrega confirmada, PIN, medios y proveedores pertenecen a sus funciones respectivas y no deben usarse como comprobaciones de arquitectura.

Diagnóstico​

SíntomaLímite que inspeccionarDiagnóstico seguro
La primera pantalla visible no es la previstaDisponibilidad de Root, sesión guardada, tutorial, horario y estado de permisosRegistra solo la clase de ruta visible y plataforma; compárala con el contrato de inicio.
Una pestaña registrada aparece vacíaNavegación por pestañas frente al proveedor de datosConfirma qué capa está cargando, vacía, no disponible o con error sin repetir una acción.
No se puede abrir una pantalla de detalleRuta de pila registrada, entrada de ruta y estado de tarea de origenVerifica el contrato público de ruta y el formato saneado de entrada; no uses una utilidad interna de navegación como prueba.
Parece disponible en el código fuente una página genérica de errorRegistro de rutasTrátala como no pública hasta que el navegador productivo la registre y revise.
El estado difiere al volver a primer planoLímites de ciclo de vida de App, permisos, actualización de sesión, ubicación y tiempo realCompara el estado visible anterior/posterior sin registrar valores personales u operativos.

Vuelve a revisar este contrato cuando cambien el orden de proveedores, la prioridad de ramas Root, el registro del navegador, las pestañas principales, la configuración del proyecto, la hidratación de sesión, la sustitución por permisos o la responsabilidad de proveedores/nativo.

Guías relacionadas: Descripción general de Driver App · Inicio y carga · Inicio autenticado