DEV Community

amine oukhrid
amine oukhrid

Posted on


python for android development?

this question always filled my mind as a python developer I won't deny that learning a new language for a little project seemed to be so tiring, making some searches and I found a library called kivy .

Basically it's like tkinter if you are familiar with , you can design a UI but it was so simple and not as I imagined , fonts were limited , gadgets designs were really weak and there was a lot of bugs that happens some times , not to overlook the limitation of creativity also you had to have a decent amount of knowledge in OOP ( OBJECT ORIENTED PROGRAMMING ) and not only the car famous example .
I got so frustrated to be honest , googling more and more and I found an other library based on kivy but named kivyMD , before I go on what is kivyMD , let me clarify that kivy is written in Python and Cython, based on OpenGL ES 2, supports various input devices and has an extensive widget library. With the same codebase, you can target Windows, macOS, Linux, Android and iOS.
However KivyMD is a collection of Material Design compliant widgets for use with Kivy, it is also cross-platform, touch-enabled graphical applications , the project's goal is to approximate Google's Material Design spec as close as possible without sacrificing ease of use or application performance .
So now with almost google materials designing was a little bit more beautiful , so my idea was to build an application for a website to receive notifications whenever a meeting is set , and also implementing a real-time chat , so the first part was a logging screen , so I used a flask api to authenticate.
I could've used firebase auth function but prefer building my own services until I have no clue about how to do it , next part now was getting the meetings list , getting a response from the api with all the meetings , using a jwt to verify from where the request is coming from , so with this set up , I had to set up a event listener on the change of database columns which was a little bit hard
Because the application isn't directly listening to the database so was a little bit hard but agn timing requests was a simple solution , last but not least , realtime chat , this one was tough couldn't implement it anyways , tried firebase realtime database , but still really really hard to implement , the most satisfying result was needing to get on and out to refresh the feed of messages .... finally , having a lot of errors while compiling the code , took some time to fix it and now m with my apk .

from my experience I could assume that if you have an almost static application it's okay to go with kivy , but , something more complex I guess it won't be wise to use kivy ! java , kotlin , flutter might do the job for android , swift for ios , or hit two birds with one rock and using react native .

kivy official documentation :
kivy's repo :
kivyMD documentation :
kivyMD's repo :

Top comments (4)

loloxploit profile image
loloxploit • Edited

Awsome Thanks for your information.

Or Flutter?
Or Kotlin?

If you are a designer, have used tools on the pc to create designs for applications , then id suggest Flutter or Kotlin. There minimal syntax to learn and can be rewarding in any situation!

Now When it comes to full application developement , if you know how to code a screen in python with kivy, you can use python to connect your front end app to a server . pyrebase4 has come along way anyways , theres so much documents its so easy to get lost but as skills that you will use over and over again I think there valuable enough to learn?

Now when it comes to building theres not alot to go on but if you just use kivy modules you will be fine. As long as your not afraid to learn a small bit of bash language to compile your app, you be fine .

I started learning to create apps back a yr ago now , had 0 python or programming knowlodge b4 hand just kali linux for 5 yrs so bash anyhow , Kivy was a good starter for me , I am now leaening kotlin and flutter for more skills under the belt

aahnik profile image
Aahnik Daw

I agree with you. Trying to do everything with Python is not wise.

Flutter is a great option. It makes your app cross platform

oukhrid_amine profile image
amine oukhrid

yeah exactly budd <3

seankeish profile image

Hi do u know to use list items to change screens in kivy md ??