Kivy (framework)
| 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 |
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.
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
[modifica | modifica wikitesto]Ecco 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
[modifica | modifica wikitesto]Il 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"
[modifica | modifica wikitesto]Kivy ha partecipato alle seguenti edizioni del Google Summer of Code (GSoC) sotto l'egida della Python Software Foundation:
Note
[modifica | modifica wikitesto]- ^ 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/.
Voci correlate
[modifica | modifica wikitesto]- Pygame, un'altra API di gioco Python, un livello su Simple DirectMedia Layer
- Panda3D
Altri progetti
[modifica | modifica wikitesto]
Wikimedia Commons contiene immagini o altri file su Kivy
Collegamenti esterni
[modifica | modifica wikitesto]- (EN) Sito ufficiale, su kivy.org.

