Recs.
Updated
Kivy is a Python library for developing cross-platform GUI applications on desktop, mobile (iOS/Android), and other devices.
SpecsUpdate
Pros
Pro Can be used to develop mobile applications
Kivy can be used to develop multi-touch applications and games on iOS and Android. One popular example showcasing the capabilities of Kivy, with source code provided for reference, is “2048 with Kivy” on the iOS App Store and Google Play Store.
Pro High performance
Cross-platform frameworks implementing native APIs usually have one issue in common: performance across platforms. Kivy solves this by implementing performance-critical features in C / Cython, and it’s graphics engine is built on OpenGL ES — hardware-acceleration out of the box with many smart under-the-hood optimizations to ensure high performance.
Pro Versatile
Compared to other GUI frameworks, Kivy is a lot more dynamic and versatile - it is essentially an OpenGL canvas; the graphics API is an abstraction of low-level OpenGL commands. This means you can use it to draw any kind of graphics, and makes Kivy suitable for game development.
Cons
Con No full support for accessing certain system-level APIs
It can be hard to accomplish things that requires APIs not supported by Kivy — while it is possible to interface with the platform's system libraries with third-party Python libraries (pyobjc for macOS, pyjnius for Android, etc.), it provides a level of indirection and can be hard to work with if you are not familiar with the platform's native API.