103 lines
2.6 KiB
Markdown
103 lines
2.6 KiB
Markdown
# LinkedSign Android Native
|
|
|
|
Cliente Android nativo de LinkedSign construido con **Kotlin + Jetpack Compose**.
|
|
|
|
## Objetivo
|
|
|
|
- compartir autenticación con la web
|
|
- consumir el mismo backend REST
|
|
- mantener cache local en el teléfono
|
|
- sincronizar datos solo cuando el usuario lo solicite
|
|
|
|
## Qué incluye
|
|
|
|
- login
|
|
- registro
|
|
- aviso de validación por correo
|
|
- dashboard
|
|
- documentos originales y firmados
|
|
- subida de PDF
|
|
- subida de certificados `.p12/.pfx`
|
|
- firmado básico desde Android
|
|
- perfil
|
|
- solicitud de cambio de contraseña
|
|
- sesión local segura
|
|
- desbloqueo biométrico con huella si el dispositivo lo soporta
|
|
- cache local SQLite
|
|
- tipografía centralizada por variables en `ui/theme/Type.kt`
|
|
- UI Android refactorizada siguiendo la referencia visual de `android_firma_electronica.html`
|
|
|
|
## Arquitectura usada
|
|
|
|
- Kotlin nativo
|
|
- Jetpack Compose
|
|
- Retrofit
|
|
- OkHttp
|
|
- Moshi
|
|
- EncryptedSharedPreferences
|
|
- SQLiteOpenHelper
|
|
|
|
## Estructura
|
|
|
|
```text
|
|
android/
|
|
app/
|
|
build.gradle
|
|
src/main/
|
|
AndroidManifest.xml
|
|
java/net/linkedcorp/linkedsign/
|
|
res/values/
|
|
build.gradle
|
|
gradle.properties
|
|
settings.gradle
|
|
README.md
|
|
```
|
|
|
|
## Backend
|
|
|
|
Por defecto la app apunta a:
|
|
|
|
```text
|
|
http://192.168.222.72:4000
|
|
```
|
|
|
|
Ese valor está en:
|
|
|
|
[app/build.gradle](/home/mgonzalez/desarrollo/react/linkedsign/android/app/build.gradle)
|
|
|
|
Si cambias IP o dominio, actualiza:
|
|
|
|
```groovy
|
|
buildConfigField "String", "API_BASE_URL", "\"http://TU_HOST:4000\""
|
|
```
|
|
|
|
## Abrir en Android Studio
|
|
|
|
1. Abre la carpeta:
|
|
`/home/mgonzalez/desarrollo/react/linkedsign/android`
|
|
2. Deja que Android Studio sincronice Gradle
|
|
3. Configura el SDK si hace falta
|
|
4. Ejecuta en emulador o dispositivo físico
|
|
|
|
## APK generado
|
|
|
|
Se generó un build debug en:
|
|
|
|
[`android/apk/LinkedSign-debug.apk`](/home/mgonzalez/desarrollo/react/linkedsign/android/apk/LinkedSign-debug.apk)
|
|
|
|
Comando usado:
|
|
|
|
```bash
|
|
source /etc/profile.d/android-sdk.sh
|
|
cd /home/mgonzalez/desarrollo/react/linkedsign/android
|
|
GRADLE_USER_HOME=/home/mgonzalez/desarrollo/react/linkedsign/android/.gradle-home ./gradlew assembleDebug
|
|
```
|
|
|
|
## Notas
|
|
|
|
- `android_react/` conserva la versión anterior hecha con Expo/React Native.
|
|
- `android/` es ahora la base nativa instalable.
|
|
- La app Android y la web se complementan: misma cuenta, mismo backend, cache local y sincronización manual.
|
|
- El enlace de validación por correo sigue siendo servido por el frontend web actual.
|
|
- La referencia visual principal usada para el rediseño móvil está en [`android_firma_electronica.html`](/home/mgonzalez/desarrollo/react/linkedsign/android_firma_electronica.html).
|