QPython o Kivy para la programación de Android con apk instalable en Python

Después de leer varias preguntas y respuestas sobre SO, me doy cuenta de que uno tiene 2 opciones, es decir, QPython y Kivy para hacer la programación para Android, sin embargo, al parecer, ambos adoptan diferentes enfoques. Estoy tratando de validar mi comprensión y ver si me falta algo de información clave.

  • QPython permite el uso de la librería Kivy para desarrollar aplicaciones gráficas
  • QPython y Kivy utilizan SL4A, mientras que QPython ha ampliado el estándar SL4A (o sus enlaces para Python) añadiendo algunas funciones NFC y similares
  • QPython se utiliza para crear secuencias de comandos python que pueden utilizar una amplia gama de módulos, bibliotecas, pero necesitan QPython instalado para ejecutarse en el dispositivo de destino. No hay manera de empaquetar script en un apk.
  • Kivy OTOH, permite al desarrollador escribir aplicaciones que compilan a apk, usando su sistema de compilación basado en la nube (alternativa – el sistema de construcción local se puede configurar en Ubuntu Linux) [ Sin embargo, noté que la mayoría de los apk de la muestra que usan Kivy son bastante grandes , En el rango de 40MB. Yo me perdí algo ? ]
  • QPython apk tiene 2 versiones, una para Python-2.7 y otra para Python-3.x. Para Kivy, no estoy seguro de qué versión es.
  • La secuencia de comandos de ejemplo de QPython (HelloWorld.py) no parece comportarse como se esperaba, desde QPython-3.x más reciente de Market, en un sistema Android Kitkat (4.4.2). Recibo el diálogo para ingresar texto, pero luego espero que un Toast aparezca, pero no pasa nada.
  • Tenga la impresión de que tanto QPython como Kivy son desarrollados por un solo desarrollador cada uno (o sólo una persona está realmente activa en la actualidad), y aún no tienen una gran comunidad. [ Esta es mi mayor preocupación ] Me doy cuenta de que hay 3-4 preguntas con 'qpython' etiqueta en SO, y más de mil con 'kivy'!
  • También tiene la impresión de que en este momento Kivy desarrollo es algo más activo (tal vez bastante activo), pero para QPython no tengo una imagen clara.
  • Kivy parece estar tratando de ampliar la naturaleza de la aplicación que posiblemente podría escribirse utilizando, comparar a QPython. Hay API como plyer y pyjnius que ayudan a expandir las posibilidades. Quizás bastante significativamente, en comparación con QPython.
  • Tanto QPython como Kivy parecen estar fuertemente en desarrollo. Los fallos (/ fallos) de programa (/ script) parecen informarse en ambos conjuntos de herramientas.

En general, la opinión como resultado (de los puntos anteriores) parece cambiar a favor de Kivy, un poco más. ¿Es correcto el entendimiento? ¿He perdido algún punto crucial? Esta no es una pregunta retórica, y yo sólo busco respuestas fácticas.

QPython permite el uso de la librería Kivy para desarrollar aplicaciones gráficas

Sí, qpython es un intérprete + herramientas asociadas, y tiene una buena integración kivy. No se puede compilar el código kivy a un apk independiente con qpython + android solo sin embargo.

QPython y Kivy utilizan SL4A, mientras que QPython ha ampliado el estándar SL4A (o sus enlaces para Python) añadiendo algunas funciones NFC y similares

Kivy no usa SL4A. Alcanzamos la integración de api de android principalmente a través de pyjnius, una biblioteca para envolver automáticamente clases de java con python, que le permite llamar directamente a la API de Java. También hemos abstraído algunas cosas estándar a una interfaz pythonic con plyer.

(Vi más tarde que ya han encontrado estos)

QPython se utiliza para crear secuencias de comandos python que pueden utilizar una amplia gama de módulos, bibliotecas, pero necesitan QPython instalado para ejecutarse en el dispositivo de destino. No hay manera de empaquetar script en un apk.

No uso qpython mucho, pero creo que esto es correcto, aunque puede haber algunas herramientas para convertir guiones a apks en algunas circunstancias (por ejemplo, podría utilizar las herramientas de compilación kivy si tiene una interfaz kivy, o tal vez sl4a tiene algo para esto ).

Kivy OTOH, permite al desarrollador escribir aplicaciones que compilan a apk, usando su sistema de compilación basado en la nube (alternativa – el sistema de construcción local se puede configurar en Ubuntu Linux) [Sin embargo, noté que la mayoría de los apk de la muestra que usan Kivy son bastante grandes , En el rango de 40MB. Yo me perdí algo ?]

Tenemos un sistema básico de compilación basado en la nube, pero nada más como eso ahora, casi todo el mundo construye apks en su propia máquina usando nuestras herramientas de compilación para android. Estos se ejecutan en linux u OSX, y pueden ejecutarse fácilmente en una máquina virtual si es necesario.

Una aplicación mínima tiene alrededor de 7 MB de tamaño APK debido a la necesidad de agrupar el intérprete de python y una gran cantidad de módulos.

QPython apk tiene 2 versiones, una para Python-2.7 y otra para Python-3.x. Para Kivy, no estoy seguro de qué versión es.

Kivy en sí soporta python3, pero nuestras herramientas de generación de Android sólo admiten python2.7 por ahora.

Tenga la impresión de que tanto QPython como Kivy son desarrollados por un solo desarrollador cada uno (o sólo una persona está realmente activa en la actualidad), y aún no tienen una gran comunidad. [Esta es mi mayor preocupación] Me doy cuenta de que hay 3-4 preguntas con 'qpython' etiqueta en SO, y más de mil con 'kivy'!

Kivy desarrollo es bastante activo con varios contribuyentes regulares más más esporádicos. Puede ver, por ejemplo, actividad de confirmación reciente en github . Sin duda, es mucho más que un solo desarrollador!

Kivy parece estar tratando de ampliar la naturaleza de la aplicación que posiblemente podría escribirse utilizando, comparar a QPython. Hay API como plyer y pyjnius que ayudan a expandir las posibilidades. Quizás bastante significativamente, en comparación con QPython.

Creo qpython incluye pyjnius. No estoy seguro sobre plyer.

Tanto QPython como Kivy parecen estar fuertemente en desarrollo. Los fallos (/ fallos) de programa (/ script) parecen informarse en ambos conjuntos de herramientas.

No estoy seguro de lo que estás viendo, pero cualquier proyecto no triviales tendrá fallos / errores / errores reportados. No creo que kivy sea particularmente inherentemente inestable.

En general, la opinión como resultado (de los puntos anteriores) parece cambiar a favor de Kivy, un poco más.

Hubiera dicho que qpython y kivy son cosas muy diferentes. Qpython te permite escribir y ejecutar scripts, mientras que kivy es un framework gráfico y herramientas asociadas para crear aplicaciones independientes. Hay una cierta superposición con las tareas que se podrían lograr con ambos, pero también un montón de cosas en las que no son los dos adecuados – por ejemplo, creo que qpython es probablemente mucho más conveniente para hacer scripts rápidos sin gui para, por ejemplo, la automatización simple Creo que esto es posible), mientras que creo que kivy es una opción mucho mejor para la creación de aplicaciones independientes con guis no trivial. Por supuesto, puedes escribir código kivy en qpython, como se ha comentado, pero esto no es una gran experiencia de usuario para nada no trivial y necesitas una computadora de escritorio / portátil de todos modos para hacer un apk autónomo.

Hay al menos dos formas más (aunque a mi entender, sólo teóricas) de obtener código Python en ejecución en Android:

  • Utilice jython y convierta el bytecode Java a Dalvik, como se menciona en otra parte . Desafortunadamente, no todas las bibliotecas de CPython, por ejemplo, numpy , están disponibles para jython , y si usas bibliotecas Java ten en cuenta que Android no proporciona las mismas que, por ejemplo, el Desktop JRE
  • Utilice nuitka , que genera código C ++ desde su código Python. A continuación, utilice el Android-ndk .
  • Diferencia entre Kivy y PY4A
  • SL4A vs Ruboto en Desarrollo de aplicaciones para Android
  • Ejecución de un teléfono Android como un servidor web estable (para una secuencia de comandos CGI de Python)
  • ¿Puedo vender mi aplicación SL4A en Android Market?
  • Comenzando con Android: Java o Python (SL4A)
  • Python para IOS o Android
  • Android python scripting: GUI?
  • Error de Dalvik con JRuby con SL4A
  • ¿Cómo puedo empaquetar el intérprete entero de python en un APK de Android?
  • Escribiendo python (o cualquier otro SL4A) en android
  • Android: Llamar a Python Script (a través de SL4A) desde código Java
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.