Kivy

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

Kivy(キビー)は、PythonのNUI(Natural User Interface)でのマルチタッチアプリケーション開発のためのオープンソースライブラリである。動作環境はAndroid、iOSLinux、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に参加しました。

  • 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

  1. ^ a b “Kivy changelog”, kivy.org, https://kivy.org/#changelog 2016年4月5日閲覧。 
  2. ^ “FAQ: How is Kivy related to PyMT?”, kivy.org, https://kivy.org/docs/faq.html#how-is-kivy-related-to-pymt 2012年6月9日閲覧。 

外部リンク

  • Kivyオフィシャル
  • 有志による日本語の翻訳サイト