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...