Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Aplicaciones para Android con Kivy
Nahuel Defossé
Meetup Patagónico de Python
Agosto, 2016
Características de Kivy
Framework para escribir aplicaciones multimedia (o al menos
con capacidades gráficas avanzadas).
Ge...
Instalación
Pasos para Windows, Linux y OS X
https://kivy.org/docs/installation/installation.html
Proyectos Hermanos de Kivy
Buildozer: empaquetador genérico apara Python (creador de
APKs para Android!)
Plyer: envoltura ...
Ejemplos de capacidades de Kivy
Figure 1: Layout Complejo
Figure 2: Garden
Ejemplos de la vida real de Kivy
Ejemplos: Museo de Historia Natural de Lille, Francia, Plane White,
exhibición de Arte In...
Componentes básicos de Kivy
App
Widget
ScreenManager
Screen
Layouts
Button
Label
TextInput
Image
Clock
SoundLoader
Animati...
Ejemplo Mínimo
from kivy.app import App
from kivy.uix.label import Label
class MiApp(App):
def build(self):
return Label(t...
Depurando una aplicación
Si bien la app no es aún compleja, tenemos un depurador de UIs!
python main.py -m inspector
Para ...
Prueba en Android
Si la aplicación no necesita paquetes de terceros, podemos probarla
en el Kivy Laucher de Google Play.
Prueba en Android (cont.)
Para esto creamos un archivo llamado android.txt en la misma
carpeta dónde esté main.py, archivo...
Dando estilo
En un archivo con nombre demo.kv (por le nombre DemoApp):
<MyWidget>:
BoxLayout:
size: root.size
Button:
text...
Utilizando programación reactiva
La programación reactiva trata sobre reaccionar a los cambios.
En kivy podemos generar re...
Programación Reactiva
Ejemplo
<MiWidget>:
BoxLayout:
orientation: 'vertical'
size: root.size
pos: root.pos
BoxLayout:
size...
Garden
Garden provee widgets mantenidos port terceros.
Ej. mapview
mapview es un widget para mostrar mapas a traves de
Ope...
Garden (cont.)
Utilización de mapview
from kivy.garden.mapview import MapView
from kivy.app import App
class MapViewApp(Ap...
Garden (cont.)
Figure 5: MapView
Buildozer
Buildozer es un paquete de Python que permite gestionar la
compilación de aplicaciones escritas en Kivy.
En part...
buildozer.spec
Este archivo define entre otras cosas:
Nombre de la aplicación, paquete y version
Rutas a los SDK y NDK (si ...
Compilando
Nota
buildozer baja todo, Andoird SDK, Android NDK, ANT,
Python-for-Android y lo compila. La primera ejecución ...
Depuración del APK
logcat
buildozer android logcat
Permite ver la salida de depuración de Android. Es importante
filtrar lo...
Usando características propias de Android
plyer
Envoltura Pythonica. Más fácil de usar. APIs más populares.
pyjnius
Reflexi...
Demo
Aplicación soundboard, a partir de sonidos de memes de internet.
Código fuente
https://github.com/D3f0/soundboard
APK...
Links sobre Kivy
Kivy - Creating Desktop and Mobile Apps with Python
Kivy with Python tutorial for Mobile Application Deve...
Gracias!
No duden en hacerme consultar a https://twitter.com/d3f0
Upcoming SlideShare
Loading in …5
×

Creando Aplicaciones para Android con Kivy

Charla del Meetup Patagónico de Python (https://www.meetup.com/es-ES/Patagonia-Python-Meetup) sobre la programación con Python para Android utilizando Kivy.
Se mejoraron algunos ejemplos y se completaron algunos conceptos que no quedaron claros sobre las filminas de la primera charla.

  • Login to see the comments

Creando Aplicaciones para Android con Kivy

  1. 1. Aplicaciones para Android con Kivy Nahuel Defossé Meetup Patagónico de Python Agosto, 2016
  2. 2. Características de Kivy Framework para escribir aplicaciones multimedia (o al menos con capacidades gráficas avanzadas). Genera la UI a través de OpenGL (no usa widgets nativos) Solución completa basada en Python/Cython. Soporte Multi-táctil. Soporte en Windows, Linux y Mac, Android e iOS. Licencia MIT
  3. 3. Instalación Pasos para Windows, Linux y OS X https://kivy.org/docs/installation/installation.html
  4. 4. Proyectos Hermanos de Kivy Buildozer: empaquetador genérico apara Python (creador de APKs para Android!) Plyer: envoltura Pythonica independiente de la plataforma para APIs dependientes de la plataforma. Pyjnius: Acceso dinámico a Java/Android desde Python. Pyobjus: acceso dinámico a las APIs Objective-C/iOS desde Python. Python for Android: herramientas para compilar y empaquetar aplicaciones Python para Android. Kivy iOS: herramientas para compilar y empaquetar aplicaciones Python para Android. Audiostream: biblioteca para el acceso directo al micrófono y parlante. Kivy Designer: Diseñador de interfases para Kivy. KivEnt: motor de juegos orientado a entidades. Garden: widgets y bibliotecas creadas y mantenidas por usuarios.
  5. 5. Ejemplos de capacidades de Kivy Figure 1: Layout Complejo
  6. 6. Figure 2: Garden
  7. 7. Ejemplos de la vida real de Kivy Ejemplos: Museo de Historia Natural de Lille, Francia, Plane White, exhibición de Arte Interactiva, Particle Panda, Simulador de Partículas, Liatris, Robótica, Deteción de Objetos, Monitor de Misubishi LancelotEvo, Teclado TouchContinuum
  8. 8. Componentes básicos de Kivy App Widget ScreenManager Screen Layouts Button Label TextInput Image Clock SoundLoader Animation
  9. 9. Ejemplo Mínimo from kivy.app import App from kivy.uix.label import Label class MiApp(App): def build(self): return Label(text="Hola mundo") if __name__ == "__main__": MiApp().run() Para correrlo python main.py
  10. 10. Depurando una aplicación Si bien la app no es aún compleja, tenemos un depurador de UIs! python main.py -m inspector Para activar el inspector debemos pulsar Control + e Figure 3: Depuración
  11. 11. Prueba en Android Si la aplicación no necesita paquetes de terceros, podemos probarla en el Kivy Laucher de Google Play.
  12. 12. Prueba en Android (cont.) Para esto creamos un archivo llamado android.txt en la misma carpeta dónde esté main.py, archivos .kv, carpeta data si la hubiera, etc. proyecto/ main.py estilo.kv android.txt Copiamos la carpeta en el telefono a través del administrador de archivos o con el comando adb en el directorio kivy. Ejemplo de android.txt title=Demo_1 author=Nahuel orientation=portrait
  13. 13. Dando estilo En un archivo con nombre demo.kv (por le nombre DemoApp): <MyWidget>: BoxLayout: size: root.size Button: text: "Hola Mundo" on_press: app.decir_hola() Variables utilizables: app (app.root) self el widget en el que estamos parados root la ventana principal
  14. 14. Utilizando programación reactiva La programación reactiva trata sobre reaccionar a los cambios. En kivy podemos generar reacciones a cambios de propiedades (de objetos). Por ejmplo, ante el cambio de un valor de un slider (propiedad value) se actualice un texto de una etiqueta. El lenguaje kv permite definir este comportamiento de manera muy sencilla. La forma de referenciar otros componentes, es utilizar el campo id.
  15. 15. Programación Reactiva Ejemplo <MiWidget>: BoxLayout: orientation: 'vertical' size: root.size pos: root.pos BoxLayout: size_hint_y: .2 Button: text: texto.text on_press: app.saludar() Label: text: "%2.3f" % slider.value id: texto Slider: id: slider
  16. 16. Garden Garden provee widgets mantenidos port terceros. Ej. mapview mapview es un widget para mostrar mapas a traves de OpenStreetMaps MapView. Instalación garden install mapview
  17. 17. Garden (cont.) Utilización de mapview from kivy.garden.mapview import MapView from kivy.app import App class MapViewApp(App): def build(self): mapview = MapView( zoom=15, lat=-42.7852576, lon=-65.0083537) return mapview MapViewApp().run()
  18. 18. Garden (cont.) Figure 5: MapView
  19. 19. Buildozer Buildozer es un paquete de Python que permite gestionar la compilación de aplicaciones escritas en Kivy. En particular nos interesa Android Está rota en OS X al momento de la charla, para generar apks se puede utilizar una máqiuna virtual. Creación del archivo de especificaciones pip install buildozer buildozer android init
  20. 20. buildozer.spec Este archivo define entre otras cosas: Nombre de la aplicación, paquete y version Rutas a los SDK y NDK (si no se definen se descargar automaticamente)
  21. 21. Compilando Nota buildozer baja todo, Andoird SDK, Android NDK, ANT, Python-for-Android y lo compila. La primera ejecución puede demorar un buen rato (más de 15 minutos en conexiones de menos de 3Mbits). Creación de APK depuración buildozer andoird debug Creación de APK release buildozer andoird release Creación de APK y ejecución buildozer andoird debug deploy run
  22. 22. Depuración del APK logcat buildozer android logcat Permite ver la salida de depuración de Android. Es importante filtrar lo útil, ya que se ven los mensajes de todas las aplicaciones.
  23. 23. Usando características propias de Android plyer Envoltura Pythonica. Más fácil de usar. APIs más populares. pyjnius Reflexión, cualquier API, control total sobre Java.
  24. 24. Demo Aplicación soundboard, a partir de sonidos de memes de internet. Código fuente https://github.com/D3f0/soundboard APK https://github.com/D3f0/soundboard/blob/master/bin/ Soundboard-0.3.1-debug.apk?raw=true
  25. 25. Links sobre Kivy Kivy - Creating Desktop and Mobile Apps with Python Kivy with Python tutorial for Mobile Application Development Kivy Crash Course Muy buen tuorial en videos cortos.
  26. 26. Gracias! No duden en hacerme consultar a https://twitter.com/d3f0

×