Fase 0: config Android (package, permisos, orientación), eas.json (APK), deps nativas (react-native-maps, image-picker, location), app.config.js para la key de Google Maps por secreto EAS. Fase 1: capa responsive (useLayout) + componente MasterDetail (dos paneles en tablet, navegación en móvil). Fase 2: pantallas funcionales — detalle de proyecto con secciones Fases/Features/ Incidencias, edición de progreso/estado, formulario de inspección dinámico desde plantilla, incidencias maestro-detalle (checklist + comentarios), alta de incidencia; gating por permisos Spatie. Fase 3: fotos (cámara/galería) → cola de media, con miniaturas pendientes/sync. Fase 4: mapa de features (Google Maps) con geometría GeoJSON y selección. Fase 5: auto-sync (foreground/reconexión/intervalo, con candado) + reconciliación de creaciones offline (id temporal negativo → server_id, remapeo de FKs hijas). Fase 6: revisión de conflictos/errores del outbox, indicadores y APK preview. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
15 lines
510 B
JavaScript
15 lines
510 B
JavaScript
// Config dinámica: toma app.json como base e inyecta la API key de Google Maps
|
|
// desde la variable de entorno GOOGLE_MAPS_API_KEY (secreto de EAS), para no
|
|
// commitearla. En local puedes exportarla antes de `npx expo run:android`.
|
|
module.exports = ({ config }) => {
|
|
const apiKey = process.env.GOOGLE_MAPS_API_KEY;
|
|
if (apiKey) {
|
|
config.android = config.android || {};
|
|
config.android.config = {
|
|
...(config.android.config || {}),
|
|
googleMaps: { apiKey },
|
|
};
|
|
}
|
|
return config;
|
|
};
|