Kivy (framework)

framework python multipiattaforma

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
Logo
Logo
Kivy
Kivy
Kivy
Genere
SviluppatoreKivy organization
Data prima versione1 febbraio 2011 [1]
Ultima versione2.3.0 (5 gennaio 2024)
Sistema operativoMultipiattaforma
Linguaggiocython
Python
python
Cython (non in lista)
LicenzaLicenza MIT
(licenza libera)
Sito webkivy.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

modifica

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

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:

  1. Creazione del widget. Qui si definisce la logica di base e la struttura del widget utilizzando il linguaggio di programmazione Python.
  2. 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

Kivy ha partecipato alle seguenti edizioni del Google Summer of Code (GSoC) sotto l'egida della Python Software Foundation:

Voci correlate

modifica
  1. ^ Kivy changelog, in kivy.org. URL consultato il 5 aprile 2016.
  2. ^ (EN) Kivy (next PyMT) on Android, step 1 done !, su blog.kivy.org.
  3. ^ (EN) How is Kivy related to PyMT?, su kivy.org.
  4. ^ https://kivy.org/#aboutus.
  5. ^ https://www.bountysource.com/#fundraisers/143-kivy-on-raspberry-pi.
  6. ^ https://kivy.org/docs/guide/lang.html.
  7. ^ Crea la tua prima App con Kivy, su programmareinpython.it.
  8. ^ (EN) Kv language, su kivy.org.
  9. ^ google-melange.com, https://www.google-melange.com/archive/gsoc/2014/orgs/python.
  10. ^ google-melange.com, https://www.google-melange.com/archive/gsoc/2015/orgs/python.
  11. ^ wiki.python.org, https://wiki.python.org/moin/SummerOfCode/2016.
  12. ^ python-gsoc.org, https://python-gsoc.org/2017/.

Collegamenti esterni

modifica
  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero