Vous êtes sur la page 1sur 5

1.3. Estudio del framework Kivy.

Python es considerado por muchos como un lenguaje de programación fácil de aprender, sin
mencionar que se trata de uno muy potente con un consumo de recursos sumamente bajo.

Existen muchas maneras de eficientar la programación en Python, constantemente aparecen


nuevas versiones de framework, que son herramientas con estándares y mejoras que ayudan a
los programadores a crear mejores aplicaciones en menor tiempo, en mi artículo previo hablo
más a fondo sobre que es un framework.

Un buen ejemplo de framework para el desarrollo en el lenguaje de programación Python es


Kivy, hace poco tuve la oportunidad de darle un vistazo en mis clases de programación y me ha
parecido sumamente interesante ya que es multiplataforma y soporta la mayoría de los
dispositivos de entrada y protocolos disponibles actualmente, pero hablemos más a fondo de
Kivy.

¿Qué es Kivy?

Kivy es un framework para el lenguaje de programación Python de código abierto y


multiplataforma que te permitirá desarrollar aplicaciones con gran funcionalidad, interfaz
amigable y propiedades multitáctiles, todo esto desde un ambiente amigable e intuitivo
enfocado a generar prototipos de manera ágil con diseños inteligentes que ayudarán a crear de
código reutilizable y fácil de entender.

Este asombroso framework te permitirá generar código fuente base que puede ser utilizado en
aplicaciones orientadas a Linux, Windows, OS X, Android e iOS. Sumamente estable, bien
documentado, con una gran comunidad y una poderosa API son las características que lo
convierten en un framework de mucha utilidad para los programadores de Python.
Una idea clave para comprender los aspectos internos de Kivy es la modularidad
y la abstracción. Intentamos abstraer tareas básicas, como abrir una ventana,
mostrar imágenes y texto, reproducir audio, obtener imágenes de una cámara,
corregir la ortografía, etc. Llamamos a estas tareas centrales. Esto hace que la
API sea fácil de usar y de extender. Lo más importante es que nos permite usar,
lo que llamamos, proveedores específicos para los escenarios respectivos en los
que se ejecuta su aplicación. Por ejemplo, en OSX, Linux y Windows, existen
diferentes API nativas para las diferentes tareas principales.

Modules

Si alguna vez ha usado un navegador web moderno y lo ha personalizado con algunos


complementos, ya sabe la idea básica detrás de nuestras clases de módulos. Los módulos se
pueden usar para inyectar funcionalidad en los programas Kivy, incluso si el autor original no lo
incluyó.

Un ejemplo sería un módulo que siempre muestre el FPS de la aplicación actual y algún gráfico
que describa el FPS a lo largo del tiempo.

También podemos escribir nuestros propios módulos.

Eventos de entrada (Toques)

Kivy abstrae diferentes tipos de entrada y fuentes como toques, ratones, TUIO o similares. Lo
que todos estos tipos de entrada tienen en común es que puede asociar una posición 2D en
pantalla con cualquier evento de entrada individual. (Hay otros dispositivos de entrada, como
acelerómetros, donde no puede encontrar fácilmente una posición 2D para, por ejemplo, una
inclinación de su dispositivo. Este tipo de entrada se maneja por separado. A continuación,
describimos los tipos anteriores).

Todos estos tipos de entrada están representados por instancias de la clase Touch (). (Tenga en
cuenta que esto no solo se refiere a toques con los dedos, sino también a todos los demás tipos
de entrada. Simplemente lo llamamos Tocar por simplicidad. Piense en algo que toque la interfaz
de usuario o su pantalla). Una instancia de toque, u objeto, puede estar en uno de tres estados.
Cuando un toque ingresa a uno de estos estados, se informa a su programa que ocurrió el
evento. Los tres estados en los que se puede tocar son:

Abajo

Un toque está abajo solo una vez, en el mismo momento en que aparece por primera vez.

Movimiento

Un toque puede estar en este estado por un tiempo potencialmente ilimitado. Un toque no tiene
que estar en este estado durante su vida útil. Un 'Mover' ocurre cada vez que cambia la posición
2D de un toque.

Arriba

Un toque sube como máximo una vez, o nunca. En la práctica, casi siempre recibirás un evento
up porque nadie mantendrá un dedo en la pantalla por toda la eternidad, pero no está
garantizado. Si conoce las fuentes de entrada que utilizarán sus usuarios, sabrá si puede confiar
en que se ingrese en este estado.
1.4. Documentar arquitectura a utilizar.

Como ya se ha mencionado, Android es una plataforma para dispositivos móviles que contiene
una pila de software donde se incluye un sistema operativo, middleware y aplicaciones básicas
para el usuario. En las siguientes líneas se dará una visión global por capas de cuál es la
arquitectura empleada en Android. Cada una de estas capas utiliza servicios ofrecidos por las
anteriores, y ofrece a su vez los suyos propios a las capas de niveles superiores, tal como muestra
la siguiente figura.

El siguiente gráfico muestra la arquitectura de Android. Como se puede ver está formada por
cuatro capas. Una de las características más importantes es que todas las capas están basadas
en software libre.

Entorno de aplicación

Proporciona una plataforma de desarrollo libre para aplicaciones con gran riqueza e
innovaciones (sensores, localización, servicios, barra de notificaciones, etc.).

Esta capa ha sido diseñada para simplificar la reutilización de componentes. Las aplicaciones
pueden publicar sus capacidades y otras pueden hacer uso de ellas (sujetas a las restricciones
de seguridad). Este mismo mecanismo permite a los usuarios reemplazar componentes.

Los servicios más importantes que incluye son:


 *Views: extenso conjunto de vistas, (parte visual de los componentes).

 *Resource Manager: proporciona acceso a recursos que no son en código.

 *Activity Manager: maneja el ciclo de vida de las aplicaciones y proporciona un sistema


de navegación entre ellas.

 *Notification Manager: permite a las aplicaciones mostrar alertas personalizadas en la


barra de estado.

 *Content Providers: mecanismo sencillo para acceder a datos de otras aplicaciones


(como los contactos).

Una de las mayores fortalezas del entorno de aplicación de Android es que se aprovecha el
lenguaje de programación Java. El SDK de Android no acaba de ofrecer para su estándar todo lo
disponible del entorno de ejecución Java (JRE), pero es compatible con una fracción muy
significativa de este

 Aplicaciones: Este nivel contiene, tanto las incluidas por defecto de Android como
aquellas que el usuario vaya añadiendo posteriormente, ya sean de terceras empresas
o de su propio desarrollo. Todas estas aplicaciones utilizan los servicios, las API y librerías
de los niveles anteriores.
 Framework de Aplicaciones: Representa fundamentalmente el conjunto de
herramientas de desarrollo de cualquier aplicación. Toda aplicación que se desarrolle
para Android, ya sean las propias del dispositivo, las desarrolladas por Google o
terceras compañías, o incluso las que el propio usuario cree, utilizan el mismo conjunto
de API y el mismo "framework", representado por este nivel.
Entre las API más importantes ubicadas aquí, se pueden encontrar las siguientes:
 Activity Manager: Conjunto de API que gestiona el ciclo de vida de las
aplicaciones en Android.
 Window Manager: Gestiona las ventanas de las aplicaciones y utiliza la librería
Surface Manager.
 Telephone Manager: Incluye todas las API vinculadas a las funcionalidades
propias del teléfono (llamadas, mensajes, etc.).
 Content Provider: Permite a cualquier aplicación compartir sus datos con las
demás aplicaciones de Android. Por ejemplo, gracias a esta API la información de
contactos, agenda, mensajes, etc. será accesible para otras aplicaciones.
 View System: Proporciona un gran número de elementos para poder construir
interfaces de usuario (GUI), como listas, mosaicos, botones, "check-boxes", tamaño
de ventanas, control de las interfaces mediante teclado, etc. Incluye también algunas
vistas estándar para las funcionalidades más frecuentes .
 Location Manager: Posibilita a las aplicaciones la obtención de información
de localización y posicionamiento.
 Notification Manager: Mediante el cual las aplicaciones, usando un mismo
formato, comunican al usuario eventos que ocurran durante su ejecución: una
llamada entrante, un mensaje recibido, conexión Wi-Fi disponible, ubicación en un
punto determinado, etc. Si llevan asociada alguna acción, en Android
denominada Intent, (por ejemplo, atender una llamada recibida) ésta se activa
mediante un simple clic.
 XMPP Service: Colección de API para utilizar este protocolo de intercambio de
mensajes basado en XML.
 Librerías: La siguiente capa se corresponde con las librerías utilizadas por Android.
Éstas han sido escritas utilizando C/C++ y proporcionan a Android la mayor parte de
sus capacidades más características. Junto al núcleo basado en Linux, estas librerías
constituyen el corazón de Android.
Entre las librerías más importantes ubicadas aquí, se pueden encontrar las siguientes:
 Librería libc: Incluye todas las cabeceras y funciones según el estándar del
lenguaje C. Todas las demás librerías se definen en este lenguaje.
 Librería Surface Manager: Es la encargada de componer los diferentes
elementos de navegación de pantalla. Gestiona también las ventanas pertenecientes
a las distintas aplicaciones activas en cada momento.
 OpenGL/SL y SGL: Representan las librerías gráficas y, por tanto, sustentan la
capacidad gráfica de Android. OpenGL/SL maneja gráficos en 3D y permite utilizar,
en caso de que esté disponible en el propio dispositivo móvil, el hardware encargado
de proporcionar gráficos 3D. Por otro lado, SGL proporciona gráficos en 2D, por lo
que será la librería más habitualmente utilizada por la mayoría de las aplicaciones.
Una característica importante de la capacidad gráfica de Android es que es posible
desarrollar aplicaciones que combinen gráficos en 3D y 2D.
 Librería Media Libraries: Proporciona todos los códecs necesarios para el
contenido multimedia soportado en Android (vídeo, audio, imágenes estáticas y
animadas, etc.)
 FreeType: Permite trabajar de forma rápida y sencilla con distintos tipos de
fuentes.
 Librería SSL: Posibilita la utilización de dicho protocolo para establecer
comunicaciones seguras.
 Librería SQLite: Creación y gestión de bases de datos relacionales.
 Librería WebKit: Proporciona un motor para las aplicaciones de tipo
navegador y forma el núcleo del actual navegador incluido por defecto en la
plataforma Android.
 Tiempo de ejecución de Android: Al mismo nivel que las librerias de Android se sitúa
el entorno de ejecución. Éste lo constituyen las Core Libraries, que son librerias con
mulititud de clases Java y la máquina vistual Dalvik.
 Núcleo Linux: Android utiliza el núcleo de Linux 2.6 como una capa de abstracción
para el hardware disponible en los dispositivos móviles. Esta capa contiene los drivers
necesarios para que cualquier componente hardware pueda ser utilizado mediante las
llamadas correspondientes. Siempre que un fabricante incluye un nuevo elemento de
hardware, lo primero que se debe realizar para que pueda ser utilizado desde Android
es crear las librerias de control o drivers necesarios dentro de este kernel de Linux
embebido en el propio Android.

Vous aimerez peut-être aussi