SAMURAI TERAKOYA

[ kivy : アプリ開発 ] VSCodeでの開発環境準備&簡易プログラムの作成〜実行

kivy

本記事では、Pythonのライブラリの一つとして公開されております「kivy」のMac/Windowsにおけるインストール方法に加え、どういう風にコーディングをするのかを知って頂くためにご用意しました簡単なプログラム(Windowsでも可)をご紹介させて頂きます。

 

ソースコードエディタをまだ準備できていない方は、以下の記事を参考にご準備頂ければと思います。

 

https://utubou-tech.com/2021/05/21/942/

 

✅   kivyの開発環境の準備手順
日本語を適用させる方法
✅   kivy初心者向けの簡易プログラムの公開

kivyとは?

 

公式ガイドによると、次のように書かれております。

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

分かりやすくすると、PythonでGUI(マウスやタッチパネルで操作ができる)プログラムを作成するためのオープンソースのライブラリ(利用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェアの総称)であり、デスクトップからAndroidなどのスマホでも動作可能なアプリケーションを開発できるものになります。

kivyのインストール

 

python 及び pipがインストールされている事が前提になります。

< pythonのインストール(以下、参考リンク) >
Welcome to Python.org
The official home of the Python Programming Language
< pipのインストール >

python -m pip install SomePackage

 

① Homebrewを使用し、kivyに必須な依存関係をインストール

brew install pkg-config sdl2_image sdl2_ttf sdl2_mixer gstreamer


※ Successfullyと表示されればOK


もし途中で以下のような警告が出たら、赤枠の部分をコピーしてコマンドとして入力/実行し、pipのバージョンを更新してあげる。

/usr/local/opt/python@3.9/bin/python3.9 -m pip install --upgrade pip

② Cython, kivyをインストール

 pip3 install -U Cython


※ Successfullyと表示されればOK

 pip3 install kivy


※ Successfullyと表示されればOK

 

① pipのバージョンを確認

pip list

② pipのバージョンを更新

python -m pip install --upgrade pip

③ kivyをインストール

pip install kivy

 

スポンサーリンク

日本語が使用できるようにする

 

kivyは、デフォルトでは、日本語を使用する事が出来ず、文字化けが起こってしまいます。
その問題の解決方法は、以下のコマンドを実行するだけですので、インストールを終えたら、実際にコードを書く前に済ましておきましょう。

 

pip install japanize-kivy


※ Successfullyと表示されればOK[/box]

動作確認

 

インストール及び日本語の適用が終わりましたので、ちゃんと動作するかを確認しましょう。


まずは、ディレクトリとpythonファイルを作成しますので、以下のコマンドを順に実行しましょう。

 

1. kivy_sampleディレクトリを作成

mkdir kivy_sample

2. 作成したディレクトリへ移動

cd kivy_sample

3. pythonファイルの作成

touch test.py

4. コードの記述

# 動作確認 : まずは、コードの内容は置いておき、動作するかを確認しましょう。
from kivy.app import App
from kivy.uix.label import Label
import japanize_kivy

class Test(App):
    def build(self):
         return Label( 
             text="動作テストです。",
             font_size = 60
         )

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

5. コードの実行

python3 test.py

 

[ 結果 ]

以下のような背景が黒いウインドウが表示されると思います。
その中央に「動作テストです。」と出ていればOKです。

 

スポンサーリンク

簡易プログラムの作成

 

では、最後にkivyで、ボタンをクリックした時にラベルの文字を更新するプログラムのコードをご紹介しますので、参考にして頂ければと思います。

 

ファイル名は、kivy_sample.pyにしてください。

# 簡易プログラム 

from kivy.app import App

# 日本語を適用
import japanize_kivy

# from kivy.uix ~ : ウジェット(ボタンとかラベルなど)をプログラム上で使えるようにする
from kivy.uix.gridlayout import GridLayout
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.core.window import Window
# ------------------------

# Windowの背景色を変更 (黒 → 白) : デフォルトは黒です。
Window.clearcolor = (1, 1, 1, 1)

# 画面を作る
class Sample(App):
    def build(self):
        # - 画面の設定 -------------
        self.window = GridLayout()
        self.window.cols = 1
        self.window.size_hint = (0.6, 0.7)
        self.window.pos_hint = {"center_x":0.5, "center_y":0.5}
        # ------------------------
        
# 以下、ウィジェット(ラベルとかボタンなどの部品)の追加

# 画像を表示するためのウィジェット : Image
# kivy_sampleディレクトリ内に好きな画像を配置し、その画像のファイル名を書いてあげる
self.window.add_widget(Image(source="画像ファイル名"))

# ラベルウィジェット(テキスト) : Label
self.Test = Label(
    # テキストの設定
    text="kivyの練習です!",
    # フォントのサイズを40で指定
    font_size = 40,
    # 文字色を青に指定
    color="blue"
)
# ラベルを画面上に追加
self.window.add_widget(self.Test)

# ボタンウィジェット : Button
self.button = Button(
    # ボタン上に表示させるテキストを設定
    text="クリック",
    # 背景色を青に設定
    background_color="blue",
    # サイズの設定
    size_hint = (1,0.5),
    # 文字色を白に設定
    color = "white",
    # フォントサイズを30に設定
    font_size = 30,
    # ボタンの背景は、灰色がデフォルトのため、""にする事で背景色を思い通りに反映させる事ができる
    background_normal = ""
)

# ボタンをクリックした際の処理 : on_press
self.button.bind(on_press=self.callback)
# ボタンを画面上に追加
self.window.add_widget(self.button)

# レイアウトを返す
return self.window

# 関数を準備 : ボタンがクリックされた際に呼び出される
def callback(self, instance):
    # ラベルのテキストを更新する
    self.Test.text = "kivy : 基礎学習"
    
# アプリを起動する
if __name__ == "__main__":
    Sample().run()

◇ コードの実行

python3 kivy_sample.py

[ 結果 ]

まとめ

Pythonのライブラリの一つであるkivyを扱えるようになる事で、様々な端末にて動作が可能なアプリケーションの開発が可能になりますため、
魅力的な面も多いですが、学習情報がまだまだ少ないため、扱えるエンジニアの方も多くないのが現状です。
しかし、今後、Webアプリケーションやモバイルアプリケーションの現場で活用されることも考えられるため、私自身も期待しながら、理解を深めてみようと思います。

コメント

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