
Créer une application Android avec Flet
Voici un petit tutoriel pour faire une application Python qui pourra être utilisée sur toutes les plateformes (Windows, MacOS, Linux, Android, iOS).
Dans ce tutoriel, nous allons utiliser Python et la librairie Flet
qui permet de créer une application avec Flutter, puis qui permettra de créer un exécutable ou un APK pour Android.
Prérequis
- Python 3.11+
Création du projet
- Dans le répertoire de notre projet, nous commençons par créer un environnement virtuel :
python -m venv venv
venv\Scripts\activate.bat
- On installe les dépendances dont nous aurons besoin :
python -m pip install --upgrade pip
python -m pip install flet
- On crée un nouveau projet :
flet create tuto
cd tuto
Cela a automatiquement créé un répertoire tuto
dans lequel on retrouve :
assets
: un répertoire avec la liste des dépendances.main.py
: le programme principal qui sera exécuté.readme.md
: un fichier de description.requirements.txt
: le fichier des dépendances.
Pour l’instant, le programme est très simple :
import flet as ft
def main(page: ft.Page):
page.add(ft.SafeArea(ft.Text("Hello, Flet!")))
ft.app(main)
Exécuter le programme sous Windows
- Pour exécuter le programme sous Windows, on exécute la commande suivante :
flet run

Exécuter le programme sous forme d’application web
- Flet permet d’avoir un rendu web de notre application :
flet run --web

Tester l’application sous Android
- Pour cela, il faut tout d’abord installer sur son appareil Android l’application
Flet
, disponible sur le Play Store.
- On créé une instance distante avec la commande :
flet run --android

Sur son appareil Android, on utilise un lecteur de QR Code qui va ouvrir l’application Flet
.
Créer un APK
Flet
permet de créer un fichier de publication depuis une plateforme vers une plateforme selon la matrice suivante :

Depuis un ordinateur Windows, on peut créer un APK/AAB pour Android, un binaire Linux (en passant par WSL), un exécutable Windows ou une application web.
Prérequis
- Le SDK Flutter doit être accessible dans le
PATH
: https://docs.flutter.dev/get-started/install- Télécharger et copier les fichiers dans un répertoire sans espace et ne nécessitant aucun privilège : https://docs.flutter.dev/get-started/install/windows/mobile?tab=download#download-then-install-flutter
- Ajouter ce chemin dans la variable d’environnement
PATH
.
- Si on ne souhaite pas s’embêter avec les versions de Java, Android SDK, etc… le plus simple est d’installer Android Studio.
Sinon, on peut installer les composants utiles uniquement :
JAVA_HOME
doit contenir le chemin vers Java 17. Pour l’instant, Java 21 n’est pas supporté par la version de Gradle qui sera utilisée à la compilation.- Android Toolchain :
- Android Command Line Tools : pour ne pas installer toute la suite « Android Studio », on peut se contenter d’installer les outils en ligne de commande : https://developer.android.com/studio#command-tools
- Télécharger l’archive et décompresser.
- Dans le répertoire
cmdline-tools
, créer un répertoirelatest
. - Déplacer tous les fichiers et répertoires qui étaient dans
cmdline-tools
pour les mettre danscmdline-tools\latest\
. - Dans le répertoire
cmdline-tools\latest\bin\
, exécutersdkmanager --install "cmdline-tools;latest"
et accepter les conditions d’utilisation.
- Android SDK :
- On peut voir la liste des SDK disponibles avec la commande
sdkmanager --list
. - On installe le SDK qu’on souhaite.
Exemple pour la version 34 :sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0"
- On peut voir la liste des SDK disponibles avec la commande
- Licences Android acceptées :
- On accepte toutes les licences avec
sdkmanager --licenses
.
- On accepte toutes les licences avec
- Android Command Line Tools : pour ne pas installer toute la suite « Android Studio », on peut se contenter d’installer les outils en ligne de commande : https://developer.android.com/studio#command-tools
Pour vérifier que toute la configuration est bonne, on peut utiliser la commande :
flutter doctor --verbose
Compilation
flet build apk
Et voilà ! Nous avons un fichier APK installable sur Android.
Pour aller plus loin
Flet
propose plein de composant pour faire des application hyper personnalisées.
Pour plus d’informations, la documentation est plutôt bien faite : https://flet.dev/docs/controls
Quelques difficultés rencontrées
Utiliser un webview
Attention, certains composants nécessitent d’être spécifiquement ajoutés lors de la compilation (audio, video, webview, …). Pour cela on utilisera l’option --include-packages
.
Exemple :
flet build apk --include-packages flet_webview
Si le webview a pour objectif d’afficher des pages servies en local, il est impératif que le serveur local soit en HTTPS, sinon le webview retournera une erreur err_cleartext_not_permitted
.
Pour cela, on peut se créer un certificat avec la commande suivante :
openssl req -x509 -nodes -days 36500 -newkey rsa:2048 -keyout key.pem -out cert.pem
Attention à bien préciser 127.0.0.1
en tant que Common Name (e.g. server FQDN or YOUR name)
!
Le certificat devra être utilisé par le serveur.
Par exemple :
def get_ssl_context(certfile, keyfile):
context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
context.load_cert_chain(certfile, keyfile)
return context
def start_server():
with ThreadedTCPServer(("localhost", PORT), http.server.SimpleHTTPRequestHandler) as httpd:
context = get_ssl_context("cert.pem", "key.pem")
httpd.socket = context.wrap_socket(httpd.socket, server_side=True)
httpd.serve_forever()
Quelques commandes utiles pour faire un émulateur Android
Mettre à jour les outils du SDK
sdkmanager --update
Liste des images disponibles
sdkmanager --list
Liste des périphériques disponibles
avdmanager list device
Installer une image système Android 10 (API 29)
sdkmanager "system-images;android-29;google_apis;x86"
Créer un AVD nommé « my_avd » avec le périphérique « pixel »
avdmanager create avd -n my_avd -k "system-images;android-29;google_apis;x86" -d "pixel"
Lister les AVD disponibles (optionnel)
avdmanager list avd
Démarrer l’AVD « my_avd »
emulator -avd my_avd
Vérifier que l’émulateur est disponible
adb devices
Installer un APK
adb install path/to/your/app.apk
Lancer l’application
adb shell am start -n com.example.yourapp/.MainActivity
Voir les message de débogage
adb logcat
adb logcat | grep com.example.yourapp
Article rédigé par Yajusta.
Yajusta : Optimisez votre productivité avec des solutions sur-mesure.
💡 Vous avez une idée pour simplifier vos processus ?
⚙️ « Il y a juste à » la mettre en place ?
🚫 Mais vous n’avez pas les compétences techniques pour le faire ?
✅ Chez Yajusta, nous transformons vos défis en solutions concrètes.
https://www.yajusta.fr