I'd love to see reviews or performance benchmarks from people who've built using Kivy, but I can't seem to find much recent information. Can anyone help out? Thanks!
I like kivy a lot, it is very powerful and promising. The following should not be taken as harsh criticism as it may look: Kivy has two problems in my opinion, why it isn't used more widely.
The first is the documentation, which while being quite extensive almost never tells the whole story, especially the many paradigms and details which are very different from other frameworks.
Second is how hard it is to even achieve simple tasks (beyond putting a few buttons together). A good example is the almost dysfunctionally complicated ListView, which actually can't do that much. Kivy's widgets in general are lacking, and the visual design philosophy seems to be "ugly by default".
This is really just my opinion. I think that the event and input handling is great, and the graphics library is very remarkable for supporting hardware acceleration to a python app on so many platforms.
Documentation. A subject that is as important as the code, maybe more. We are internally always debating what does an user should known by default, and how. Both matters and depends of the target (noob, average, expert) or which approach first (kv based or python based). I personally don't know how to write a good documentation, except if it's just API documentation. But in that case, API is just not sufficient, as concept need to be explain as well. We have actually one big big big contributor named ZenCode who work behind the scene on the documentation, and constantly fixing our mistake / wording.
I ear you loud and clear, wish to have a better programming guide / module documentation as well.
About ListView... Let's say it's one of the Kivy widget that doesn't fit to the Kivy logic at all. Historically, i started a POC about it, then a contributor take it and worked a lot to have something that works for any sort of situations. And he tend up to something that cover lot of cases, but still bugs, and not easy to get it. Not to mention issue with performance.
That's why i rebooted the ListView from scratch, and named it RecycleView (like RecycledView from android): https://github.com/kivy-garden/garden.recycleview
The visual design was taken from Meego / Android in the old days. We might be able to refresh the theme one day, if we have somebody that can contribute to it (i mean a real designer, not a coder). I rarely use the default theme, always extend a widget to put the designer visuals i got on customers projects.
We are internally always debating what does an user should known by default, and how
As a user, I'd like to read documentation that assumes I know nothing and tells me everything. OR, make a list at the beginning "these are the things that you need to know, to proceed". Some people might get offended if the documentation is too basic, but the majority will just skip those parts that they already know. Lengthy documentation is better than incomplete (or wrong) documentation, IMHO.
I completely agree about documentation (for what I have checked about 7-8 months ago). I have bit of experience in Python and I really wanted to learn building mobile apps. As I was suggested Kivy, it was very difficult to follow the documentation plus videos on YouTube. Secondly, Kivy requires PyGame, it was very difficult for me to install it on my OS X (in a virtualenv). I moved on.
Started with Swift recently and doing Paul Hegarty's course on Stanford now. Its good, so far!
That was certainly my impression just from looking through the docs. Unfortunately there aren't many people doing cross-platform UI well, especially for games. The few decent open-source options (eg, CEGUI) don't support mobile at all.
This is a pain point for me too. I have an idea for a game, and since I love Python I'd love to write it in Python. But the available Python libraries for game UI all seem pretty dire.
(Outside games there's more general-purpose libraries like PyQT, wxPython, etc., but they feel more suited for general line-of-business type applications than games. And besides, trying to mix them together with something like pygame turns out to be a world of suck unto itself.)
I'd say kivy makes for a relatively good cross-platform UI for games. But for mobile games, kivy has the issue of producing very large download sizes, which may be a problem in selling it to a large audience.
The RaceCapture app is written in Kivy, we support Android, OSX and Windows (hopefully soon iOS). Overall I'm impressed at how well 99% of things 'just work' across platforms.
Posts with no discussion don't count as dupes on HN (there's too much randomness in what gets attention for that to be fair). But there have been others: