That's a good question, but one that I don't think has a "right" answer.
It's always a compromise. If you want to optimize for the device, use "sp" units. That will give your user the most consistent result.
http://kivy.org/docs/api-kivy.metrics.htmlIt will give them a font size consistent with their device. But then you need to test and consider every device resolution and position screen elements acordingly. Images may be small or large, depending on the device resolution.
If you want to make it easy for development, use a percentage of the screen width/height. Then you always know how it will look. But then it may be too large/small on the device depending on the physical screen size. Either way, Kivy gives you all the tools and units you need to handle this any way you choose.
But it's an inherenet problem that kivy can't solve because there is no solution. You either optimize for the device or optimize for consistency/ease of development. You can't really do both...
Or if you can, post a 'how to' and because I want to know how! :-)