Preface
Mobile devices have transformed the way applications are perceived. They have increased in interaction types; the user now expects gestures, multi-touches, animations, responsiveness, virtual keyboards, and magic-pens. Moreover, compatibility has become a must if you want to avoid the barriers imposed by major operating systems. Kivy is an open source Python solution that covers these market needs with an easy-to-learn and rapid development approach. Kivy continues to grow fast and two versions have been released since the first publication of this book in September 2013. Thanks to an enthusiastic community, Kivy is making its way in an extremely competitive territory in which it stands out for offering both a cross-platform and efficient alternative to native development and HTML5.
This book introduces you to the Kivy world, covering a large variety of important topics related to interactive applications and games development. The components presented in this book were selected according to their usefulness for developing state-of-art applications and also for serving as an example of broader Kivy functionalities. Following this approach, the book covers a big part of the Kivy library.
This book provides you with examples to understand their use and how to integrate the three projects that come with this book. The first one, the comic creator, exemplifies how to build a user interface (Chapter 1, GUI Basics – Building an Interface), how to draw vector shapes in the screen (Chapter 2, Graphics – the Canvas), how to bind user interactions with pieces codes (Chapter 3, Widget Events – Binding Actions), and other components related to improving the user experience (Chapter 4, Improving the User Experience). The second project, Invaders Revenge, is an interactive game that introduces you to the use of animations, scheduling of tasks, keyboard events, and multi-touch control (Chapter 5, Invaders Revenge – an Interactive Multi-touch Game). The third project, Kivy Player, teaches how we can control video streams with a modern design and responsive interactions to maximize the use of the screen (Chapter 6, Kivy Player – a TED Video Streamer).
Occasionally, this book explains some technical but important Kivy concepts that are related to the Kivy class structure and implementation, or the order and strategies to draw on the screen. These explanations give the reader some insights into the Kivy internals that will help them solve potential problems when they develop their own projects. Even though they are not necessary for the comprehension of the main topics of this book, they will become important lessons when the reader faces new situations implementing their own applications.
This book grabs the reader's attention by stating interesting programming scenarios. The sections are generally short and straightforward, making the learning process constant. These short sections will also serve as a reference when the reader finishes the book. However, serving as a reference doesn't prevent the text from achieving the main goal, which is teaching bigger projects that connect the small topics. At the end of this book, the reader will feel comfortable to start their own project.