コピー&ペーストだけで簡単なPythonアプリを作成する方法【kivy】

プログラミング
スポンサーリンク

スポンサーリンク

はじめに

今回はPythonを用いてコピー&ペーストだけで簡単なアプリケーションを作成する方法についての記事です。

プログラミングを始めたばかりでコードを書いてアプリを作成できない、、。

という方向けにコードをコピペするだけでアプリケーションを作れてしまうという方法を紹介しました。

Pythonとは人工知能、機械学習、ディープラーニング、データ解析などに特化しており、2020年プログラミング言語人気ランキング1位になっているプログラミング言語です。

Pythonについて詳しく知りたい方はこちらのウェブサイトをどうぞ。

Kivyとは?

今回アプリを作成するのに用いるオープンソースソフトウェアはKivyです。

Kivyは、PythonのNUI(Natural User Interface)でのマルチタッチアプリケーション開発のためのオープンソースライブラリである。動作環境はAndroidiOSLinux、MacOS X、Windowsである。MITライセンスで配布されているフリーのオープンソースソフトウェアである。

フリー百科辞典wikipediaより

Kivyのインストール

Kivyのインストールにはこちらのウェブサイトからお使いの環境に合わせてインストールしてください。

User’s GuideからInstallationに行ってインストールしましょう。

スポンサーリンク

Kivyの遊び方(ピンポンゲーム)

それではまずはピンポンゲームを作成してみましょう。

まずkivy上でTutorialからPong Game Tutorialに行ってみるとピンポンゲームを作成することができます。

その中でも一番下に記述されているmain.pyとpong.kvをPython実行環境にコピーアンドペーストしてください。

私の場合はPycharmというPython実行環境を用いました。

main.py

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import NumericProperty, ReferenceListProperty,\
    ObjectProperty
from kivy.vector import Vector
from kivy.clock import Clock
from random import randint


class PongBall(Widget):
    velocity_x = NumericProperty(0)
    velocity_y = NumericProperty(0)
    velocity = ReferenceListProperty(velocity_x, velocity_y)

    def move(self):
        self.pos = Vector(*self.velocity) + self.pos


class PongGame(Widget):
    ball = ObjectProperty(None)

    def serve_ball(self):
        self.ball.center = self.center
        self.ball.velocity = Vector(4, 0).rotate(randint(0, 360))

    def update(self, dt):
        self.ball.move()

        # bounce off top and bottom
        if (self.ball.y < 0) or (self.ball.top > self.height):
            self.ball.velocity_y *= -1

        # bounce off left and right
        if (self.ball.x < 0) or (self.ball.right > self.width):
            self.ball.velocity_x *= -1


class PongApp(App):
    def build(self):
        game = PongGame()
        game.serve_ball()
        Clock.schedule_interval(game.update, 1.0 / 60.0)
        return game


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

pong.kv

#:kivy 1.0.9

<PongBall>:
    size: 50, 50 
    canvas:
        Ellipse:
            pos: self.pos
            size: self.size          

<PongGame>:
    ball: pong_ball
    
    canvas:
        Rectangle:
            pos: self.center_x-5, 0
            size: 10, self.height
    
    Label:
        font_size: 70  
        center_x: root.width / 4
        top: root.top - 50
        text: "0"
        
    Label:
        font_size: 70  
        center_x: root.width * 3 / 4
        top: root.top - 50
        text: "0"
    
    PongBall:
        id: pong_ball
        center: self.parent.center
        

この二つのファイルを同じディレクトリ上に作成して

python main.py

とターミナル上で実行すればピンポンゲームを作成することができます。

Kivyの遊び方(お絵かきゲーム)

次に同じようにお絵かきゲームも作成してみましょう。

ピンポンゲームと同じくTutorialからA Simple Paint App の方に行ってお絵かきゲームも作成していきましょう。

そこに記述されているコードをmain.pyにコピーアンドペーストしてあげます。

main.py

from random import random
from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.graphics import Color, Ellipse, Line


class MyPaintWidget(Widget):

    def on_touch_down(self, touch):
        color = (random(), 1, 1)
        with self.canvas:
            Color(*color, mode='hsv')
            d = 30.
            Ellipse(pos=(touch.x - d / 2, touch.y - d / 2), size=(d, d))
            touch.ud['line'] = Line(points=(touch.x, touch.y))

    def on_touch_move(self, touch):
        touch.ud['line'].points += [touch.x, touch.y]


class MyPaintApp(App):

    def build(self):
        parent = Widget()
        self.painter = MyPaintWidget()
        clearbtn = Button(text='Clear')
        clearbtn.bind(on_release=self.clear_canvas)
        parent.add_widget(self.painter)
        parent.add_widget(clearbtn)
        return parent

    def clear_canvas(self, obj):
        self.painter.canvas.clear()


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

こちらのコードをコピーアンドペーストし、ファイルを作ってあげましょう。

そして先ほどと同様にターミナル上で

python main.py

を実行してあげればいいです。

するとこんな感じでキャンバス上に絵がかけるようなアプリを作成することができます、

スポンサーリンク

Pythonの勉強方法【おまけ】

Pythonの基礎文法を勉強するにはUdemyというオンラインプログラミング学習プラットフォームがおすすめです。

具体的に言うとこちらの講座です。

この講座だけで基礎文法だけでなく実践的な応用スキルまで身につけることができます。

めちゃくちゃわかりやすい講座なので気になる方は是非みてみてください。

私が受けたPythonの講座の中では最も良かったですし、この講座を受けるだけでPythonの案件をこなすことができるレベルまでプログラミングを上達することができると思います。

実際多くの人がWeb上で高評価をしていてUdemyのPython講座といえばこの講座と言われているほどです。

今回紹介したkivyを用いた簡単なアプリの作成もこの講座の中でより詳しく述べられています。

気になる方はこちらのリンクからどうぞ。

Udemy

その他の記事

おわりに

今回はPythonで簡単なアプリを作る方法について紹介しました。

今回紹介したのは自分で作るのではなくコピーアンドペーストだけで作れるものですがアプリを自作する前にアプリをどのように作成するのか知っておくことは大事だと思います。

まずは実際に動くアプリを作成してプログラミングを楽しんでみましょう。

こちらの記事も合わせてどうぞ。

コメント

タイトルとURLをコピーしました