About this project
it-programming / mobile-development
Open
Implementar un sistema de descarga y actualización en segundo plano de los archivos que constituyen la lógica de la aplicación Webview (html, css, javascript) cuando haya una nueva versión disponible en el servidor. La aplicación debe seguir funcionando mientras se realiza la descarga y aplicar las actualizaciones en el próximo arranque.
Consulta de la versión de código actual:
Implementar una llamada a una api rest que consulte la versión más reciente del código disponible en el servidor.
Comparar la versión obtenida de la API con la versión almacenada localmente en el dispositivo (almacenada en SharedPreferences o similar).
Descarga asíncrona de los archivos:
Si se detecta que hay una nueva versión disponible, descargar los archivos necesarios (html, css, js y otros recursos).
La descarga debe hacerse en segundo plano utilizando WorkManager o un IntentService, para que no interrumpa la experiencia del usuario.
Almacenar los archivos descargados en el almacenamiento interno de la aplicación o en un directorio adecuado para su posterior uso por el WebView.
Validación y almacenamiento seguro:
Verificar que los archivos se hayan descargado correctamente (validar hashes, tamaños de archivo, o utilizando una respuesta de éxito de la API).
Almacenar los nuevos archivos en una ubicación segura dentro del dispositivo, asegurando que no interfieran con la versión actualmente en uso hasta que estén completamente descargados.
Aplicación de la actualización:
Al completar la descarga, actualizar la versión del código en las preferencias (SharedPreferences) para que la app utilice la nueva versión en el próximo inicio.
La nueva versión debe cargarse automáticamente en el próximo inicio.
Carga de archivos locales en WebView:
Modificar la configuración del WebView para que siempre cargue primero los archivos desde el almacenamiento local.
Si no se encuentran los archivos locales (por ejemplo, en la primera ejecución), se debe cargar el contenido desde el servidor por primera vez y luego almacenarlo.
Manejo de errores:
Implementar una estrategia de manejo de errores para casos en los que la descarga falle (por ejemplo, problemas de red o errores del servidor).
Si la descarga falla, la app debe seguir utilizando la versión anterior del código sin afectar la experiencia del usuario.
Category IT & Programming
Subcategory Apps programming. Android, iOS and others
What is the scope of the project? Small change or bug
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
Required platforms Android
I need to Modify an existing app
Delivery term: Not specified
Skills needed