Kivy

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Kivy
作者 Kivy organization
初版 2011年2月1日 (13年前) (2011-02-01)[1]
最新版
2.0.0 / 2020年12月10日 (3年前) (2020-12-10)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
Python, Cython
対応OS Cross-platform
ライセンス MIT (Free software)
公式サイト kivy.org
テンプレートを表示

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

Kivyは様々なプラットフォームで動作するように開発が進められており、Raspberry Piもサポートされた。

特徴としては以下のとおりである。

  • マウス、キーボード、TUIO、OS固有のマルチタッチイベントなど広範な入力への対応
  • OpenGL ES 2のVertext Buffer Objectとshadersを使用したグラフィックライブラリ
  • マルチタッチ対応のさまざまなウィジェット
  • カスタムウィジェットを容易にデザインするための中間言語Kv

Kivy は PyMTを発展させたものであり、新しいアプリケーションの開発には PyMT ではなく Kivy を使うことが推奨されている。[2]

姉妹プロジェクト[編集]

  • 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に参加しました。

References[編集]

外部リンク[編集]