KivyというPythonライブラリをご存じでしょうか?
マルチプラットフォームなGUIアプリが簡単に作れてしまう……という魅力的な言葉に惹かれて……
とりあえずインストールとHello Worldしてみました!
Kivyとは?
Pythonを使って、下記のような様々なプラットフォームで動作するアプリを作成できるオープンソースライブラリです。
- Android
- iOS
- Linux
- OS X
- Winsows
- Raspberry Pi
ソースコードを各プラットフォームで流用でき、Kvという言語でUI簡単に作れるそうです。
トキメイタので、まずは初手!試してみました!
インストール手順
コチラの記事を参考にしました。
Kivy 超入門(1):インストールからHello, World! まで
手順としては、たった3ステップ。
- Pythonのバージョンを確認
- whlファイルをダウンロード
- コマンドを叩いてインストール
Pythonのバージョンを確認
コマンドプロンプトを開き*1、「python –version」を実行しましょう。
C:\>python --version Python 3.6.0 :: Anaconda 4.3.1 (64-bit)
ぼくの場合、「Python 3.6.0」ですね。
whlファイルをダウンロード
まずコチラにアクセスします。
http://www.lfd.uci.edu/~gohlke/pythonlibs/#kivy
現在ダウンロードできるものが表示されます。
この中から自分の環境に合ったものを、ダウンロードします。
ぼくの場合は、
- Python: 3.6.0
- Windows 64bit
なので「Kivy-1.10.0-cp36-cp36m-win_amd64.whl」をダウンロードします。
ファイル名は
- cp:Pythonのバージョン(3.6.0の場合、36)
- win: Windowsのbit(win32: 32bit版, win_amd64: 64bit版)
となります。
インストール
まずはダウンロードしたファイルが置かれた場所に移動しましょう。
次にこのフォルダ内のアドレスバーに、「cmd」と入力し、Enterを入力します。
するとこのフォルダがカレントの状態で、コマンドプロンプトが開きます。
開いたコマンドプロンプトに「python -m pip install <ダウンロードしたwhlファイル名>」を入力し、Enterを入力します。
するとこのように表示が進んでいき……
C:\Users\xxx\Downloads>python -m pip install Kivy-1.10.0-cp36-cp36m-win_amd64.whl Processing c:\users\xxx\downloads\kivy-1.10.0-cp36-cp36m-win_amd64.whl Requirement already satisfied: docutils in c:\users\xxx\appdata\local\continuum\ anaconda3\lib\site-packages (from Kivy==1.10.0) Collecting Kivy-Garden>=0.1.4 (from Kivy==1.10.0) Downloading kivy-garden-0.1.4.tar.gz Requirement already satisfied: pygments in c:\users\xxx\appdata\local\continuum\ anaconda3\lib\site-packages (from Kivy==1.10.0) Requirement already satisfied: requests in c:\users\xxx\appdata\local\continuum\ anaconda3\lib\site-packages (from Kivy-Garden>=0.1.4->Kivy==1.10.0) Requirement already satisfied: idna<2.6,>=2.5 in c:\users\xxx\appdata\local\cont inuum\anaconda3\lib\site-packages (from requests->Kivy-Garden>=0.1.4->Kivy==1.10.0) Requirement already satisfied: certifi>=2017.4.17 in c:\users\xxx\appdata\local\ continuum\anaconda3\lib\site-packages (from requests->Kivy-Garden>=0.1.4->Kivy==1.10.0) Requirement already satisfied: chardet<3.1.0,>=3.0.2 in c:\users\xxx\appdata\loc al\continuum\anaconda3\lib\site-packages (from requests->Kivy-Garden>=0.1.4->Kivy==1.10.0) Requirement already satisfied: urllib3<1.22,>=1.21.1 in c:\users\xxx\appdata\loc al\continuum\anaconda3\lib\site-packages (from requests->Kivy-Garden>=0.1.4->Kivy==1.10.0) Building wheels for collected packages: Kivy-Garden Running setup.py bdist_wheel for Kivy-Garden ... done Stored in directory: C:\Users\xxx\AppData\Local\pip\Cache\wheels\27\08\88\8893 8a7cf5b20073ff1f0432b7c0dd172531185cc74d97f5da Successfully built Kivy-Garden Installing collected packages: Kivy-Garden, Kivy Successfully installed Kivy-1.10.0 Kivy-Garden-0.1.4 C:\Users\xxx\Downloads>
インストールが完了します。
Hwllo Worldしてみる
KivyのAPIリファレンスに載っていたサンプルを実行。
# -*- coding: utf-8 -*- import kivy kivy.require('1.0.7') from kivy.app import App from kivy.uix.button import Button class TestApp(App): def build(self): # return a Button() as a root widget return Button(text='hello world') if __name__ == '__main__': TestApp().run()
表示されました!
こんな簡単にGUIアプリが作れるとは……
ちなみに表示されているものはボタンなので、クリックすると反応します。
(押下時の処理がないので、ボタンアクションだけですが)
なにしてるのか?
読めない英語を読んだ感じだと……
どうやらbuild()メソッドを、オーバライドすることで実装しているようです。
オーバライドとは…
親クラスのメソッドを子クラスで上書きすること
引用:http://wa3.i-3-i.info/word138.html
オブジェクト指向の考え方で、継承というものがあります。
その機能の1つにオーバライドというものがあります。
親クラスから受け継いだ機能を、自分用に書き換えるようなイメージですね。
(説明が難しい)
気になる方は、オブジェクト指向についてのページや、本を読んでみると理解が深まると思います。
あとがき
いかがでしたでしょうか?
試してみた感触として、かなり簡単にGUIアプリが作れました。
とはいえ、Hello Worldだけなので、もっと凝ったことしようとするとどうなのかな?という懸念はあります。
その辺は、これからいじくっていこうと思います。
KivyにはAndroidアプリ「Kivy Launcher」というものがあります。
これを使えばAndroid上で、Kivyを使ったPythonを実行することができます。
ということは
PC上で組んだKivyのアプリをAndroidで簡単に試してみたり
クラウドやGitと連携して、PCとAndroidどちらでも開発してみたり
なんて妄想が膨らみますね……
気になった方は、ひとまずKivyに「こんにちわ」してみてはいかがでしょうか?
*1:Windows+R→「cmd」を入力してOKボタン