Aller au contenu

Kivy

Un article de Wikipédia, l'encyclopédie libre.
Kivy
Description de l'image Kivy-logo-black-80.png.

Informations
Développé par Kivy organization
Dernière version 2.3.1 ()[1]Voir et modifier les données sur Wikidata
Dépôt github.com/kivy/kivyVoir et modifier les données sur Wikidata
État du projet Active
Écrit en Python, Cython
Système d'exploitation Multiplateforme (d)Voir et modifier les données sur Wikidata
Environnement Cross-platform
Formats lus Kv design language (d)Voir et modifier les données sur Wikidata
Formats écrits Kv design language (d)Voir et modifier les données sur Wikidata
Type Bibliothèque logicielle API
Licence MIT (Free software)
Site web kivy.org

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.

Description

[modifier | modifier le code]

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

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.

Kivy est le successeur de PyMT[3].

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()

Le langage Kv 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.

Documentation

[modifier | modifier le code]

Outre le manuel utilisateur[4] disponible sur le site web, quelques livres sont disponibles sur le sujet[5],[6] (en anglais).

Utilisation des applications pour smartphone créées avec Kivy

[modifier | modifier le code]

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[7]
  • 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[8] sur Android.

Projets liés

[modifier | modifier le code]

L'équipe développant le framework développe aussi en parallèle d'autres projets, plus ou moins liés : Python-for-Android[9], Kivy iOS, ainsi que plusieurs autres bibliothèques destinées à être utilisables sur Android, iOS, GNU/Linux, OS X et Windows. 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).

Google Summer of Code

[modifier | modifier le code]

Kivy participe au Google Summer of Code par le biais de la Python Software Foundation[10] en 2014[11], 2015[12], 2016[13] et 2017[14],[15].

Références

[modifier | modifier le code]
  1. « Release 2.3.1 », (consulté le )
  2. (en) « Programming Guide » Kv language », sur kivy.org (consulté le ).
  3. (en) « how-is-kivy-related-to-pymt » (consulté le ).
  4. (en) « Documentation Kivy ».
  5. (en) Dusty Phillips, Creating Apps in Kivy, États-Unis, O'Reilly, , 188 p. (ISBN 978-1-4919-4667-1)
  6. (en) Roberto Ulloa Rodriguez, Kivy: Interactive Applications in Python, Angleterre, Packt Publishing, , 138 p. (ISBN 978-1783281596)
  7. (en) « buildozer package ».
  8. (en) « Kivy Launcher »(Archive.orgWikiwixArchive.isGoogleQue faire ?).
  9. (en) « Kivy/python-for-android », sur GitHub (consulté le ).
  10. (en) « Python Summer of Code » (consulté le ).
  11. (en) « Kivy in GSoC'2014 ».
  12. (en) « Kivy in GSoC'2015 ».
  13. (en) « Google Summer of Code 2016 @ the Python Software Foundation », sur https://wiki.python.org (consulté le ).
  14. (en) « Python Summer of Code » (consulté le ).
  15. (en) « Google Summer of Code - 2017 » (consulté le ).

Liens externes

[modifier | modifier le code]