MANUEL COMPLET POUR MAITRISER KIVY.
PY SUR VSCODE
(20 Pages Approfondies)
Page 1 – Introduction
Kivy est un framework Python open-source permettant de développer des
applications multi-plateformes (Android, iOS, Windows, Linux, macOS). Il est
particulièrement adapté à la création d’interfaces utilisateurs riches, tactiles,
dynamiques et modernes.
Pourquoi choisir Kivy ?
Multi-plateforme avec un seul code source
Interfaces modernes et tactiles
Compatible avec Python 3
Support de la gestuelle multitouch
Idéal pour les applications mobiles, desktop, IoT, et interfaces
embarquées
Ce que vous apprendrez dans ce manuel :
Installer et configurer votre environnement (VSCode)
Créer des applications avec interface graphique
Utiliser tous les widgets disponibles
Gérer la navigation, les événements, les bases de données
Sécuriser et publier votre application
Page 2 – Installation et Configuration
Étape 1 : Installer Python
Télécharger : [Link]
Vérifier l’installation :
python --version
pip --version
Étape 2 : Installer Visual Studio Code (VSCode)
Télécharger : [Link]
Extensions recommandées :
o Python
o Pylance
o AutoDocstring
o GitLens
Étape 3 : Créer un environnement virtuel
python -m venv kivyenv
kivyenv\Scripts\activate # Windows
source kivyenv/bin/activate # Linux/macOS
Étape 4 : Installer Kivy
pip install kivy[base] kivy_examples
Page 3 – Première Application Kivy
[Link]
from [Link] import App
from [Link] import Label
class MyApp(App):
def build(self):
return Label(text='Bonjour Kivy!')
MyApp().run()
Exécuter dans VSCode :
Ouvrir un terminal intégré
Lancer : python [Link]
Page 4 – Introduction aux Widgets
Liste des principaux widgets :
Label: afficher du texte
Button: créer un bouton
TextInput: champ de saisie
CheckBox, Switch, ToggleButton: options
Image, Slider, ProgressBar
Exemple avec ``** :**
from [Link] import Button
class MyApp(App):
def build(self):
return Button(text="Cliquez ici")
Page 5 – Layouts
Les Layouts permettent d’organiser les widgets :
Layout Description
BoxLayout Aligne
horizontalement/verticalement
GridLayout Tableau avec lignes/colonnes
FloatLayout Position absolue
AnchorLayout Position relative aux
coins/centre
Exemple BoxLayout
from [Link] import BoxLayout
class MyApp(App):
def build(self):
layout = BoxLayout(orientation='vertical')
layout.add_widget(Label(text='Ligne 1'))
layout.add_widget(Button(text='Clique-moi'))
return layout
Page 6 – Interaction avec les Événements
Réagir à un clic :
def bouton_appuye(instance):
print("Le bouton a été pressé")
btn = Button(text="Appuyez ici")
[Link](on_press=bouton_appuye)
Événements utiles :
on_press, on_release
on_text_validate (TextInput)
on_touch_down, on_touch_move, on_touch_up
Page 7 – Langage Kivy (.kv)
Séparer l’interface du code logique :
[Link]
from [Link] import App
from [Link] import BoxLayout
class MonWidget(BoxLayout):
pass
class MyApp(App):
def build(self):
return MonWidget()
MyApp().run()
[Link]
<MonWidget>:
orientation: 'vertical'
Label:
text: 'Bienvenue!'
Button:
text: 'Continuer'
Page 8 – Navigation avec ScreenManager
Gérer plusieurs pages avec ScreenManager.
ScreenManager:
MenuScreen:
ProfileScreen:
<MenuScreen>:
name: 'menu'
Button:
text: 'Aller au profil'
on_press: [Link] = 'profil'
<ProfileScreen>:
name: 'profil'
Label:
text: 'Bienvenue sur le profil'
Page 9 – Formulaires complets
Formulaire avec saisie et validation :
.kv
BoxLayout:
orientation: 'vertical'
TextInput:
id: nom
hint_text: "Votre nom"
Button:
text: "Envoyer"
on_press: [Link]([Link])
.py
class MyApp(App):
def valider(self, nom):
print(f"Nom saisi: {nom}")
Page 10 – Connexion avec SQLite
Créer une base de données :
import sqlite3
conn = [Link]("[Link]")
c = [Link]()
[Link]("CREATE TABLE IF NOT EXISTS user (nom TEXT, age INTEGER)")
[Link]()
Page 11 – Intégration Firebase
Créer un projet Firebase
Télécharger la clé JSON admin
pip install firebase-admin
Code Firebase :
import firebase_admin
from firebase_admin import credentials, firestore
cred = [Link]("chemin/[Link]")
firebase_admin.initialize_app(cred)
db = [Link]()
Page 12 – Sécurité de l’application
Élément Mesure
Mots de passe Hasher avec bcrypt
Authentification Email/MDP ou OTP
Données sensibles Jamais en dur, utiliser .env
Élément Mesure
Communication Toujours en HTTPS
Page 13 – Interface utilisateur moderne (KivyMD)
pip install kivymd
Exemple KivyMD :
from [Link] import MDApp
from [Link] import MDRaisedButton
class Demo(MDApp):
def build(self):
return MDRaisedButton(text='Bonjour')
Page 14 – Tests et débogage
Utiliser print() pour déboguer
Ajouter logging
Tester avec unittest ou pytest
unittest :
import unittest
class TestApp([Link]):
def test_addition(self):
[Link](2 + 2, 4)
Page 15 – Compilation Desktop avec PyInstaller
pip install pyinstaller
pyinstaller --onefile [Link]
Fichier .exe généré dans /dist
Page 16 – Compilation Android avec Buildozer
Installer sur Linux/WSL :
pip install buildozer
sudo apt install -y build-essential git python3 python3-pip zip unzip
openjdk-17-jdk
Initialiser :
buildozer init
Compiler :
buildozer -v android debug
Page 17 – Signature APK pour Play Store
Créer une clé :
keytool -genkey -v -keystore [Link] -alias my-key-
alias -keyalg RSA -keysize 2048 -validity 10000
Signer :
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-
[Link] [Link] my-key-alias
Page 18 – Publier sur le Play Store
Créer un compte développeur (25$)
Uploader l’application signée (format .aab recommandé)
Ajouter captures, description, icône
Respecter politiques Google (confidentialité, permissions, etc.)
Page 19 – RGPD et légalité
Demander consentement utilisateur (cookies, données personnelles)
Fournir une politique de confidentialité
Éviter de stocker des données sensibles inutilement
Page 20 – Ressources et Projets conseillés
Sites :
[Link]
[Link]
[Link]
Projets :
To-do list mobile
Application de réservation
Tableau de bord interactif
Mini-jeux éducatifs
Conseil final : Commence petit, pratique souvent, et structure ton code dès
le début. Kivy est puissant mais demande rigueur et méthode.
FIN DU MANUEL