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.
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.
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.
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
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.
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.
Ce sera l'opération réelle.
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
Veuillez installer Kivy Lancher sur Android à partir du Play Store à l'avance
Sélectionnez le transfert de fichiers.
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.
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
Je vais en fait le déplacer.
Exécutez Kivy Lancher sur votre appareil Android.
L'écran d'attente s'affiche.
Une liste d'applications sera affichée, alors sélectionnez une 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.
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.
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
Le programme pouvait être exécuté sur Kivy Lancher lorsqu'il était exploité avec le support du système Pytho2.
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.
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
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
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
[Graphique dans l'environnement kivyLauncher (+ À propos du jardin kivy)](http://hhsprings.pinoko.jp/site-hhs/2016/08/kivylauncher-%E7%92%B0%E5%A2%83%E3%81 % A7% E3% 82% B0% E3% 83% A9% E3% 83% 95-kivy-jardin-% E3% 81% AB% E3% 81% A4% E3% 81% 84% E3% 81% A6 / )
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
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.
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