Kivy(キビー)は、PythonのNUI(Natural User Interface)でのマルチタッチアプリケーション開発のためのオープンソースライブラリである。動作環境はAndroid、iOS、Linux、Mac OS X、Windowsである。MITライセンスで配布されているフリーのオープンソースソフトウェアである。
Kivyは様々なプラットフォームで動作するように開発が進められており、Raspberry Piもサポートされた。
特徴としては以下のとおりである。 マウス、キーボード、TUIO、OS固有のマルチタッチイベントなど広範な入力への対応 OpenGL ES 2のVertext Buffer Objectとshadersを使用したグラフィックライブラリ マルチタッチ対応のさまざまなウィジェット カスタムウィジェットを容易にデザインするための中間言語Kv Kivy は PyMTを発展させたものであり、新しいアプリケーションの開発には PyMT ではなく Kivy を使うことが推奨されている。
姉妹プロジェクト Buildozer: AndroidとiOS用の汎用Pythonツール。 Plyer: Pythonラッパーのプラットフォーム非依存API群。 Pyjnius: PythonからJava / Android APIへの動的アクセスする。 Pyobjus: PythonからObjective-C / iOS APIへの動的アクセスする。 Python for Android: Pythonアプリケーションをビルドしてパッケージ化するためのツールチェーン。 Kivy iOS:iOS用のKivyアプリケーションをビルドしてパッケージ化するためのツールチェーン。 Audiostream: マイクとスピーカーに直接アクセスするためのライブラリ。 Kivy Designer:KivyのUIデザイナー。 KivEnt: ivyのエンティティベースのゲームエンジン。 Garden: ユーザーが作成し管理するウィジェットとライブラリ。 kivy-sdk-packager: Windows、OS X、LinuxでのKivy SDKの生成用スクリプト。 kivy-remote-shell: リモートSSH + Python対話型シェルアプリケーション。
コード ボタン一つのHello worldアプリケーションは下記のとおり。
from kivy.app import App from kivy.uix.button import Button
class TestApp(App): def build(self): return Button(text='Hello World')
TestApp().run()
言語としてのKv Kvは言語として、ユーザーインターフェースとその作用を記述できるようになっている。QMLと同じく、容易にUI全体を作り、そこにイベントを追加できる。たとえばキャンセルとロードのボタンをのせたローディングダイアログを含むファイルブラウザを作るなら、ベースとなるウィジェットを一つPythonで作り、あとはKvでUIを構築できる。
In main.py: class LoadDialog(FloatLayout): def load(self, filename): pass def cancel(self): pass
And in the associated Kv: #:kivy 1.4.0 <LoadDialog>: BoxLayout: size: root.size pos: root.pos orientation: "vertical" FileChooserListView: id: filechooser
BoxLayout: size_hint_y: None height: 30 Button: text: "Cancel" on_release: root.cancel()
Button: text: "Load" on_release: root.load(filechooser.path, filechooser.selection)
Google Summer of Code
KivyはPython Software FoundationのGoogle Summer of Codeに参加しました。
Kivy in GSoC'2014: https://www.google-melange.com/archive/gsoc/2014/orgs/python Kivy in GSoC'2015: https://www.google-melange.com/archive/gsoc/2015/orgs/python Kivy in GSoC'2016: https://wiki.python.org/moin/SummerOfCode/2016
References
外部リンク Kivyオフィシャル 有志による日本語の翻訳サイト