Me gustaría desarrollar una aplicación de Android (bastante simple) para distribuirla a través de Play Store. Me gustaría hacerlo completamente en Python. Sin embargo, la investigación en línea no me ha esclarecido del todo: la mayoría de los comentarios están desactualizados (> 1 año y creo que podría haber una mejor integración de Python desde entonces) o hablan de ejecutar Python en Android (por ejemplo, aquí ).
Por lo tanto, busco información sobre las preguntas:
- ¿Es factible desarrollar una aplicación completamente en Python y cuáles son las herramientas para hacerlo? (¿Es recomendable, por ejemplo, Kivy?)
- Si es así, ¿cuáles son los mejores entornos de software para implementar esto? (Intenté sin éxito usar Android Studio, pero no pude encontrar una manera de ejecutar el código Python allí).
Soy bastante nuevo en el desarrollo de aplicaciones y agradecería mucho cualquier pista de hacer esto en Python en lugar de en Jave, etc., que aún no sé.
Muchas gracias por su ayuda de antemano.
Respuestas:
Para responder a tu primera pregunta: sí, es factible desarrollar una aplicación de Android en python puro , para lograrlo te sugiero que uses BeeWare , que es solo un conjunto de herramientas de python , que funcionan muy bien juntas y te permiten desarrollar aplicaciones nativas de la plataforma en python.
Mira este video del creador de BeeWare que explica y demuestra perfectamente su aplicación.
Cómo funciona
El lenguaje de implementación preferido de Android es Java, por lo que si desea escribir una aplicación de Android en Python, debe tener una forma de ejecutar su código Python en una máquina virtual Java. Esto es lo que hace VOC . VOC es un transpilador: toma el código fuente de Python, lo compila en CPython Bytecode y luego transpila ese bytecode en bytecode compatible con Java. El resultado final es que los archivos de código fuente de Python se compilan directamente en un archivo .class de Java, que se puede empaquetar en una aplicación de Android.
VOC también le permite acceder a objetos Java nativos como si fueran objetos Python, implementar interfaces Java con clases Python y subclases de clases Java con clases Python. Con esto, puede escribir una aplicación de Android directamente contra las API nativas de Android.
Una vez que haya escrito su aplicación nativa de Android, puede usar Briefcase para empaquetar su código Python como una aplicación de Android.
Briefcase es una herramienta para convertir un proyecto de Python en una aplicación nativa independiente. Puede empaquetar proyectos para:
Puede verificar esta aplicación nativa de Android Tic Tac Toe escrita en Python, usando la suite BeeWare. en GitHub
Además de las herramientas BeeWare, necesitará tener un JDK y un SDK de Android instalados para probar la ejecución de su aplicación.
y para responder a su segunda pregunta: un buen entorno puede ser cualquier cosa con la que se sienta cómodo, ya sea un editor de texto y una línea de comando, o un IDE, si está buscando un buen IDE de Python, le sugiero que pruebe Pycharm , tiene una edición comunitaria que es gratuita y tiene un entorno similar al de Android Studio, debido a que fueron realizadas por la misma empresa.
Espero que esto haya sido de ayuda
fuente
Puede probar BeeWare , como se describe en su sitio web:
Te da la posibilidad de que quieras escribir aplicaciones de Android en Python, y además tiene la ventaja de que no necesitarás aprender otro marco en el futuro si también quieres hacer algo en una de las otras plataformas enumeradas.
Aquí está el tutorial para aplicaciones de Android .
fuente
Hay dos competidores principales para las aplicaciones de Python en Android
Chaquopy
https://chaquo.com/chaquopy/
Esto se integra con el sistema de compilación de Android, proporciona una API de Python para todas las funciones de Android. Para citar el sitio "La API de Android completa y el kit de herramientas de la interfaz de usuario están directamente a su disposición".
Beeware (kit de herramientas del widget Toga)
https://pybee.org/
Esto proporciona un transpilador de múltiples objetivos, es compatible con muchos objetivos como Android e iOS. Utiliza un kit de herramientas de widget genérico (toga) que se asigna a las llamadas de la interfaz del host.
¿Cúal?
Ambos son proyectos activos y sus cuentas de github muestran una buena cantidad de actividad reciente.
Beeware Toga, como todas las bibliotecas de widgets, es bueno para llevar los conceptos básicos a múltiples plataformas. Si tiene diseños básicos y desea expandirse a otras plataformas, esto debería funcionar bien para usted.
Por otro lado, Chaquopy es mucho más preciso en su mapeo de la API de Python a Android. También le permite mezclar en Java, útil si desea utilizar código existente de otros recursos. Si tiene objetivos de diseño estrictos y desea principalmente apuntar a Android, este es un recurso mucho mejor.
fuente
¡Android, Python!
Cuando vi estas dos palabras clave juntas en su pregunta, Kivy es la que me vino a la mente primero.
Antes de llegar al desarrollo nativo de Android en Java usando Android Studio, había probado Kivy . Es simplemente asombroso. Aquí hay algunas ventajas que pude averiguar.
Fácil de usar
Con los conceptos básicos de Python, no tendrá problemas para aprenderlo.
Buena comunidad
Está bien documentado y tiene una gran comunidad activa.
Plataforma cruzada.
Puede desarrollar cosas para Android, iOS, Windows, Linux e incluso Raspberry Pi con este marco único. Fuente abierta.
Es un software gratis
Al menos algunos de sus competidores (multiplataforma) quieren que pague una tarifa si desea una licencia comercial.
Soporte de gráficos acelerados
El motor de gráficos de Kivy construido sobre OpenGL ES 2 lo hace adecuado para softwares que requieren renderizado rápido de gráficos, como juegos.
Ahora, entrando en la siguiente parte de la pregunta, no puede usar Android Studio IDE para Kivy. Aquí hay una guía detallada para configurar el entorno de desarrollo.
fuente