Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It works fine, and includes things like the ability to access the Android API (with pyjnius and plyer) but there are some problems that are difficult or impossible to fix. In some cases these aren't important or you can just not care, in others they are an issue.

The major ones that come up are:

- Relatively large APKs, minimum size is about 7MB due to the size of the included python interpreter.

- Non-native widgets, Kivy draws its own widgets using OpenGL. They're quite customisable, but of course you never get behaviour quite like the native ones.

- App startup time. This is down to about a second on newer devices, but on older ones (or if the app does inefficient things before starting up) can be quite a bit longer, especially on the first run when some unpacking is performed.

I've seen some nice examples recently of apps that do a good job with Kivy itself (e.g. demonstrating more themeing than most and using android api functionality), like Kognitivo [1] and Barly [2]. I think these do a good job of showing what Kivy can do in practice. Used the right way it's also very performant for e.g. games (the low level graphics api is a cython layer over opengl), especially with the ability to add your own cython and use libraries like chipmunk. A good example for this is Boardz [3], which uses the Kivent game engine for Kivy [4].

[1] https://play.google.com/store/apps/details?id=org.kognitivo....

[2] https://play.google.com/store/apps/details?id=org.topbanana....

[3] https://play.google.com/store/apps/details?id=org.chozabu.bo...

[4] http://kivent.org/



> - Non-native widgets, Kivy draws its own widgets using OpenGL. They're quite customisable, but of course you never get behaviour quite like the native ones.

And this can make the application entirely unusable for some users. I'm thinking in particular about accessibility for blind users, who need to use a screen reader, though other disabilities are also impacted. Basically, to be accessible, an application's UI components need to implement the platforms' accessibility APIs. Most non-native widgets don't do this, because it's a lot of work that most developers just don't even think about. As far as I can tell from a quick scan of the source, that currently includes Kivy. So beware that if you use Kivy and its non-native widgets, you'll be locking some users, admittedly a small minority, out of your app. Probably OK for a game; not so much for an application that's going to be used in a job or education.


File a bug! They might not even realise.


As a Kivy dev, I've thought about it before on the desktop (it's come up before and a gsoc student did some preliminary investigation for the best way to do it), but I'll admit I didn't realise the implications on Android where actually this support might be harder due to the mismatch with the normal java widget mechanisms. I do think it's important and will try to take a look at it, but it's certainly true for now that Kivy does not have much support for standard accessibility tools, probably particularly on android and ios.





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: