Voy a empezar desde el lugar más simple ..! ¿Alguna idea de por qué necesitamos un back-end separado para nuestra aplicación de Android? ¡Simplemente piense en una situación en la que todos los usuarios que usan la aplicación móvil reciben datos y los envían a un servidor de base de datos en la nube!
¡Las API REST se comunican a través de solicitudes http para realizar la comunicación entre su aplicación frontal y la base de datos! Al igual que usted está en Asia con su aplicación móvil y la base de datos está alojada en un servidor en América. Necesita un agente para establecer la conectividad entre su aplicación móvil y la base de datos, ¿no? Este es el punto en el que implementa su propia API REST. Se comunicará con su base de datos central utilizando las funciones que implementó para realizar CRUD. Su aplicación front-end establece una conexión y realiza solicitudes http para recuperar datos de la base de datos. La API REST que implementó funcionará en esas solicitudes y le enviará los datos como respuesta http.
Mi caso de uso inicial fue que estaba trabajando en una aplicación móvil basada en aprendizaje automático y allí necesitaba hacer preprocesamiento y predicciones usando python y bibliotecas compatibles con python. Por lo tanto, era un requisito importante tener un backend de python y ahí es donde entré en 'Flask'. En este enfoque, podemos enviar nuestros datos desde Android al servidor Flask a través de llamadas a la API REST y realizar el procesamiento relacionado con Python dentro del servidor Flask y devolver el resultado a nuestra aplicación de Android a través de la llamada a la API REST. ¡Sí, incluso desde las primeras impresiones es simple pero agradable!
Aquí estoy usando okhttp , una biblioteca de terceros desarrollada por Square para enviar y recibir solicitudes http.
¡Voy a demostrar cómo conectar su aplicación de interfaz de Android a un servidor Python implementado usando Flask!
¡Aquí están los pasos!
Esta demostración contiene una interfaz de usuario simple.
El botón 'Enviar solicitud de publicación' envía una solicitud 'POST' al servidor con el nombre del usuario ingresado en el campo de texto dado. Cuando va al servidor, allí implementamos una función extract_name() para devolver una oración que contiene el nombre que recibe, de vuelta al usuario como respuesta. Entonces, una vez que ingrese su nombre y haga clic en el botón 'Enviar solicitud de publicación', la respuesta que reciba se mostrará en la vista de texto inferior.
Cuando haga clic en el botón 'Enviar solicitud de obtención', realizará una solicitud GET al servidor y la función de servidor correspondiente 'get_fact()' devolverá el texto de respuesta. Se mostrará en la vista de texto en la parte inferior.
¡Así que veamos cómo hacerlo!
Seleccione la plantilla de actividad y haga clic en Siguiente.
Ahora se está creando la aplicación de Android. ¡Espere un tiempo hasta que su IDE haga esto por usted!
Estoy creando una interfaz de usuario simple con un cuadro de texto, botones y una vista de texto como se mencionó anteriormente. Por ahora, simplemente copie y pegue el siguiente código en su archivo activity_main.xml . ¡Al final, obtendrás una visión clara!
Ahora haga clic en el botón ejecutar en el IDE y verá la interfaz de usuario particular en su simulador o emulador:
En otro lugar (no en el directorio del proyecto de Android), cree un nuevo archivo llamado server.py y copie el siguiente código allí.
Ahora abra el cmd dentro del mismo directorio donde existe el archivo anterior y ejecútelo usando el comando
python server.py
¡Ahora su servidor debería estar funcionando!
¡Así aparece tu cmd! Obtendrá su propia URL en el lugar marcado con una flecha roja. Use esa URL en las próximas secciones
Agregue la siguiente línea en el archivo AndroidManifest.xml para el permiso de Internet.
Dentro de la etiqueta 'aplicación' en el archivo de manifiesto, coloque la siguiente línea
Agregue la siguiente dependencia en la sección de objetos de dependencias en app/build.gradle
¡Ahora hagamos que nuestra interfaz de usuario sea funcional! Para eso pegue el siguiente código en el archivo MainActivity.java. Asegúrese de pegar la URL que obtuvo aquí como el valor de la variable en la línea 29 del siguiente código
Asegúrese de habilitar la conectividad a Internet en los dispositivos en los que se ejecuta el servidor Flask y el teléfono móvil en el que se ejecuta la aplicación de Android.
¡¡¡Todo listo ahora!!! ¡Sí! ¡Se hace! Al hacer clic en los botones Enviar solicitud de obtención y Enviar solicitud posterior, enviará solicitudes al servidor y recuperará las respuestas correspondientes. Revise cuidadosamente el código base y lea los comentarios. ¡¡¡Es simple!!!
Aquí puedes ver la demostración. Mire, su aplicación de Android puede enviar datos al servidor backend y recuperar los datos de él.
Puede encontrar el código fuente en GitHub: https://github.com/RusJaI/Android-Flask
Publicado por primera vez aquí