Eric S Bullington

Software Engineering and Data Visualization

Vite Vite: App Toolkit for Android and Kivy

As I wrote previously, Kivy is an amazing framework for cross-platform mobile development with Python. Over the course of a few years, a small group of dedicated developers have build an open-source GUI framework that can be used across almost every common platform: Windows, OSX, Linux, Android, and iOS. Not only is it possible to release Kivy apps in the form of ‘native’ packages on all of these operating systems, but with modern hardware, it’s also possible – simple, even – to create Kivy apps that run as smoothly as apps build using native app frameworks. When you consider all these features in combinations, Kivy is clearly a winning platform.

So why is it not yet taking the Python world by storm?

I suspect two factors are at work. First, Kivy is used primarily for games, at least at the present time. Most games are built on top of specially-designed UI/UXs that eschew traditional UI elements. Accordingly, Kivy lacks ‘native’-looking UI elements for each of the respective platforms it runs on. Secondly, and partly as a result of this first factor, there are presently very few business and productivity apps built using Kivy. The fundamental technology is there, and you can read in my last post why I firmly believe Kivy is the mobile framework of the future, but few business have adopted it to build apps outside of the gaming arena (although some impressive apps have been built by the ones who have).

It’s important to recognize these limitations, but also to realize that the hard work has already been done. In addition to a highly-performant core, Kivy’s creators have given us a comprehensive collection of cross-platform widgets, the Kivy Language (KV) for easy styling of said widgets, and easy access to OpenGL for those rare occasions when you can’t do what you want using Kivy widgets and KV.

Sample Kivy app built using the Vite Vite UI toolkit

Bearing this in mind, I’d like to introduce Vite Vite for Kivy, a UI toolkit for building business and productivity apps on Android. This is an idea loosely based on Twitter’s Bootstrap project for the web. At the moment, Vite Vite is mostly composed of a showcase app that demonstrates how easy it is to create attractive Android apps using Kivy and Python, but I have big plans for this project. The adjacent screen shot is from a recent iteration of this Android template app. I’m also releasing a pre-packaged Android apk so that people can try it out before setting up a Kivy for Android development environment.

As you can see, the Vite Vite showcase app includes an action bar that integrates a screen-picking spinner, a backbutton, and a help button. The bottom bar features three buttons that are also tied to the Kivy screen manager. My immediate plan is to “widgetize” the action bar and other app elements into Kivy widgets. In fact, that’s a crucial part of my project, but I decided to go ahead and releasing the sample app as is in case anyone is thinking about using Kivy to build a business or productivity app. Hopefully, it will save you some time. I’m releasing this project under the MIT License, so it’s absolutely appropriate to use it for commercial apps.

Eventually, my goal is to build an entire array of UI elements for Android, with 2-3 pre-designed themes. I’m also going to make these components very easy to style, so that that anyone from the designer and themer communities wishing to participate in the project can do so.

At this point, it should be clear that Kivy is absolutely ideal for MVPs. So set up a Kivy development environment, clone Vite Vite, customize it, and build the mobile business or productivity app you’ve always dreamed of.