O Toga é o kit de ferramentas de GUI nativo do Python e do sistema operacional da BeeWare.
Por que Toga?
O Toga não é o primeiro kit de ferramentas de widgets do mundo - há dezenas de outras opções. Então, por que criar um novo?
Widgets nativos - não temas
O Toga usa widgets nativos do sistema, não temas. Quando você vê um aplicativo Toga em execução, ele não se parece apenas com um aplicativo nativo - ele é um aplicativo nativo. A aplicação de um tema inspirado no sistema operacional sobre um conjunto de widgets genérico é uma maneira fácil de um desenvolvedor atingir um objetivo de plataforma cruzada mas deixa o usuário final com a bagunça.
É fácil identificar aplicativos que foram criados usando conjuntos de widgets temáticos. eles são aqueles que não se comportam como qualquer outro aplicativo. Os widgets não têm a aparência correta, ou há uma barra de menu em uma janela em um aplicativo macOS macOS. Os temas podem se aproximar bastante, mas sempre há sinais de alerta.
Além disso, os widgets nativos são sempre mais rápidos do que um widget genérico temático. genérico temático. Afinal de contas, você está usando o recurso nativo do sistema que foi ajustado e otimizado, e não um mecanismo de desenho que foi colocado em camadas sobre um widget genérico. Eles também herdam todos os recursos de acessibilidade da plataforma nativa recursos de acessibilidade da plataforma nativa, como suporte a leitores de tela e tamanhos de fonte adaptáveis.
Abstraia os conceitos gerais
No entanto, não basta apenas parecer um aplicativo nativo - você precisa sentir como um aplicativo nativo também.
Uma opção "Sair" em um menu "Arquivo" faz sentido se você estiver escrevendo um aplicativo aplicativo do Windows, mas está completamente fora de lugar se você estiver no OS X - a opção A opção Sair deve estar no menu do aplicativo.
Além disso, por que o desenvolvedor teve que codificar o local de uma opção Sair de qualquer forma? Todo aplicativo no mundo precisa ter uma opção de sair, então por que o kit de ferramentas de widget não fornece uma opção de sair pré-instalada, pronta para uso? da caixa?
Embora o Toga use 100% de widgets nativos do sistema, isso não significa que o Toga seja apenas um invólucro para os widgets do sistema. Sempre que possível, a Toga tenta abstrair os conceitos mais amplos que sustentam a construção de aplicativos e criar uma API para isso. Portanto, todo aplicativo Toga tem o conjunto básico de opções de menu que você espera de qualquer aplicativo - Sair, Sobre e assim por diante - tudo nos locais em que você esperaria vê-los em um aplicativo nativo.
Quando se trata de widgets, às vezes a abstração é simples. afinal, um botão é um botão, não importa em que plataforma você esteja. Mas outros widgets podem não ser expostos de forma tão literal. O objetivo da API Toga é expor é um conjunto de mecanismos para atingir os objetivos da interface do usuário, não um conjunto de widgets.
Nativo do Python
A maioria dos kits de ferramentas de widgets começa como uma camada C ou C++, que é então envolvida por outras linguagens. Como resultado, você acaba com APIs que têm gosto de como C ou C++.
O Toga foi projetado desde o início para ser um widget nativo do Python nativo do Python. Isso significa que a API é capaz de explorar os recursos de nível de linguagem como geradores e gerenciadores de contexto de uma forma que um wrapper em torno de uma biblioteca C não seria capaz de fazer (pelo menos, não facilmente).
O Toga é executado no Python 3. Ele não é executado no Python 2.
pip install e nada mais
O objetivo do Toga é estar a apenas uma instalação do pip que não pode ser usada. Ele não exige a compilação de extensões C. Não há necessidade de instalar uma biblioteca binária de suporte. Não há necessidade de alterar os caminhos do sistema e as variáveis de ambiente. Basta instalá-la, importá-la e começar a escrever (ou executar) código.
Abrace a mobilidade
Há 10 anos, ser um kit de ferramentas de widget multiplataforma significava estar disponível para Windows, OS X e Linux. Hoje em dia, a computação móvel é muito mais importante. Mas, apesar disso, não há muitas boas opções para a programação Python em plataformas móveis, e a codificação móvel multiplataforma e a codificação móvel multiplataforma ainda é difícil. O objetivo do Toga é corrigir isso.
Como ajudar
Então, por que é chamado "Toga"?
Quando estiver em Roma, faça o que os romanos fazem. E o que um romano usa? Uma Toga!