• [^] # Re: Quelles alternatives ?

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Kivy : un cadriciel graphique unique en Python. Évalué à 3. Dernière modification le 06 juin 2025 à 17:35.

    Pour l'instant pour les téléphones, je n'ai rien trouvé qui coche tout. En dehors de Kivy, BeeWare a l'air intéressant et utilise des composant natifs, ce qui règle le problème de l'accessibilité. Ça me semble OK quand on part sur un nouveau projet, mais le port de Libervia ne serait sans doute pas faisable (je ne crois pas que les dépendances qui ne sont pas pure python sont utilisables, il me semble que seul python-for-android permet de les utiliser).

    PyQt semble pouvoir tourner sur plateformes mobiles avec PyQtDeploy, mais je n'ai pas creusé plus que ça pour le moment. PySide avait une solution avec un fork de Python-for-Android mais ça ne semble plus maintenu.

    Il y a Flet qui permet d'utiliser Flutter avec Python, mais je pense qu'il faudrait avoir un serveur distant (ce que je pourrais faire avec le serveur HTTP de mon frontend web). On ne serait plus sur du natif, et ça bloquerait les fonctionnalités.

    Bref, pour le moment je me concentre sur le frontend web, et je vais faire du PWA pour avoir une solution viable sur plateformes mobiles rapidement. Mais ça n'est pas suffisant pour du long terme, surtout sur iOS : même si les notifications push sont désormais possibles, d'après ce que j'ai compris c'est impossible de faire une gestion correcte des appels entrant.

    Il y a des solution intermédiaires, type Tauri avec le frontend web, ou une webview avec Python-For-Android (et faire tourner le backend sur l'appareil), mais c'est probablement trop fragile, et on va retrouver certains problèmes actuels, comme le temps de chargement.

    Sur du (très) long terme, j'envisage très sérieusement de porter de grosses parties du backend en Rust, ce qui permettrait de compiler nativement pour Android et iOS (et WebAssembly). Pour l'UI, une solution type Flutter ou Kotlin Multi Plateform (KMP) sont dans mon radar.