Difference between Kivy and Java for android apps

Guilherme David da Costa picture Guilherme David da Costa · Sep 1, 2013 · Viewed 11.2k times · Source

I'm a python developer with little experience creating android apps in java and want to create an app that will access my university web portal, retrieve some data and show on a view.

So, after researching Kivy, I have a few questions:

1) Which one is easier and faster to develop android apps?

2) Does Kivy have any android feature limitations?

3) And finally, would an android app developed using kivy run as fast as one developed using java?

Answer

inclement picture inclement · Sep 1, 2013

This is a rather subjective question.

1) Which one its easier and faster to develop android apps?

I think there's a strong argument for kivy, but this doesn't have an objective answer.

2) Does Kivy has limitations to access certain parts of android (like not fully integrated with its api)?

The kivy project includes pyjnius, a tool for accessing java classes through python, and in principle I think this should give arbitrary (edit: on reflection, not arbitrary, but probably not limited in immediately important ways) access to the java apis.

In practice, prebuilt python wrappers are a work in progress, though rapidly improving. The android python library already gives easy access to many things (including but not limited to intents, vibration, accelerometer etc.). Even where there isn't already a python wrapper, it can be very easy to do the necessary work.

Edit: There has recently been great work on Kivy's plyer project, intended to provide a transparent api to platform specific tools so that you can call it once and get the same behaviour on different systems without knowing about the details. It includes useful support for parts of the android api.

3) And finally, an android app developed using kivy would run as fast as one developed using java?

Ultimately the answer is probably no, but the difference is highly unlikely to be important unless you're doing something strongly cpu limited. The task you suggest would not be limited in that way.