Vai al contenuto

Kivy (framework)

Da Wikipedia, l'enciclopedia libera.
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

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:

  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 | modifica wikitesto]

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

  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/.

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero