Hola, mi nombre es Juan Urrutia, soy Ingeniero en Sisemas y desarrollo apps en Android desde 2012.
Puedo desarrollar la app que estás necesitando para Android por 200 Euros en 20 días. Puedes tomar esta app como base para el desarrollo de la versión iOS que suele ser más compleja y tardar más tiempo para ser aprobada en el App Store.
La solución que te propongo es la siguiente:
1- Pantalla de configuración
a. Datos del operador
b. Identificación del dispositivo
c. Parámetros de transmisión
2- Pantallas de ingreso de datos
3- Transimisión
4- Consolidación de los datos
5- Armado de reporte
1) Una pantalla de configuración donde se ingresan los datos propios del operario, un identificador del dispositivo, y aquí puede subirse la foto del operario si la foto que debe enviarse es siempre la misma. De lo contrario, se pude hacer que se saque una selfie cada vez que va a enviar el formulario.
Si la clave requerida es para acceder al mobile, se puede agregar al menú de configuración. Y podemos ver algún mecanismo de desbloqueo si el operador se olvida la misma (que seguro pasará). Sino tenemos que agregar en la sección de transmisión algún esquema de validación contra el servidor central.
2) Datos: El operador ingresa los datos en el mobile que se guardan localmente hasta que acciona el botón de enviar.
La app considerará su estado de conexión a internet y de darse las condiciones enviará los datos junto con la foto (de configuración o selfie según tu preferencia).
Si las condiciones de conexión no están dadas, los datos se guardaran en un status de pendiente y se reintentará en envío cada 5 minutos, aunque este parámetro podrá ser configurable desde el menú de configuración.
Una vez enviados los datos, se eliminarán del mobile (opcionalmente podemos acordar un tiempo de guarda y funciones adicionales para reenvio que inicalmente estan fuera de lo que está presupuestado).
Un punto que no mencionaste pero que vale la pena destacar es que mi solución incluye el envío encriptado de la información y un token de autenticación que asegura que los datos que llegan a tu servidor no son apócrifos.
3) Transmisión: La transmisión de los datos desde el mobile al servidor central donde se consolidarán se implementa sobre de http o https invocando páginas PHP (tecnología más comúnmente disponible) o Servlets en caso de que el servidor este corriendo un Application Server (J2EE) –menos probable-.
4) Reporte: La página PHP o el servlet tomará los datos y los debe consolidar en algún lado. Mi porpuesta es que sea en una base de datos que luego puede ser explotada. Si por algún motivo esto no es posible se pueden guardar los archivos individuales en servidor.
5) El reporte puede ser generado a pedido también utilizando una llamanda a una página php que tomará los datos de la base o desde los archivos guardados y generará un archivo CSV (valores separados por comas) que es uno de los formatos que Excel entiende para abrir archivos. El archivo así se descargará del servidor.
Esta solución requiere que tengas un servidor conectado a Internet con un web server corriendo php (o un application server). Si la app se va a publicar en Google Play también deberás disponer de una cuenta de Android developer.
Por favor para mas detalles entrar en contacto.
Saludos,
Juan Urrutia
Ing. en Sistemas de Información