Mobile
App móvil de ixiclinic — React Native 0.79 + Expo 54 con expo-router. Estructura inicial con pantallas de catálogo, resultados y sucursales.
La app móvil (apps/mobile) es la aplicación para iOS y Android del laboratorio. Está construida
con Expo y expo-router, y apunta al mismo API que el resto del sistema.
| Stack | React Native 0.79, Expo 54, expo-router 5, React 19 |
| Bundle / app | com.ixiclinic.app · nombre "ixiclinic Lab" (apps/mobile/app.json) |
| Paquete | @ixiclinic/mobile |
Nota: Es una base inicial (scaffold). Las pantallas existen con su navegación, pero el consumo del API aún está pendiente: el catálogo y los resultados muestran textos placeholder ("Conectar con API del laboratorio", "Ingrese su cédula y número de orden").
Routing por archivos (app/)
A diferencia del resto de las apps, mobile usa el directorio app/ (no src/), que es la
convención de expo-router (routing basado en archivos). El entrypoint es
expo-router/entry (main en package.json).
Pantallas reales en apps/mobile/app/:
| Archivo | Pantalla |
|---|---|
_layout.tsx | Layout raíz: un Stack de expo-router con los headers ocultos. |
index.tsx | Home ("ixiclinic Lab"): tarjetas que navegan a Catálogo, Resultados y Sucursales. |
catalog.tsx | Catálogo de pruebas (placeholder, pendiente conectar al API). |
results.tsx | Mis resultados (placeholder, pendiente conectar al API). |
branches.tsx | Sucursales / ubicaciones. |
La navegación entre pantallas se hace con router.push("/...") de expo-router.
Configuración (app.json)
scheme: "ixiclinic"(deep links).- iOS
bundleIdentifier: com.ixiclinic.app,supportsTablet: true. - Android
package: com.ixiclinic.app,adaptiveIcon.backgroundColor: #14b8a6. - Plugins:
expo-router.
Importa tipos compartidos vía @ixiclinic/types.
Comandos
Desde apps/mobile:
pnpm start # expo start
pnpm android # expo start --android
pnpm ios # expo start --ios
pnpm typecheck # tsc --noEmitNota: La app está pensada para hablar con el mismo API que el admin/portal (
api.ixiclinic.comen producción). Cuando se enganchen las pantallas al backend, lo natural es usar los endpoints públicos del portal (/api/portal/{slug}/...), igual que el lab-site.
Lab-site
Sitio público por laboratorio (*.ixiclinic.com) — React 19 + Vite + React Router, carrito con Zustand y endpoints públicos del portal.
Connect
ixiclinic Connect — agente local de hardware en la LAN de la sucursal. Se conecta saliente al cloud y ejecuta los trabajos de impresión sobre impresoras de red y USB.