Kivy

Pour l’article ayant un titre homophone, voir Kivi.

Kivy

Informations Développé par |  Kivy organization

|

Dernière version |  2.3.1 (26 décembre 2024)[1]
Dépôt |  github.com/kivy/kivy
État du projet  |  Active
Écrit en |  Python, Cython
Système d'exploitation |  Multiplateforme (en)
Environnement |  Cross-platform
Formats lus |  Kv design language (d)
Formats écrits |  Kv design language (d)
Type  |  Bibliothèque logicielle API
Licence |  MIT (Free software)
Site web |  kivy.org

modifier \- modifier le code \- voir Wikidata (aide)

Kivy est une bibliothèque libre et open source pour Python, utile pour créer des applications tactiles pourvues d'une interface utilisateur naturelle. Cette bibliothèque fonctionne sur Android, iOS, GNU/Linux, OS X et Windows. Elle est distribuée gratuitement et sous licence MIT.

Kivy est le framework principal développé par l'organisation Kivy, en parallèle avec Python-for-Android[2], Kivy iOS, ainsi que plusieurs autres bibliothèques destinées à être utilisables sur toutes ces plateformes. En 2012, Kivy a obtenu un financement de 5 000 $ de la Python Software Foundation pour le portage vers Python 3.3. Kivy supporte aussi le RaspberryPi grâce à un financement participatif via le site BountySource (en).

Le framework contient tous les éléments pour construire des applications et notamment :

* fonctionnalités de saisie étendues pour la souris, le clavier, les interfaces utilisateurs tangibles, ainsi que les évènements multi-touch générés par ces différents matériels.
* une bibliothèque graphique basée seulement sur OpenGL ES2, et utilisant les Objets Tampons Vertex et les shaders.
* une large gamme de widgets acceptant le multi-touch.
* un langage intermédiaire (le Kv[3]), pour construire facilement des widgets personnalisés.

Kivy est le successeur de PyMT[4].

## Exemple de code

[modifier | modifier le code]

Voici un exemple de programme affichant Hello word, avec un unique bouton:

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
def build(self):
return Button(text='Hello World')

TestApp().run()

## Langage Kv

[modifier | modifier le code]

Le langage Kv (Kivy) est un langage destiné à la description des interfaces et des interactions avec l'utilisateur. Comme en QML, il est possible de créer facilement l'ensemble de l'interface utilisateur d'un programme et y relier les actions utilisateurs. Par exemple, pour créer une boîte de dialogue de type "Ouvrir" qui contiennent un navigateur de fichier et deux boutons Annuler et Ouvrir, on pourrait créer une trame Python, puis construire l'interface en Kv.

Le code Python main.py :

class LoadDialog(FloatLayout):
def load(self, filename): pass
def cancel(self): pass

Et le code associé en langage Kv loaddialog.kv:

#:kivy 1.4.0
<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)

L'application complète associe dans un même dossier le code Python et le code en langage Kv.

Outre le manuel utilisateur[5] disponible sur le site web, quelques livres sont disponibles sur le sujet[6],[7] (en anglais). Le lancement de l'application sur un smartphone peut passer par deux solutions:

* construire l'application en code natif (compilation croisée), à l'aide d'outils tels que buildozer[8]
* transférer le code source vers un lanceur d'application ou interpréteur installé sur le smartphone via sa logithèque, tel que le Kivy launcher[9] sur Android.

La nature du développement multi-plateforme permet de réutiliser, en règle générale, le code sans changement d'un environnement à un autre.

## Google Summer of Code

[modifier | modifier le code]

Kivy participe au Google summer of Code par le biais de la Python sofware Foudation [1]

* Kivy in GSoC'2014: www.google-melange.com/archive/gsoc/2014/orgs/python
* Kivy in GSoC'2015: www.google-melange.com/archive/gsoc/2015/orgs/python
* Kivy in GSoC'2016: wiki.python.org/moin/SummerOfCode/2016
* Kivy in GSoC'2017: http://python-gsoc.org/ et https://kivy.org/docs/gsoc.html

## Références

[modifier | modifier le code]

1. ↑ « Release 2.3.1 », 26 décembre 2024 (consulté le 22 janvier 2025)
2. ↑ (en) « Kivy/python-for-android », sur GitHub (consulté le 19 septembre 2020).
3. ↑ (en) « Introduction to the Kivy Language »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?), sur kivy.org (consulté le 24 août 2014).
4. ↑ (en) « how-is-kivy-related-to-pymt » (consulté le 24 août 2014).
5. ↑ (en) « Documentation Kivy ».
6. ↑ (en) Dusty Phillips, Creating Apps in Kivy, États-Unis, O'Reilly, 2014, 188 p. (ISBN 978-1-4919-4667-1)
7. ↑ (en) Roberto Ulloa Rodriguez, Kivy: Interactive Applications in Python, Angleterre, Packt Publishing, 2013, 138 p. (ISBN 978-1783281596)
8. ↑ (en) « buildozer package ».
9. ↑ (en) « Kivy Launcher »(Archive.org • Wikiwix • Archive.is • Google • Que faire ?).

## Liens externes

[modifier | modifier le code]

* (en) Site officiel
*   *   *

v · m

Bibliothèques Python

Interfaces graphiques |

* Kivy
* PyGObject
* Pyglet
* PyQt
* PySide
* Tkinter
* wxPython

Bibliothèques scientifiques |  | Mathématiques et science des données |

* Matplotlib
* NumPy
* Pandas
* SciPy
* SymPy

|

Apprentissage automatique |

* JAX
* Keras
* PyTorch
* scikit-learn
* TensorFlow

Traitement d'images |

* Python Imaging Library
* scikit-image

Traitement automatique des langues |

* Natural Language Toolkit
* SpaCy

Frameworks web |

* Bottle
* CherryPy
* Django
* Flask
* Mako
* Pyramid
* Scrapy
* TurboGears
* Twisted
* Web2py

Articles liés |

* Cython
* IPython
* Jupyter
* pip
* PyPI

* Python (langage)
* Bibliothèque logicielle

* Portail de la programmation informatique
* Portail des logiciels libres

*[$]: dollar
*[(en)]: Langue : anglais
*[p.]: pages
*[v]: Voir ce modèle.
*[m]: Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.