Samiksha Jaiswal (Editor)

Kivy

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Kivy organization

Written in
  
Python, Cython

Development status
  
Active

Operating system
  
Cross-platform

Kivy

Initial release
  
February 1, 2011; 6 years ago (2011-02-01)

Stable release
  
1.9.1 / 1 January 2016; 13 months ago (2016-01-01)

Kivy is an open source Python library for developing mobile apps and other multitouch application software with a natural user interface (NUI). It can run on Android, iOS, Linux, OS X, and Windows. Distributed under the terms of the MIT license, Kivy is free and open source software.

Contents

Kivy is the main framework developed by the Kivy organization, alongside Python for Android, Kivy iOS, and several other libraries meant to be used on all platforms. In 2012, Kivy got a $5000 grant from the Python Software Foundation for porting it to Python 3.3. Kivy also supports the Raspberry Pi which was funded through Bountysource.

The framework contains all the elements for building an application such as:

  • extensive input support for mouse, keyboard, TUIO, and OS-specific multitouch events,
  • a graphic library using only OpenGL ES 2, and based on Vertex Buffer Object and shaders,
  • a wide range of Widgets that support multitouch,
  • an intermediate language (Kv) used to easily design custom Widgets.
  • Kivy is the evolution of the PyMT project, and is recommended for new projects.

    Sister Projects

  • Buildozer: generic Python packager for Android and iOS.
  • Plyer: platform-independent Python wrapper for platform-dependent APIs.
  • Pyjnius: dynamic access to the Java/Android API from Python.
  • Pyobjus: dynamic access to the Objective-C/iOS API from Python.
  • Python for Android: toolchain for building and packaging Python applications for Android.
  • Kivy iOS: toolchain for building and packaging Kivy applications for iOS.
  • Audiostream: library for direct access to the microphone and speaker.
  • Kivy Designer: UI designer for Kivy.
  • KivEnt: entity-based game engine for Kivy.
  • Garden: widgets and libraries created and maintained by users.
  • kivy-sdk-packager: Scripts for Kivy SDK generation on Windows, OS X and Linux
  • kivy-remote-shell: Remote SSH+Python interactive shell application.
  • Code example

    Here is an example of the Hello world program with just one button:

    Kv language

    The Kivy language (Kv) is a language dedicated to describing user interface and interactions. As with QML, it is possible to easily create a whole UI and attach interaction. For example, to create a Loading dialog that includes a file browser, and a Cancel / Load button, one could first create the base widget in Python, and then construct the UI in Kv.

    In main.py:

    And in the associated Kv:

    Google Summer of Code

    Kivy participated in Google Summer of Code under Python Software Foundation.

  • 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 Wikipedia