Comment utiliser Python Kivy ④ ~ Exécution sur Android ~

Résumé

Les articles créés jusqu'à présent sont les suivants.

Cette fois, j'expliquerai la sortie Android parmi la sortie mobile (iOS, Android), ce qui est un avantage lorsque Kivy se compare à la bibliothèque Qt. Dès la première conclusion, c'est subtil personnellement. C'est court sur la ceinture et long sur le tasuki, ou il est difficile de rester derrière.

Que créer

Exécutons le précédent Lien avec l'API Web (de l'envoi et de la réception de requêtes à l'affichage des résultats) sur un appareil Android.

Code à utiliser

Le contenu est presque le même que le code précédent. Nous présenterons les pièces modifiées le cas échéant.

Comment exécuter Kivy sur un appareil Android

Il existe trois méthodes, mais la méthode d'exécution diffère selon le but.

① Exécutez sur votre propre appareil Android (2) Créez un APK et distribuez-le sur Google Play, etc. afin qu'il puisse être utilisé par un nombre non spécifié de personnes. ③ Exécutez Python sur un terminal Android en utilisant python-for-android

Dans le cas de ①, il est réalisé en utilisant une application Android appelée Kivy Launcher. Cette fois, je vais vous expliquer en utilisant cette méthode.

Dans le cas de (2), installez un package appelé Buildozer sur Ubuntu. Dans le cas de Windows, VM est distribué, veuillez donc l'utiliser. Vous pouvez le télécharger à partir de la section Virtual Machine à https://kivy.org/#download.

En cas d'utilisation réelle, il est préférable de l'exécuter avec le post Create # 2 APK pour publier l'application Kivy sur Goole Play Store. Veuillez vous y référer.

Dans le cas de (3), la méthode est différente de (1) et (2), et la méthode consiste à exécuter réellement le script Python sur le terminal Android. Si vous recherchez avec Qpython, vous trouverez diverses choses.

Concernant le contenu de cette zone, [«Utilisation de Python avec Android» à partir de 2016](http://hhsprings.pinoko.jp/site-hhs/2016/08/2016%E5%B9%B4%E7%8F % BE% E5% 9C% A8% E3% 81% AE% E3% 80% 8Cpython-% E3% 82% 92-android-% E3% 81% A7% E4% BD% BF% E3% 81% 86% E3 Il est expliqué en détail dans l'article% 80% 8D /), veuillez donc le lire si vous êtes intéressé.

référence

À propos de l'environnement Python à exécuter

Bien qu'il s'agisse d'un environnement de vérification, Kivy sera 1.9.1. D'autre part, Python est ** Python 2.7 **. En regardant le site officiel de Kivy, on dit qu'Android est provisoirement compatible avec Python3, mais à partir de février 2017, il vaut mieux penser qu'il est pratiquement compatible avec la série Python2 et non compatible avec la série Python3. La raison sera décrite plus tard De plus, iOS est compatible avec Python 2.7 et il semble que la prise en charge du système Python 3 soit actuellement prise en charge.

À propos du terminal Android réellement utilisé pour la vérification

Les modèles que j'ai essayés sont les deux types suivants.

Android lui-même a des fonctions uniques pour chaque fabricant et modèle, il peut donc ne pas fonctionner selon le modèle et le système d'exploitation.

En fait, exécutez Kivy sur Android

Ce sera l'opération réelle.

À propos de Kivy Launcher

Kivy Launcher est une application distribuée sur Google Play et, en l'utilisant, Kivy sur Android Vous pouvez facilement utiliser les scripts Python qui utilisent. Ce qui suit est une utilisation simple.

De plus, en expliquant comment l'utiliser, nous expliquerons l'utilisation de "touch tracer" qui est un programme de démonstration distribué sur le site officiel de Kivy.

référence

Comment utiliser Kivy Lancher

Veuillez installer Kivy Lancher sur Android à partir du Play Store à l'avance

① Connectez votre appareil Android à votre PC via USB.

0.png

Sélectionnez le transfert de fichiers.

② Créez un dossier Kivy et placez les fichiers

PC.jpg

Créez un répertoire appelé "Kivy". Créez un dossier sous le répertoire et placez le programme.

Placez les fichiers suivants.

C'est android.txt, mais le contenu est le suivant

title=Touchtracer
author=Kivy team
orientation=landscape

Entrez le nom de l'application dans "titre" et le nom de l'auteur dans "auteur". "Orientation" indique s'il faut afficher l'orientation portrait ou paysage au démarrage. "Paysage" correspond à l'orientation paysage et "portrait" correspond à l'orientation portrait.

Référence: À propos du processus d'arrière-plan de Kivy Launcher

C'est un programme lancé avec Kivy Lanucher, mais il semble qu'il puisse être exécuté en arrière-plan. Si vous l'utilisez, vous pouvez également créer des applications d'alarme.

référence

③ Démarrez et exécutez l'application

Je vais en fait le déplacer.

1. 1. Exécutez Kivy Lancher

Exécutez Kivy Lancher sur votre appareil Android. 1.png

L'écran d'attente s'affiche. 3.png

2. Sélectionnez une application

Une liste d'applications sera affichée, alors sélectionnez une application. 2.png

3. 3. Écran de lancement de l'application

Après la sélection, l'écran d'attente s'affiche et, après un certain temps d'attente, l'application sélectionnée peut fonctionner sur le terminal.

4.png

Essayez d'exécuter l'application précédente

Exécutons en fait l'application précédente. J'essaye de le déplacer comme "Touch tracer", mais quand je le sélectionne dans Kivy Lancher et que j'essaye de le démarrer, cela ne fonctionne pas bien et l'application elle-même plante. J'ai essayé de collecter le journal dans .kivy de l'unité principale Android. Vous trouverez ci-dessous un extrait du contenu du journal.

[INFO              ] Kivy: v1.9.1
[INFO              ] Python: v2.7.2 (default, Mar 20 2016, 23:30:13) 

Il fonctionnait sur Python 2.7 ... Par conséquent, pour exécuter le programme que je créais la dernière fois, j'ai dû convertir Pytho3 en Python2. Plus précisément, les conversions suivantes ont été effectuées. Depuis que j'ai commencé Python à partir de la 3ème série, je n'ai pas fait la 2ème série.

Parmi ceux-ci, la dernière modification d'UrlRequest est expliquée.

Comment utiliser UrlRequest de Kivy

La partie corrigée dans la source est extraite ci-dessous.

main.py



from kivy.network.urlrequest import UrlRequest
import urllib

class AddSearchBookForm(BoxLayout):
    def search_book(self):
        set_title = urllib.quote((self.search_input.text).encode('utf-8'))
        req_url = "http://iss.ndl.go.jp/api/sru?operation=searchRetrieve&query=title%3d%22{0}%22%20AND%20from=%22{1}%22&maximumRecords={2}&mediatype=1".format(set_title, set_fromdate, set_maximum_records)

        res = UrlRequest(req_url, self.gotBooklists)
        
    def gotBooklists(self, req, results):
        result_records = result_parse(results)

Concernant UrlRequest, deux fonctionnalités sont associées à cette modification.

En regardant la référence API de UrlRequest, les spécifications sont les suivantes.

req = UrlRequest(url, on_success, on_redirect, on_failure, on_error,
                 on_progress, req_body, req_headers, chunk_size,
                 timeout, method, decode, debug, file_path, ca_file,
                 verify)

Tout d'abord, l'URL doit être une chaîne%, donc je l'ai convertie en chaîne% avec urllib et l'ai mise dans le premier argument. En outre, la demande de la valeur retournée au moment de l'exécution stocke le résultat de retour POSTed à partir de l'URL, mais en raison d'une communication asynchrone, le résultat n'est pas renvoyé par le serveur et la valeur n'entre pas immédiatement, donc le programme continue. Ce sera. Par conséquent, s'il est laissé tel qu'il était la dernière fois, il y a un problème que le traitement du résultat POST ne se passe pas bien. Il est nécessaire de définir le processus (méthode) lorsque le résultat POST du côté serveur est renvoyé dans le deuxième argument on_success, ou d'utiliser wait () pour la valeur de retour et d'attendre que le résultat de retour soit renvoyé. .. Cette fois, en utilisant l'ancienne méthode d'utilisation de on_success, gotBooklists () est défini sur on_sucess, et le processus d'analyse du résultat vers gotBooklists () et de mise en forme est exécuté.

référence

Résultat d'exécution

Le programme pouvait être exécuté sur Kivy Lancher lorsqu'il était exploité avec le support du système Pytho2.

1_40.jpg

En ce qui concerne l'entrée japonaise, IME ne s'est pas ouvert lors de la saisie pleine largeur sur le système d'exploitation Windows, mais IME s'ouvre lors de la saisie du japonais sur les terminaux Android et vous pouvez saisir confortablement.

ideapad.jpg

Référence: Comment exécuter une API spécifique à Android

Je ne vais pas l'utiliser cette fois, mais Kivy peut faire des API JAVA spécifiques à Android en utilisant Plyer et Pyjnius. En utilisant cela, vous pouvez démarrer l'appareil photo dans l'application pour prendre une photo ou envoyer un e-mail. La fonctionnalité standard dans les applications Android peut être obtenue à l'aide de Plyer ou Pyjnius.

Je vais donner l'article de la personne qui est effectivement utilisée au Japon et le lien du site officiel

Référence: Prise en charge d'iOS

Je n'ai pas essayé iOS, mais il est possible de développer des applications iOS. Le code est uniquement compatible avec la série Python 2, pas avec la série Pytho 3. Il semble que vous puissiez créer un projet pour Xcode à l'aide d'une fonction appelée toolchain et construire à partir de ce projet.

référence

En ce qui concerne l'API spécifique à iOS, il semble que cela puisse également être utilisé dans l'application en utilisant Pyobjus

référence

Au Japon, le professeur Haraguchi de l'Université de commerce d'Otaru crée une application Kivy et la met sur l'App Store. Le Dr Haraguchi est également l'un des principaux membres de la traduction du manuel officiel de Kivy (https://pyky.github.io/kivy-doc-ja/).

référence Laboratoire Haraguchi de l'Université de Commerce d'Otaru

Référence Pour utiliser une bibliothèque externe de Python

Pour utiliser des bibliothèques Python non standard telles que Matplotlib sur mobile, vous devez utiliser une fonctionnalité complémentaire appelée Kivy garden.

référence

Référence à propos des applications créées avec Kivy

Si vous regardez le Wiki sur le site officiel, vous trouverez une liste des projets d'application créés avec Kivy. Si vous regardez cela, vous pouvez voir quel type d'applications vous pouvez réellement créer.

référence

Résumé

J'ai pu exécuter une application qui s'affiche en coopération avec le côté serveur sur un appareil Android. En ce qui concerne les applications Android, s'il s'agit d'une application basée sur des images 2D, je pense qu'il est possible de développer la plupart des choses telles que les jeux sociaux basés sur des cartes et les applications de recherche.

Personnellement, il est délicat d'utiliser ou non Kivy lors de la création d'une application Android. Je pense que le courant dominant de la publication d'applications Android est de considérer également le développement de la version iOS. Dans ce cas, le développement avec le système Pytho2 est une condition préalable, mais il faut du temps pour gérer le japonais (caractères multi-octets). Puisqu'il n'y a pas de communauté au Japon, je pense qu'il serait préférable à ce stade de développer des multi-plateformes utilisant C # comme Xamarin et Unity, ou de développer avec Andori native. Je ne pense pas qu'il sera activement adopté, du moins en combinaison avec le nombre d'ingénieurs Python au Japon.

Je pense que l'histoire changera à nouveau si le support de Python 3 est officiellement publié sur iOS et qu'une simple application de prévisualisation comme Kivym Lancher est créée, mais à ce stade, elle sera évaluée comme celle-ci.

Sommaire général

J'ai expliqué comment utiliser Kivy quatre fois. L'animation est une fonctionnalité majeure dont je n'ai pas encore discuté, mais j'en profiterai pour y toucher. Si vous avez lu l'explication jusqu'à présent, vous pouvez développer une application générale ou vous pouvez commencer. Je pense aussi que Kivy a une vague idée de ce que les bibliothèques peuvent et ne peuvent pas faire.

Les avantages et inconvénients de Kivy sont les suivants.

avantage

Désavantage

Sur cette base, je vous serais reconnaissant si vous pouviez envisager d'utiliser ou non Kivy. De plus, comme les bogues sont open source, il sera amélioré en soulevant des problèmes et des demandes, en améliorant et en validant, donc je pense que cela dépend de l'utilisateur.

référence

Kivy interagit toujours activement sur github et je pense qu'il a du potentiel en tant qu'open source. J'espère que vous avez lu cet article et que vous souhaitez utiliser Kivy.

Recommended Posts

Comment utiliser Python Kivy ④ ~ Exécution sur Android ~
[Kivy] Comment installer Kivy sur Windows [Python]
Mémorandum sur l'utilisation du python gremlin
python3: Comment utiliser la bouteille (2)
[Python] Comment utiliser la liste 1
Comment utiliser Python Argparse
Python: comment utiliser pydub
[Python] Comment utiliser checkio
[Python] Comment utiliser input ()
Comment utiliser Python lambda
[Python] Comment utiliser virtualenv
python3: Comment utiliser la bouteille (3)
python3: Comment utiliser la bouteille
Comment utiliser les octets Python
Comment utiliser Python Kivy ① ~ Bases du langage Kv ~
Comment utiliser Django avec Google App Engine / Python
Comment profiter de Python sur Android !! Programmation en déplacement !!
Python: comment utiliser async avec
[Python] Comment utiliser la série Pandas
Comment utiliser les requêtes (bibliothèque Python)
Comment utiliser SQLite en Python
Remarques sur l'utilisation de pywinauto
Remarques sur l'utilisation des featuretools
Comment utiliser l'homebrew dans Debian
[Python] Comment utiliser la liste 3 Ajouté
Comment utiliser Mysql avec python
Comment utiliser l'API Python d'OpenPose
Comment utiliser ChemSpider en Python
Python: Comment utiliser pydub (lecture)
Comment utiliser PubChem avec Python
Comment utiliser la fonction zip de python
[Python] Comment utiliser l'API Typetalk
[Hyperledger Iroha] Remarques sur l'utilisation du SDK Python
[Python] Résumé de l'utilisation des pandas
[Introduction à Python] Comment utiliser la classe en Python?
Comment lire pydoc sur l'interpréteur python
Comment installer et utiliser pandas_datareader [Python]
Comment utiliser mecab, neologd-ipadic sur colab
[python] Comment utiliser __command__, explication des fonctions
[Python] Comment utiliser import sys sys.argv
Comment utiliser l'Assistant Google sur Windows 10
Comment effacer Python 2.x sur Mac.
[Python] Organisation de l'utilisation des instructions
[Python2.7] Résumé de l'utilisation d'unittest
python: Comment utiliser les locals () et globals ()
Comment utiliser __slots__ dans la classe Python
Installez python sur xserver pour utiliser pip
Comment utiliser "deque" pour les données Python
Comment utiliser le zip Python et énumérer
[Python] Comprendre comment utiliser les fonctions récursives
Résumé de l'utilisation de la liste Python
Comment utiliser les expressions régulières en Python
[Python2.7] Résumé de l'utilisation du sous-processus
Comment utiliser Map dans ViewPager d'Android
Comment utiliser is et == en Python
[Question] Comment utiliser plot_surface de python
Comment utiliser Python Kivy (référence) -J'ai traduit le langage Kivy de la référence API-
Pour utiliser python, mettez pyenv sur macOS avec PyCall