Reputation: 1282
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
Upvotes: 9
Views: 4559
Reputation: 29478
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.
Upvotes: 14