Toga no es el primer toolkit del mundo - hay docenas de otras opciones. Entonces, ¿por qué construir uno nuevo?
Widgets nativos - no temas
Toga utiliza widgets nativos del sistema, no temas. Cuando ves una aplicación de Toga en ejecución, no se parece simplemente a una aplicación nativa: es una aplicación nativa. La aplicación de un tema inspirado en el sistema operativo en la parte superior de un conjunto de widgets genéricos es una manera fácil para un desarrollador de lograr una meta de plataforma cruzada, pero deja al usuario final con el lío.
Es fácil detectar las aplicaciones que se han construido utilizando conjuntos de widgets temáticos - son los que no se comportan como cualquier otra aplicación. Los widgets no parecen muy correctos, o hay una barra de menús en una ventana en una aplicación de OS X. Los temas pueden acercarse bastante - pero siempre hay signos reveladores.
Además, widgets nativos son siempre más rápidos que un widget genérico temático. Después de todo, está utilizando la capacidad del sistema nativo que ha sido afinada y optimizada, no un motor de dibujo que se ha superpuesto en la parte superior de un widget genérico.
Resumen de los conceptos generales
Sin embargo, no basta con que se parezca a una aplicación nativa; también debe sentirse como una aplicación nativa.
Una opción de "Salir" en un menú "Archivo" tiene sentido si estás escribiendo una aplicación para Windows, pero está completamente fuera de lugar si estás en OS X. La opción Salir debe estar en el menú de la aplicación.
Y además - ¿por qué el desarrollador tiene que codificar la ubicación de una opción Salir de todos modos? Cada aplicación en el mundo tiene que tener una opción de salir, así que ¿por qué el kit de herramientas de widget no proporciona una opción de salir predefinida?
Aunque Toga usa widgets 100% nativos del sistema, esto no significa que Toga es sólo una envoltura alrededor de los widgets del sistema. Siempre que sea posible, Toga intenta abstraer los conceptos más amplios que sustentan la construcción de aplicaciones gráficas, y crear una API para eso. Por lo tanto, cada aplicación de Toga tiene el conjunto básico de opciones de menú que esperas de cada aplicación: Salir, Acerca, etc., todo en los lugares que esperas ver en una aplicación nativa.
Cuando se trata de widgets, a veces la abstracción es simple - después de todo, un botón es un botón, no importa en qué plataforma estás. Pero otros widgets no pueden ser expuestos tan literalmente. Lo que la API de Toga apunta a exponer es un conjunto de mecanismos para alcanzar las metas de la interfaz de usuario, no un conjunto literal de widgets.
Python nativo
La mayoría de los toolkits de widgets comienzan su vida como una capa C o C ++, que luego se envuelve en otros idiomas. Como resultado, terminan con API que tienen gusto como C o C ++.
Toga ha sido diseñado desde cero para ser un conjunto de herramientas de widget nativo de Python. Esto significa que la API es capaz de explotar características de nivel de lenguaje como generadores y gestores de contexto de una manera que un contenedor alrededor de una biblioteca C no podría (por lo menos, no fácilmente).
Esto también significa soportar Python 3. Toga soporta Python 2 y Python 3, en una base de código unificada siguiendo las convenciones establecidas.
pip install y nada más
Toga apunta a ser usado con una simple instalación via pip. No requiere la compilación de extensiones C. No es necesario instalar una biblioteca de soporte binario. No es necesario cambiar las rutas del sistema y las variables de entorno. Simplemente instalarlo, importarlo y comenzar a escribir (o ejecutar) código.
Adoptando dispositivos móviles
Hace 10 años, un toolkit de herramientas multi-plataforma significaba estar disponible para Windows, OS X y Linux. En estos días, la computación móvil es mucho más importante. Pero a pesar de esto, no hay buenas opciones para la programación de Python en las plataformas móviles, y la codificación móvil multi-plataforma sigue siendo difícil de alcanzar. Toga pretende corregir esto.
Entonces, ¿por qué se llama "Toga"?
Cuando fueres haz lo que vieres. ¿Y qué usa un romano? ¡Una Toga!
- Tipo de proyecto:
- Librería
- Madurez:
- Desarrollo inicial
- Lenguaje:
- Python
- Plataforma:
- Independiente de plataforma
Colaboradores