Kivy: Interactive Applications in Python

More Information
  • Build a User Interface (UI) using the Kivy Language
  • Understand and alter the order of execution of the drawing instructions
  • Use the powerful Kivy properties to keep the UI always updated with the last user interactions
  • Bind and unbind Kivy events to control widgets (UI components), touches, the mouse and keyboard, animations, and clock
  • Scale, rotate, and translate widgets
  • Control and switch between different screens
  • Develop and use your own single gestures
  • Create animations and combine them to bring widgets to life
  • Add different types of translations to the animations
  • Comprehend the main strategies to control the multi-touch events
  • Schedule single or repetitive tasks such as animations

Mobiles and tablets have brought with them a dramatic change in the utility of applications. Compatibility has become essential, and this has increased the kind of interaction that users expect: gestures, multi-touches, animations, and magic pens. Kivy is an open source Python solution that covers these market needs with an easy-to-learn and rapid development approach. Kivy is growing fast and gaining attention as an alternative to the established developing platforms.

Kivy: Interactive Applications in Python quickly introduces you to the Kivy development methodology. You will learn some examples of how to use many of the Kivy components, as well as understand how to integrate and combine them into big projects. This book serves as a reference guide and is organized in such a way that once finished, you will have already completed your first project.

You will start by learning the Kivy Language for building User Interfaces (UI) and vector figures. We then proceed to the uses of Kivy events and properties to glue the UI with the application logic.

You then go on to build an entire User Interface (UI) starting from a hand-made sketch. Furthermore, you will go on to understand how to use the canvas and drawing instructions to create different types of geometrical figures. Finally, you will be introduced to a big set of interactive and smooth features: transformations (scale, rotate, and translate), gestures, animations, scheduling tasks, and multi-touch elements.

Kivy: Interactive Applications in Python expands your knowledge by introducing various components that improve the User Experience (UX). Towards the end of the book, you will be confident to utilize Kivy components and strategies to start any application or game you have in mind.

  • Use Kivy to implement apps and games in Python that run on multiple platforms
  • Discover how to build a User Interface (UI) through the Kivy Language
  • Glue the UI components with the logic of the applications through events and the powerful Kivy properties
  • Detect gestures, create animations, and schedule tasks
  • Control multi-touch events in order to improve the User Experience (UX)
Page Count 138
Course Length 4 hours 8 minutes
ISBN 9781783281596
Date Of Publication 24 Sep 2013
Hello World!
Basic widgets – labels and buttons
Embedding layouts
Our Project – comic creator
Attributes, id and root
Basic widget events – dragging the stickman
Localizing coordinates – adding stickmen
Binding and unbinding events – sizing limbs and heads
Binding events in the Kivy language
Creating your own events – the magical properties
Kivy and properties
Screen manager – selecting colors for the figures
Color Control on the canvas – coloring figures
StencilView – limiting the drawing space
Scatter – multitouching to drag, rotate, and scale
Recording gestures – line, circles, and cross
Simple gestures – drawing with the finger
Invaders Revenge – an animated multitouch game
Atlas – efficient management of images
Boom – simple sound effects
Ammo – simple animation
Invader – transitions for animations
Dock – automatic binding in the Kivy language
Fleet – infinite concatenation of animations
Scheduling events with the Clock
Shooter – multitouch control
Invasion – moving the shooter with the keyboard
Combining animations with '+' and '&'


Roberto Ulloa

Roberto Ulloa has a diverse academic record in multiple disciplines within the field of computer science. Currently, he is working with artificial societies as part of his PhD thesis at the University of Western Ontario. He obtained an MSc degree from the University of Costa Rica and taught programming and computer networking there. He has earned a living as a web developer, working with Python/Django and PHP/Wordpress. He collaborates with various researchers while also working on his own projects, including his blog ( He constantly worries that the Internet has already become aware of itself and that we are not able to communicate with it because of the improbability of it being able to speak any of the 6,000-plus odd human languages that exist on the planet.