Files
linkedsign/android_react/README.md
T
2026-04-06 20:34:18 -05:00

102 lines
2.6 KiB
Markdown

# 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.