Kivy é Biblioteca de código aberto Python para desenvolvimento rápido de aplicativos, que fazem uso de interfaces de usuário inovadoras, como recursos multi-touch e permite que o mesmo código seja executado em diversos sistemas operacionais.
Benefícios
Cross Plataforma
Kivy é roda em Linux, Windows, OS X, Android e iOS. O mesmo código é suportado em todas as plataformas. Ele permite usar nativamente a maioria das entradas, protocolos e dispositivos, incluindo WM_Touch, WM_Pen, Mac OS X Trackpad e Magic Mouse, Mtdev, Linux Kernel HID, TUIO. E já possui incluído um simulador de mouse multi-touch.
Licença e documentação
Kivy é 100% livre, sob uma licença MIT (a partir de 1.7.2) e LGPL 3 para as versões anteriores. O conjunto de ferramentas é profissionalmente desenvolvido, apoiado e utilizado. Pode-se usá-lo em um produto comercial. A estrutura é estável e tem uma API bem documentada, além de um guia de programação para a ajuda inicial.
Acelerador Gráfico
O motor gráfico é construído sobre OpenGL ES 2, usando um pipeline de gráficos modernos e rápidos. O kit de ferramentas vem com mais de 20 widgets, todos altamente extensíveis. Muitas partes são escritas em C usando Cython, e testadas com testes de alta qualidade.
Escopo
- Sistema Operacional Linux Debian-Like;
- Pyhton-2.7
- Pyhton-3.5
Dependências Linux
sudo apt-get install -y \ build-essential \ ffmpeg \ git \ libavcodec-dev \ libavformat-dev \ libportmidi-dev \ libsmpeg-dev \ libswscale-dev \ mercurial \ zlib1g-devInstalação Cython
sudo aptitude install -y \ cython \ cython3Instalação Python
sudo aptitude install -y \ python-dev \ python3-dev \ python-pip \ python-virtualenvTambém pode utilizar as outras maneiras indicadas nos artigos listados abaixo:
- Instalar várias versões de Python sobre GNU/Linux
- Instalar várias versões de Python sobre GNU/Linux com bootstrap
- Instalar várias versões de Python sobre GNU/Linux via buildout
Instalação SDL2
# Install necessary system packages sudo apt-get install -y \ libsdl-mixer1.2-dev \ libsdl-ttf2.0-dev \ libsdl1.2-dev \ libsdl2-dev \ libsdl2-image-dev \ libsdl2-mixer-dev \ libsdl2-ttf-dev \Instalação Kivy
sudo aptitude install -y \ python-kivy \ python3-kivy \ python-kivy-examplesCriar ambientes Virtuais Python
Trabalhemos no diretório "projetos" no home do usuário
~/projetos
.
mkdir ~/projetosCriemos o diretório para o novo projeto
mkdir ~/projetos/teste_kivyCriemos o ambiente virtual para Python-2.7
virtualenv -p python2.7 ~/projetos/teste_kivy/py27Criemos o ambiente virtual para Python-3.5
virtualenv -p python3.5 ~/projetos/teste_kivy/py35A estrutura ficará assim:
teste_kivy/ ├── py27 │ ├── bin │ ├── include │ │ └── python2.7 -> /usr/include/python2.7 │ ├── lib │ │ └── python2.7 │ │ ├── distutils -> /home/brito/projetos/0-aulas_udemy_kivy/py27/lib/python2.7/distutils │ │ ├── encodings -> /usr/lib/python2.7/encodings │ │ ├── lib-dynload -> /usr/lib/python2.7/lib-dynload │ │ └── site-packages │ │ ├── pip │ │ │ ├── commands │ │ │ ├── compat │ │ │ ├── models │ │ │ ├── operations │ │ │ ├── req │ │ │ ├── utils │ │ │ ├── vcs │ │ │ └── _vendor │ │ │ ├── cachecontrol │ │ │ │ └── caches │ │ │ ├── colorama │ │ │ ├── distlib │ │ │ │ └── _backport │ │ │ ├── html5lib │ │ │ │ ├── filters │ │ │ │ ├── treeadapters │ │ │ │ ├── treebuilders │ │ │ │ ├── treewalkers │ │ │ │ └── _trie │ │ │ ├── lockfile │ │ │ ├── packaging │ │ │ ├── pkg_resources │ │ │ ├── progress │ │ │ ├── requests │ │ │ │ └── packages │ │ │ │ ├── chardet │ │ │ │ └── urllib3 │ │ │ │ ├── contrib │ │ │ │ ├── packages │ │ │ │ │ └── ssl_match_hostname │ │ │ │ └── util │ │ │ └── webencodings │ │ ├── pip-9.0.1.dist-info │ │ ├── pkg_resources │ │ │ ├── extern │ │ │ └── _vendor │ │ │ └── packaging │ │ ├── pkg_resources-0.0.0.dist-info │ │ ├── setuptools │ │ │ ├── command │ │ │ └── extern │ │ ├── setuptools-28.8.0.dist-info │ │ ├── wheel │ │ │ ├── signatures │ │ │ ├── test │ │ │ │ ├── complex-dist │ │ │ │ │ └── complexdist │ │ │ │ ├── extension.dist │ │ │ │ ├── headers.dist │ │ │ │ └── simple.dist │ │ │ │ └── simpledist │ │ │ └── tool │ │ └── wheel-0.30.0a0.dist-info │ ├── local │ │ ├── bin -> /home/brito/projetos/teste_kivy/py27/bin │ │ ├── include -> /home/brito/projetos/teste_kivy/py27/include │ │ └── lib -> /home/brito/projetos/teste_kivy/py27/lib │ └── share │ └── python-wheels └── py35 ├── bin ├── include │ └── python3.5m -> /usr/include/python3.5m ├── lib │ └── python3.5 │ ├── collections -> /usr/lib/python3.5/collections │ ├── config-3.5m-x86_64-linux-gnu -> /usr/lib/python3.5/config-3.5m-x86_64-linux-gnu │ ├── distutils │ │ └── __pycache__ │ ├── encodings -> /usr/lib/python3.5/encodings │ ├── importlib -> /usr/lib/python3.5/importlib │ ├── lib-dynload -> /usr/lib/python3.5/lib-dynload │ ├── plat-x86_64-linux-gnu -> /usr/lib/python3.5/plat-x86_64-linux-gnu │ ├── __pycache__ │ └── site-packages │ ├── pip │ │ ├── commands │ │ │ └── __pycache__ │ │ ├── compat │ │ │ └── __pycache__ │ │ ├── models │ │ │ └── __pycache__ │ │ ├── operations │ │ │ └── __pycache__ │ │ ├── __pycache__ │ │ ├── req │ │ │ └── __pycache__ │ │ ├── utils │ │ │ └── __pycache__ │ │ ├── vcs │ │ │ └── __pycache__ │ │ └── _vendor │ │ ├── cachecontrol │ │ │ ├── caches │ │ │ │ └── __pycache__ │ │ │ └── __pycache__ │ │ ├── colorama │ │ │ └── __pycache__ │ │ ├── distlib │ │ │ ├── _backport │ │ │ │ └── __pycache__ │ │ │ └── __pycache__ │ │ ├── html5lib │ │ │ ├── filters │ │ │ │ └── __pycache__ │ │ │ ├── __pycache__ │ │ │ ├── treeadapters │ │ │ │ └── __pycache__ │ │ │ ├── treebuilders │ │ │ │ └── __pycache__ │ │ │ ├── treewalkers │ │ │ │ └── __pycache__ │ │ │ └── _trie │ │ │ └── __pycache__ │ │ ├── lockfile │ │ │ └── __pycache__ │ │ ├── packaging │ │ │ └── __pycache__ │ │ ├── pkg_resources │ │ │ └── __pycache__ │ │ ├── progress │ │ │ └── __pycache__ │ │ ├── __pycache__ │ │ ├── requests │ │ │ ├── packages │ │ │ │ ├── chardet │ │ │ │ │ └── __pycache__ │ │ │ │ ├── __pycache__ │ │ │ │ └── urllib3 │ │ │ │ ├── contrib │ │ │ │ │ └── __pycache__ │ │ │ │ ├── packages │ │ │ │ │ ├── __pycache__ │ │ │ │ │ └── ssl_match_hostname │ │ │ │ │ └── __pycache__ │ │ │ │ ├── __pycache__ │ │ │ │ └── util │ │ │ │ └── __pycache__ │ │ │ └── __pycache__ │ │ └── webencodings │ │ └── __pycache__ │ ├── pip-9.0.1.dist-info │ ├── pkg_resources │ │ ├── extern │ │ │ └── __pycache__ │ │ ├── __pycache__ │ │ └── _vendor │ │ ├── packaging │ │ │ └── __pycache__ │ │ └── __pycache__ │ ├── pkg_resources-0.0.0.dist-info │ ├── __pycache__ │ ├── setuptools │ │ ├── command │ │ │ └── __pycache__ │ │ ├── extern │ │ │ └── __pycache__ │ │ └── __pycache__ │ ├── setuptools-28.8.0.dist-info │ ├── wheel │ │ ├── __pycache__ │ │ ├── signatures │ │ │ └── __pycache__ │ │ ├── test │ │ │ ├── complex-dist │ │ │ │ ├── complexdist │ │ │ │ │ └── __pycache__ │ │ │ │ └── __pycache__ │ │ │ ├── extension.dist │ │ │ │ └── __pycache__ │ │ │ ├── headers.dist │ │ │ │ └── __pycache__ │ │ │ ├── __pycache__ │ │ │ └── simple.dist │ │ │ ├── __pycache__ │ │ │ └── simpledist │ │ │ └── __pycache__ │ │ └── tool │ │ └── __pycache__ │ └── wheel-0.30.0a0.dist-info └── share └── python-wheelsDependências para Kivy
Vamos utilizar os ambientes virtuais criados para prosseguir com a instalação.
em Python-2.x
source py27/bin/activate pip install numpy Cython==0.23 pygame pygments docutils pip install kivyem Python-3.5
source py35/bin/activate pip install numpy Cython==0.23 pygame pygments docutils pip install kivyTeste de execução
Código do "Exemplo de Uso"
from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): return Button(text='Hello World') TestApp().run()Copie o código de exemplo de uso, salve-o em ~/projetos/teste_kivy/teste.py e no terminal execute os códigos abaixo:
source ~/projetos/teste_kivy/py27/bin/activate python ~/projetos/teste_kivy/teste.py source ~/projetos/teste_kivy/py35/bin/activate python ~/projetos/teste_kivy/teste.pyEm ambos deverão aparecer uma tela como a tela abaixo.
GUI - Graphical User Interface (Exemplo de Uso)
Referências
https://kivy.org/docs/installation/installation-linux.html
Comentários