# LinkedSign Android Aplicación móvil Android de LinkedSign construida con Expo + React Native. Esta app complementa a la versión web y usa el mismo backend. ## Objetivo - compartir autenticación con la app web - guardar la sesión localmente en el teléfono - mantener cache local para trabajo móvil - sincronizar documentos, certificados y firmados solo cuando el usuario lo solicite ## Alcance actual - login - registro - aviso de verificación por correo - dashboard con estado de sincronización - documentos originales y firmados - subida de PDF original - descarga y compartir documentos firmados - certificados - subida de `.p12` / `.pfx` - firmado básico usando la configuración visual ya guardada por el usuario - perfil y solicitud de cambio de contraseña - base local SQLite para cache ## Cómo se complementa con la web - la web sigue siendo el cliente principal para flujos avanzados - Android usa el mismo usuario, misma contraseña y mismo backend - la sesión se guarda en el teléfono con `expo-secure-store` - los datos de negocio no se sincronizan solos: el usuario decide cuándo sincronizar - el estilo visual de firma se toma del backend, por lo que si lo cambias en la web también se usa al firmar desde Android ## Estructura ```text android/ App.js app.json package.json src/ api/ components/ config/ context/ navigation/ screens/ storage/ theme/ utils/ ``` ## Configuración La URL del backend se define en [app.json](/home/mgonzalez/desarrollo/react/linkedsign/android/app.json) y puede sobreescribirse con `EXPO_PUBLIC_API_BASE_URL`. Valor actual: ```json { "expo": { "extra": { "apiBaseUrl": "http://192.168.222.72:4000" } } } ``` ## Ejecutar ```bash cd /home/mgonzalez/desarrollo/react/linkedsign/android npm install npm run start ``` Para compilar o abrir en Android: ```bash npm run android ``` ## Sincronización La app guarda cache local en SQLite para: - perfil - documentos originales - certificados - documentos firmados - fecha de última sincronización La sincronización se ejecuta manualmente desde la app. Eso evita sobreescribir datos locales o consumir red sin que el usuario lo pida. ## Notas - La confirmación de correo y el cambio de contraseña se validan contra el mismo backend de LinkedSign. - La validación del enlace de correo puede abrirse en navegador si el enlace apunta al frontend web. - Para una prueba real en dispositivo, el teléfono debe poder alcanzar la IP del backend. - Este cliente no reemplaza la web; la complementa con acceso móvil, cache local y sincronización bajo demanda.