Kivy GUI Notes

This is about Kivy, the Python-powered cross platform GUI framework. I want to share what I’ve learned about Kivy.

What do I love about Kivy? …Well, first of all you Pythonista you, I don’t love that it’s Python. Oddly, though, I do love Python. I think it’s great. But it won’t write code for you. It’s just another language. I’m going to go out on a limb and say that I like Java and Ruby just as much. All are modern languages with an interesting object-oriented programming style. Java’s got it’s own issues, that’s true- security problems and the like- but the language itself is IMHO cool.

Where Kivy has them all beat is not only that it uses a modern language, but that it’s true cross-platform. IMHO Kivy implements write once run anywhere better than Java. I expect my app to run on Windows, Mac, Linux, Android, and iOS with little to no changes. Of course, this means that a Kivy app will not look like a native app, so if that’s your goal, time to move on. It’s decidedly much more mobile-like.

What do I hate about Kivy? I have to be much much more concerned about who’s getting events, and which coordinate system I’m in (if I use some sort of RelativeLayout) than I ever did with Java. It’s enough to drive one to drink. And there’s no concept of Z-order of widgets. So there’s definitely warts. But still, better to be writing on Linux and running as pretty as you please* on iOS and Android than to have to learn 3 development environments.

* Which remains to be seen, but I’m optimistic.

So let’s get started!


Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

In Archive