| Kivy software | |
|---|---|
| Genere | |
| Sviluppatore | Kivy organization |
| Data prima versione | 1 febbraio 2011 |
| 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.
Kivy è il principale framework sviluppato dalla comunità Kivy. 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.
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:
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()
Il linguaggio KV è un linguaggio di markup simile a CSS, creato appositamente per Kivy. Viene utilizzato per definire l'aspetto e il comportamento delle interfacce utente in modo dichiarativo, separando la logica dell'applicazione dal design grafico.
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:
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".
Kivy ha partecipato alle seguenti edizioni del Google Summer of Code (GSoC) sotto l'egida della Python Software Foundation: