# 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.40: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).