Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between Kivy and Toga (Beeware project) for Cross platform in Python

I know that the only way to build for cross platform in Python is Kivy but I recently heard of the Beeware project and this tool called Toga. As much as I know its still in its early stage and a lot of people aren't familiar with it as well but there are a couple of basic tutorials on the website. It looks very promising but I don't know about its future and the issues I might face if I start working on it as it might have a lot of bugs as of now. I read on the docs that Toga lets you build Native cross platform apps, are Kivy apps not native? Are they like Hybrid apps, like the ones you build on Phonegap? Thanks

like image 822
Dipanshu Juneja Avatar asked Aug 29 '17 17:08

Dipanshu Juneja


People also ask

Is BeeWare better than Kivy?

BeeWare and Kivy are the two best Python mobile application development frameworks. Both frameworks have acceptable GUI frameworks. However, the real difference appears in the look and feel of the final product. Kivy is a mature framework, whereas BeeWare is young and still in the development phase.

Is BeeWare cross a platform?

BeeWare is a Python library used to create cross-platform applications. It serves as an alternative to other app-building libraries such as Kivy.

Is Kivy good for mobile apps?

If you're a Python developer thinking about getting started with mobile development, then the Kivy framework is your best bet. With Kivy, you can develop platform-independent applications that compile for iOS, Android, Windows, MacOS, and Linux.

What is BeeWare in Python?

BeeWare allows you to write your app in Python and release it on multiple platforms. No need to rewrite the app in multiple programming languages. It means no issues with build tools, environments, compatibility, etc.


1 Answers

Toga achieves its gui by mapping the Toga api to native platform widgets on different systems. This means that the apps will automatically look and behave like other 'native' apps from that system. In contrast, Kivy uses opengl for drawing, using its own widget toolkit. This means that by default it looks and behaves exactly the same on all different platforms. You can customise it, but in practice it's very hard to get something that really acts just like another framework.

Both methods have advantages and disadvantages. Kivy is quite flexible and portable, since you can use opengl just about anywhere, and the harder part is probably compiling Kivy and Python itself. On the other hand, Toga's method is the only way to get something that really acts like a native app, and also possibly sidesteps some Kivy problems like relatively slow startup on Android. That said, I'm not sure if the need to wrap different widgets explicitly means it may be less flexible, compared to Kivy's drawing API that can achieve basically anything without special platform support.

like image 188
inclement Avatar answered Oct 22 '22 09:10

inclement