Social

Probablemente en algún momento has necesitado desarrollar una aplicación para dispositivos móviles, y ni se te había pasado por la cabeza el desarrollarla en Python, porque no parece lo más coherente.

Pero para realizar aplicaciones webviews con Flask si es una gran opción, ¿y si esto pudiéramos trasladarlo y empaquetarlo en una apk para Android?

Pues es totalmente posible gracias a Python4Android, p4a: https://python-for-android.readthedocs.io/en/latest/

Además, después de haberlo probado con una aplicación “doméstica” por decirlo así, me fue muy útil y sencillo de construir.

Para empezar, necesitaremos instalar las dependencias del proyecto, como el SDK de Android, instrucciones aquí

Además del SDK, instala platform y build-tools:

$ANDROIDSDK/tools/bin/sdkmanager --list
$ANDROIDSDK/tools/bin/sdkmanager "platforms;android-26"
$ANDROIDSDK/tools/bin/sdkmanager "build-tools;26.0.3"

Después, instala los paquetes necesarios:

sudo apt-get install -y build-essential ccache git zlib1g-dev python2.7 python2.7-dev libncurses5:i386 libstdc++6:i386 zlib1g:i386 openjdk-8-jdk unzip ant ccache autoconf libtool

Y clona el repositorio:

git clone https://github.com/pksec/flask-webview-android-p4a.git

Ahora que lo tienes clonado, dentro del directorio flaskapp puedes poner tu proyecto.

Una vez tengamos todo preparado, revisamos que el fichero Makefile contenga la ruta correcta tu proyecto, y ya podremos ejecutar el build:

$make build

Este proceso finalizará generando un fichero apk que podrás instalar en tu emulador o smartphone para testearlo, y partir de aqui ir finalizando con los detalles, como los iconos, nombre de la app, etc.

¿Te ha servido este post?

¡Si es así, compartelo!


Xavi Gonzalez

Actualmente DevOps Engineer en MotoGP (Dorna Sports). Apasionado de GNU/Linux y del software libre. Me gusta trastear con cualquier gadget, y rodar en moto.

0 comentarios

Deja una respuesta

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*