Skip to content

Kivy

Python framework for building cross-platform GUI apps, including mobile, desktop and embedded.

Stars
19k
Forks
3.1k
Licence
MIT
Language
Python
Last update
4 days ago
Type
Framework

What it is

Kivy is an open-source Python framework for making graphical apps that run on Windows, macOS, Linux, Android and iOS from one codebase. It is written in Python and Cython, built on OpenGL ES 2.0, and includes a widget library with multitouch support. People use it for quick interface prototyping and for shipping the same app across several platforms.

  • Build a desktop GUI app in Python that runs on Windows, macOS and Linux
  • Package a Python interface as an Android or iOS app using the sibling tools
  • Prototype a multitouch user interface before committing to a platform
  • Run the bundled examples to learn widget and layout patterns

Great for

  • Python developers who want one codebase for desktop and mobile apps
  • Developers prototyping touch-friendly interfaces quickly
  • Projects that need multitouch input support
  • Hobbyists targeting Raspberry Pi OS or other embedded Linux devices

Not ideal for

  • People who need native-looking platform widgets, since Kivy draws its own widgets (inferred from its OpenGL-based design; the README does not discuss this directly)
  • Developers who want to avoid Python entirely
  • Teams needing a web-only app; Kivy targets desktop, mobile and embedded platforms
Step-by-step guide: how to use KivyInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Python 3

    Install from PyPI

    pip install kivy
  2. 2

    Run it

    • Install Python and Kivy as described in the documentation at kivy.org/docs
    • Run one of the bundled examples from the examples folder
    • Edit the example code and rerun it to see your changes
  3. 3

    Get the most out of it

    • Use the bundled examples folder to learn widgets and layouts
    • Package mobile builds with Buildozer, a sibling project listed in the README
    • Use Python for Android or Kivy iOS for mobile toolchains
    • Browse Garden, the user-maintained collection of widgets and libraries

Downloads

Strengths

  • One codebase targets Windows, macOS, Linux, Android and iOS
  • MIT licensed and actively developed with a large community
  • Documentation, tutorials, API reference and bundled examples are provided

Trade-offs

  • Installation details live on the external documentation site rather than in the README
  • Mobile packaging relies on separate sibling projects such as Buildozer and Python for Android
  • The README does not state a minimum Python version, so check the docs before starting

How it compares

ProjectStarsTypeLevelUpdatedBest for
kivy (this)19kFrameworkintermediate4 days agoPython developers who want one codebase for desktop and mobile apps
popcorntime10.7kAppintermediate2 months agoPeople who want one app to browse movies and TV shows across platforms
yazi43.2kAppintermediate4 days agoPeople who already spend time in a terminal and want a faster way to browse folders
super-productivity23.4kAppbeginner4 days agoPeople who want a personal task list with built-in time tracking
mui13.5kFrameworkintermediate1.5 years agoDevelopers who want to build mobile-style web or hybrid app screens with HTML, CSS and JavaScript
react-native-elements25.9kLibraryintermediate6 months agoReact Native developers who want ready-made UI components

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.