paint-brush
Creación de una aplicación de Android en un servidor Flaskpor@rusirij
14,187 lecturas
14,187 lecturas

Creación de una aplicación de Android en un servidor Flask

por Rusiri Illesinghe3m2021/12/04
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

Usando 'Flask' podemos enviar nuestros datos desde Android al servidor Flask a través de llamadas API REST y hacer el procesamiento relacionado con python dentro del servidor Flask y obtener la salida de vuelta a nuestra aplicación de Android a través de llamadas API REST. La API REST funcionará en esas solicitudes y le enviará los datos como respuesta http. El botón 'Enviar solicitud de publicación' envía una solicitud 'POST' al servidor con el nombre de usuario ingresado en el servidor. La respuesta que reciba se mostrará en la vista de texto inferior.

Company Mentioned

Mention Thumbnail
featured image - Creación de una aplicación de Android en un servidor Flask
Rusiri Illesinghe HackerNoon profile picture

¿Android con un back-end? ¿Por qué no localmente?

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!

¿Por qué API REST?

¡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.

¿Por qué Frasco?

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!

1. Crea tu aplicación para Android

2.Crear el servidor Flask

3. Conecte la aplicación de Android y el servidor

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!

1. Crea tu aplicación para Android

  • Abra su Android Studio y haga clic en Archivo->Nuevo proyecto para crear un nuevo proyecto
  • Seleccione 'Actividad vacía' en esta vista previa. (¡Puedes elegir una vista preferida!)

Seleccione la plantilla de actividad y haga clic en Siguiente.

  • Asigne un nombre a su proyecto y luego haga clic en finalizar como en la imagen a continuación.

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:

2. Crear el servidor Flask

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

3. Conecte la aplicación de Android con el servidor

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í