Tableaux Maths
Slogan du site

Des cours, des exercices et des vidéos réalisées par des élèves.
Outils numériques en classe et découverte de la programmation.

Python pour Android : Kivy (installation et exemples)

Installation et premiers exemples de jeux, de logiciels avec les apk correspondants.

Article mis en ligne le 1er septembre 2015
dernière modification le 10 mai 2019

Introduction

Le site : http://kivy.org/#home

Kivy permet de développer en Python des applications, des jeux, sur toutes plateformes (Win, Linux, Mac, iOS, Android...).

Si vous voulez créer votre application pour Android (création d’un fichier apk), il sera préférable d’utiliser Linux et d’installer Buildozer. (Voir plus loin dans cette page.)

De même, pour iOS, il faudra utiliser (pour packager l’application) un Mac etc...

Mais quoi qu’il arrive, vous applications pourront être développées sur tous les OS.

(Attention aux spécificités des chemins vers les fichiers et autres...)

Il faut penser à adapter ses applications pour tablettes et autres smartphones.

Voici un exemple et une façon d’utiliser Kivy sur Win7 (Peut-être plus à jour...) :

Installation sous W7, W8, W10

Pour télécharger Kivy. Vous trouverez la doc ici :
http://kivy.org/#download

Il existe des versions portables de Kivy (Python + Kivy) dans un dossier à extraire. Aujourd’hui (mai 2016) il faut installer Python avant d’installer Kivy. Voici les étapes d’après la doc en ligne :

Installer Python :

Si vous avez déjà Pyzo et Miniconda, vous pouvez passer cette étape.
Sinon, vous pouvez installer Pyzo et Miniconda ou une version nue de Python 3.6 : https://www.python.org/downloads/windows/

Installation de Kivy :

Dans un terminal si vous avez la version nue de Python (Tapez cmd dans la recherche d’applications Windows) ou dans le shell de Pyzo (en enlevant à chaque fois "python -m" des lignes de commandes suivantes ) :

  • Allez dans le dossier où se trouve votre installation Python (C :\Python3.6) :
  • Vous pouvez vérifier votre installation Python :
  • Installez pip et Wheel :
  • Installez des dépendences :

(Gstreamer est assez lourd donc ne l’installez que si vous en avec besoin (cf doc kivy))

Pour python 3.5 seulement, vous aurez besoin d’une librairie complémentaire :

  • Installez Kivy :

Vous devez maintenant avoir Kivy. Pour tester :

  • Ouvrez un éditeur (Notepad, Pyzo...)
  • Copier/coller le code suivant :
  • Enregistrez sous main.py
  • Clique droit sur le fichier, "Ouvrir avec", "Python Launcher" :
Screenshot Windows Kivy
  • Votre première application devrait se lancer :
Hello World Kivy

Si vous souhaitez packager vos applications pour Windows et WindowsPhones, je vous laisse lire la doc :

http://kivy.org/docs/guide/packaging-windows.html

Installation sous Linux Ubuntu14.04 et Mint17

Kivy existe dans les dépots. Il s’agit de la version 1.7. (Actuellement, la version 1.9 est sortie.)

Kivy pour python 2.7 : (Peut-être aussi 3.4 mais je n’ai pas testé...)

Dans un terminal tapez :

C’est la version que nous utiliserons au collège.

Si vous voulez une version plus récente :

Dans un terminal :

Pour exécuter un programme, allez dans le dossier où se trouve votre programme nom_du_fichier.py puis, tapez :

Kivy sur Android

Deux méthodes :

Vous pourrez alors transférer vos fichiers ".py" sur votre appareil et les lancer. Cette méthode peut servir à tester rapidement des programmes simples sur Android. L’ouverture de certains droits spécifiques sera impossible.

  • Créer une application pour Android (apk) :
    Installer buildozer ou bien télécharger une iso Linux toute prête puis l’installer avec une VirtualBox :

La doc sur l’image Linux pour Kivy : http://kivy.org/docs/guide/packaging-android-vm.html#kivy-android-vm

Installation de buildozer :

Attention ! Les dernières versions du SDK Android ne sont plus supportées par Linux 32 bits.
Lors de la première création d’un apk, buildozer va télécharger la dernière version du SDK. Vous aurez un message d’erreur. Il faudra alors downgrader votre SDK. Une méthode ici : http://stackoverflow.com/questions/9555337/how-to-downgrade-my-sdk-version. un lien vers le SDK dans cette discussion : http://stackoverflow.com/questions/34216342/android-studio-adb-syntax-error-unexpected.

Pour l’installation :

Vous avez de bonnes explications ici : http://wiki.labomedia.org/index.php

En gros :

Dans un terminal :

Il se peut qu’il vous manque des paquets. Vérifiez :

Utilisation :

Il faut que vos dossiers contenant les programmes main.py soient dans votre répertoire personnel.

Ouvrez un terminal et allez dans votre dossier où se trouve votre fichier main.py.

Tapez :

Ouvrez avec un éditeur le fichier buildozer.spec :

Modifiez le nom, le titre de votre application.

Modifiez la version (Ajoutez un # devant les deux lignes de version en méthode 1 et enlever le # de la version en méthode 2... C’est plus simple ainsi...).

Voici un exemple :
Avant :

# (str) Application versioning (method 1)
version.regex = __version__ = [’"](.*)[’"]
version.filename = %(source.dir)s/main.py
# (str) Application versioning (method 2)
# version = 1.2.0

Après :

# (str) Application versioning (method 1)
#version.regex = __version__ = [’"](.*)[’"]
#version.filename = %(source.dir)s/main.py
# (str) Application versioning (method 2)
version = 1.2.0

Plus bas dans ce fichier, vous avez un "log_level = 1". Passez-le à 2 si vous voulez plus de détails sur les éventuelles erreurs.

Enregistrez ensuite votre fichier.

Pour compiler :

Si tout se passe bien, vous aurez un dossier bin dans le dossier de votre application contenant un fichier "....apk"

Transférez ce fichier sur votre tablette puis installez-le. Il faut autoriser les sources inconnues.

Il y a des apk dans cet article un peu plus loin (Utilisez les boutons en haut de la page pour slider..)

Une erreur courante :

https://github.com/kivy/buildozer/issues/146#issuecomment-57061269

(Vérifiez qu’il s’agit bien de la même erreur en poussant le Log_Level à 2 dans le fichier buildozer.spec)

Il arrive aussi qu’il faille désinstaller et réinstaller buildozer. Voir dans cette article :

http://wiki.labomedia.org/index.php

Vous avez des exemples de codes pour Kivy (sans kv) ici :

http://tableauxmaths.fr/spip/spip.php?article135&artpage=2-4#outil_sommaire_4

++++

Premières applications

Le retour du chat

Voici une application qui vous rappellera des souvenirs.

Le résultat de cette application
  • Vous devez d’abord télécharger l’image et le son sur votre ordinateur :
Le chat
Le son du chat
  • Rnommez ces fichiers : kitty.png et meow.ogg.
  • Copiez le code suivant et enregistrez-le dans un fichier (par exemple chat.py).
  • Déplacez l’image et le son dans le même dossier que votre programme (c’est plus simple ainsi).

Lors du premier lancement du programme avec Kivy, un temps sera nécessaire aux chargements du son et de l’image.

Voici le code :

A toi de jouer :

  1. Essaye de modifier le texte du Label lorsque l’utilisateur clique sur le chat.
  2. Ajoutez d’autres boutons et d’autres labels pour observer la disposition de l’affichage : BoxLayout
  3. Modifie ce code avec d’autres images, d’autres sons, d’autres boutons....

Calcul mental

Voici une application de calcul mental à compléter :

Le code :

A toi de jouer :

  1. Etudiez ce code et ajoutez des commentaires.
  2. Ajoutez les autres boutons pour les chiffres.
  3. Ajoutez un popup en cas d’échec. (On pourra montrer la bonne réponse.)
  4. Effacez le texte de champreponse après une tentative.
  5. Utilisez les nombres aléatoires pour le calcul et modifier le test de la réponse en fonction.
  6. Créez une variable score et ajoutez un label pour l’afficher.
  7. Changez le calcul après chaque tentative.

Voici le fichier apk correspondant. Bien sur, l’application n’est pas complète... à vous de travailler.

Pour l’installer sur votre téléphone android, il faut autoriser les sources inconnues.

Ce fichier est un zip, il faut l’extraire avant de le coller dans votre téléphone.

Ici, vous trouverez l’application de BenjaminD :

++++

Un jeu du Pong

Déplacer des objets :

Voici un exemple permettant de programmer des déplacements.

  • La raquette se déplace en touchant l’écran
  • Les balles se déplacent seules.

Lisez bien les commentaires pour comprendre.

A vous de continuer :

  • Faites rebondir les balles en haut
  • Proposez des trajectoires obliques pour les balles et faites les rebondir aussi sur les côtés (Utilisez dx pour le déplacement horizontal)
  • Faites rebondir les balles sur la raquette (Tous les widgets ont une méthode collide_widget(....))

Voici le fichier apk correspondant. Bien sur, l’application n’est pas complète... à vous de travailler.

Pour l’installer sur votre téléphone android, il faut autoriser les sources inconnues.

Ce fichier est un zip, il faut l’extraire avant de le coller dans votre téléphone.

++++

Jeu du serpent (Snake)

Voici le fichier apk correspondant. Bien sur, l’application n’est pas complète... à vous de travailler.

Pour l’installer sur votre téléphone android, il faut autoriser les sources inconnues.

Ce fichier est un zip, il faut l’extraire avant de le coller dans votre téléphone.