Kivy (framework)
Kivy è un framework open source rilasciato sotto Licenza MIT utilizzato per lo sviluppo di applicazioni multi-touch e interfacce utente (UI) interattive. È basato su Python e supporta lo sviluppo su diverse piattaforme tra cui Linux, Windows, macOS, Android e iOS.
Kivy software | |
---|---|
![]() | |
![]() | |
Genere | |
Sviluppatore | Kivy organization |
Data prima versione | 1 febbraio 2011 [1] |
Ultima versione | 2.3.0 (5 gennaio 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | cython Python python Cython (non in lista) |
Licenza | Licenza MIT (licenza libera) |
Sito web | kivy.org |
Inizialmente nato come evoluzione del progetto PyMT (Python Multi-Touch), Kivy, ha ampliato le funzionalità di PyMT, migliorando il supporto multipiattaforma e aggiungendo nuovi strumenti e widget per creare interfacce utente più avanzate e interattive.[2][3]
Kivy è il principale framework sviluppato dalla comunità Kivy.[4] Nel 2012, Kivy ha ricevuto una sovvenzione di 5000 dollari dalla Python Software Foundation per portare il framework su Python 3.3. Kivy supporta anche il Raspberry Pi, grazie a un finanziamento ottenuto tramite Bountysource, una piattaforma di crowdfunding per progetti open-source.[5]
Kivy è un framework completo che fornisce tutti gli elementi necessari per creare un'applicazione. Include widget e vari componenti per lo sviluppo di interfacce utente interattive e dinamiche. Tra le principali componenti si trovano:
- Una collezione di widget come pulsanti, etichette, caselle di testo, slider, e molto altro
- Diversi layout per organizzare i widget in modo flessibile e responsivo.
- Supporto per eventi touch, gesture e multi-touch, ideale per dispositivi mobili e tablet.
- OpenGL ES 2 per creare interfacce grafiche avanzate e animazioni fluide.
- Supporto per la riproduzione di audio e video all'interno delle applicazioni.
- Kv [6], una sorta di linguaggio intermedio utilizzato per progettare widget personalizzati
Esempio di codice
modificaEcco il classico esempio di programma "Hello world" con un singolo pulsante:
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
def build(self):
return Button(text="Hello World")
TestApp().run()
Linguaggio KV
modificaIl linguaggio KV è un linguaggio di markup simile a CSS, creato appositamente per Kivy.[7] Viene utilizzato per definire l'aspetto e il comportamento delle interfacce utente in modo dichiarativo, separando la logica dell'applicazione dal design grafico.[8]
Ad esempio, per creare una finestra di caricamento che includa un file browser e due pulsanti denominati "Annulla" e "Carica", si potrebbe procedere in due fasi:
- Creazione del widget. Qui si definisce la logica di base e la struttura del widget utilizzando il linguaggio di programmazione Python.
- Costruire l'interfaccia utente in Kv. In questa fase si utilizza il linguaggio Kv per definire l'aspetto grafico e il layout del widget creato in Python
Codice del file main.py:
class LoadDialog(FloatLayout):
def load(self, filename): pass
def cancel(self): pass
Codice in linguaggio Kv associato:
#:kivy 1.11.1
<LoadDialog>:
BoxLayout:
size: root.size
pos: root.pos
orientation: "vertical"
FileChooserListView:
id: filechooser
BoxLayout:
size_hint_y: None
height: 30
Button:
text: "Cancel"
on_release: root.cancel()
Button:
text: "Load"
on_release: root.load(filechooser.path, filechooser.selection)
In alternativa, il layout e i pulsanti possono essere caricati direttamente all'interno del file "main.py".
Partecipazione al "Google Summer of Code"
modificaKivy ha partecipato alle seguenti edizioni del Google Summer of Code (GSoC) sotto l'egida della Python Software Foundation:
Voci correlate
modifica- Pygame, un'altra API di gioco Python, un livello su Simple DirectMedia Layer
- Panda3D
Note
modifica- ^ Kivy changelog, in kivy.org. URL consultato il 5 aprile 2016.
- ^ (EN) Kivy (next PyMT) on Android, step 1 done !, su blog.kivy.org.
- ^ (EN) How is Kivy related to PyMT?, su kivy.org.
- ^ https://kivy.org/#aboutus.
- ^ https://www.bountysource.com/#fundraisers/143-kivy-on-raspberry-pi.
- ^ https://kivy.org/docs/guide/lang.html.
- ^ Crea la tua prima App con Kivy, su programmareinpython.it.
- ^ (EN) Kv language, su kivy.org.
- ^ google-melange.com, https://www.google-melange.com/archive/gsoc/2014/orgs/python .
- ^ google-melange.com, https://www.google-melange.com/archive/gsoc/2015/orgs/python .
- ^ wiki.python.org, https://wiki.python.org/moin/SummerOfCode/2016 .
- ^ python-gsoc.org, https://python-gsoc.org/2017/ .
Collegamenti esterni
modifica- (EN) Sito ufficiale, su kivy.org.