Développement d'applications IOS avec Python (kivy) que même les singes peuvent faire

introduction

Python est actif dans les domaines de l'apprentissage automatique et de la science des données, mais son interface graphique est également excellente, et le kivy utilisé cette fois-ci peut être construit pour créer des applications qui fonctionnent sur le bureau, Android et iOS.

Cette fois, je vais donner une brève explication pour ceux qui n'ont jamais fait de demande mais qui connaissent Python dans une certaine mesure. Aussi comme mémorandum pour moi-même. ..

Qu'est-ce que kivy

L'une des bibliothèques Python qui facilite la création d'interfaces graphiques (interfaces utilisateur graphiques: pas d'écrans de console noirs).

Référence japonaise existe également, et c'est une bibliothèque qui est encore en développement.

Quant à la façon de l'utiliser, de nombreuses autres personnes ont écrit des articles faciles à comprendre et polis, je vais donc l'omettre ici. Cette fois, nous partirons du principe qu'il s'agira d'une application.

Les choses nécessaires

kivy-ios Je vais le cloner depuis la page GitHub.

__ Prise en charge d'iOS 13 __ À partir d'iOS 13, il semble y avoir un grand changement dans le langage Objective-C, et pendant un certain temps, ce kivy-ios a cessé de fonctionner. Depuis le 28 décembre 2019, la demande d'extraction de la pièce corrigée a été fusionnée et est prête à être utilisée.

Objective-C iOS 13.0 breaking changes #53

Commencer la construction

Commencez immédiatement à créer l'application. kivy-ios Tout d'abord, installez les packages dépendants pour exécuter kivy-ios.

xcode-select --install
brew install autoconf automake libtool pkg-config
brew link libtool
pip3 install cython==0.28.1

Dans le répertoire cloné

pip3 install -r requirements.txt

Éxécuter. Vous êtes maintenant prêt à utiliser kivy-ios.

Après cela, nous intégrerons le programme python dans l'application, nous devons donc créer python lui-même pour l'application. La commande est:

python3 toolchain.py build python3 kivy

Ce processus a pris environ une heure dans mon environnement (Mac book Pro 2016). Transpiration

Créer une application

Cette fois, c'est un tutoriel, alors faisons un chronomètre. En ce qui concerne le contenu, créez un bouton et affichez la différence entre l'heure à laquelle le bouton est enfoncé pour la première fois datetime.datetime.now () et l'heure à laquelle le bouton est enfoncé pour la deuxième fois.

main.py


from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import StringProperty
from datetime import datetime


class MainWindow(Widget):
    button_text = StringProperty("Push Button!!")
    timer_text = StringProperty("START")

    def __init__(self, **kwargs):
        super(MainWindow, self).__init__(**kwargs)
        self.timer_check = False
        self.timer_before = 0
    
    def push_button(self):
        if not self.timer_check:
            self.timer_before = datetime.now()
            self.timer_check = True
            self.button_text = "STOP"
            self.timer_text = "Running..."
        else:
            self.timer_check = False
            self.button_text = "START"
            self.timer_text = str(datetime.now() - self.timer_before)


class StopWatchApp(App):
    def __init__(self, **kwargs):
        super(StopWatchApp, self).__init__(**kwargs)

    def build(self):
        return MainWindow()


if __name__ == '__main__':
    StopWatchApp().run()

stopwatch.kv


MainWindow:

<MainWindow>:
    BoxLayout:
        orientation: "vertical"
        size: root.size
        Label:
            text: root.timer_text
        Button:
            text: root.button_text
            on_press: root.push_button()

スクリーンショット 2019-12-28 14.03.35.png スクリーンショット 2019-12-28 14.03.58.png

Cela a l'air vraiment bon marché, mais j'ai pu le faire. À ce stade, enregistrez le script Python sous main.py. Placez le fichier py et le fichier kv créés dans un répertoire approprié. (Cette fois, je l'ai sauvegardé dans un répertoire appelé «chronomètre».)

Création de profil Apple

Si vous êtes inscrit au programme Apple Developer Program, ce n'est pas un problème, mais vous devrez payer des frais annuels pour publier réellement votre application dans le magasin. Cependant, vous ne pouvez construire la machine que gratuitement, veuillez donc vous référer à l'article suivant pour le réglage.

[Xcode] Combien pouvez-vous faire avec une version de machine réelle gratuite

__ Construction de machine réelle gratuite __ Le profil est valide pendant __7 jours __. Après cela, vous ne pourrez plus démarrer à partir de l'iPhone, vous devez donc à nouveau transférer sur l'appareil réel.

Création de projet XCode

Tapez la commande selon la syntaxe de commande suivante.

python3 toolchain.py create <title> <app_directory>

Cette fois, j'ai mis un répertoire appelé stopwatch dans le répertoire où kivy-ios-master est situé, donc

python3 kivy-ios-master/toolchain.py create StopWatch ./stopwatch

Ce sera. Ensuite, un répertoire appelé stopwatch-ios sera créé dans le même répertoire, alors ouvrez le projet XCode stopwatch.xcodeproj à l'intérieur.

スクリーンショット 2019-12-28 14.13.23.png

Sélectionnez le profil d'approvisionnement que vous avez défini précédemment dans les paramètres du projet, sélectionnez l'iPhone connecté dans l'écran de sélection du terminal en haut à gauche et appuyez sur le bouton triangle pour créer. À ce stade, si vous avez un mot de passe sur votre iPhone, vous devez l'annuler et le laisser sur l'écran d'accueil.

De plus, la première version démarre automatiquement, mais elle ne démarre pas car le profil n'est pas officiel. Vous devez vous authentifier à partir des Paramètres> Général> Administrateur de périphériques de l'iPhone.

Il semble que la construction ait réussi. Je suis heureux.

ファイル名 ファイル名

Je suis désolé que la qualité d'image soit si mauvaise que je suis mort parce que je l'ai prise avec une caméra Web.

finalement

Je n'ai jamais pensé que ce serait si facile de créer une application. Quel genre de structure de tête a une personne qui crée une telle bibliothèque? Lol

Je veux refaire diverses choses.

Recommended Posts

Développement d'applications IOS avec Python (kivy) que même les singes peuvent faire
[Mac OS] Utilisez Kivy avec PyCharm! [Développement d'applications Python]
Introduction à Python que même les singes peuvent comprendre (partie 3)
Introduction à Python que même les singes peuvent comprendre (partie 1)
Calcul du classement Python-Page et visualisation des graphes sociaux que même les singes peuvent faire
Introduction à Python que même les singes peuvent comprendre (partie 2)
Développement d'applications avec Docker + Python + Flask
Python | Ce que vous pouvez faire avec Python
Application Othello (application iOS) réalisée avec Python (Kivy)
Fonctionnement automatique du navigateur que même les débutants peuvent faire
Notes sur les connaissances Python utilisables avec AtCoder
Créer un environnement de développement d'applications d'apprentissage automatique avec Python
Faites Houdini avec Python3! !! !!
Articles permettant le développement de systèmes avec Django (Python) _Introduction
"Première fois Kikaigakushu" que même les étudiants universitaires sans connaissances peuvent faire --AWS SageMaker
Ce que vous pouvez faire avec les statistiques de la bibliothèque Python standard
Faites Django avec CodeStar (Python3.6.8, Django2.2.9)
Développement Python + Kivy sous Windows
Développement d'applications Web avec Flask
Application Web avec Python + Flask ② ③
Application Web avec Python + Flask ④
[Python] Créez un graphique qui peut être déplacé avec Plotly
8 services que même les débutants peuvent apprendre Python (des débutants aux utilisateurs avancés)
Considérez ce que vous pouvez faire avec Python dans l'article Qiita
J'ai fait un shuffle qui peut être réinitialisé (inversé) avec Python
Surveillez les performances des applications Python avec Dynatrace ♪
Pour faire une récursion avec Python2
Développement de jeux Othello avec Python
Que faire avec la sortie de PYTHON?
Configurer un environnement de développement Python avec Atom
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
Résumé de base du scraping avec des requêtes que les débutants peuvent absolument comprendre [Python]
Optimisation mathématique pour un travail gratuit avec Python + PuLP
Vous pouvez le faire avec Python! Analyse structurale de cristaux colloïdaux bidimensionnels
J'ai fait un module PyNanaco qui peut charger des crédits nanaco avec python