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
Difference between Kivy and Toga (Beeware project) for Cross platform in Python
4.2k Views Asked by DJay At
1
There are 1 best solutions below
Related Questions in PYTHON
- Display images on Django Template Site
- Protractor did not run properly when using browser.wait, msg: "Wait timed out after XXXms"
- Django invalid literal for int() with base 10:
- Removing URL features from tokens in NLTK
- Django Noob URL to from Root Page to sub Page
- Django Admin tables not displaying correctly
- Django with chartkick
- Django urls.py not rendering correct template
- django form errors before submit
- django admin: custom app_index with context
Related Questions in KIVY
- Display images on Django Template Site
- Protractor did not run properly when using browser.wait, msg: "Wait timed out after XXXms"
- Django invalid literal for int() with base 10:
- Removing URL features from tokens in NLTK
- Django Noob URL to from Root Page to sub Page
- Django Admin tables not displaying correctly
- Django with chartkick
- Django urls.py not rendering correct template
- django form errors before submit
- django admin: custom app_index with context
Related Questions in BEEWARE
- Display images on Django Template Site
- Protractor did not run properly when using browser.wait, msg: "Wait timed out after XXXms"
- Django invalid literal for int() with base 10:
- Removing URL features from tokens in NLTK
- Django Noob URL to from Root Page to sub Page
- Django Admin tables not displaying correctly
- Django with chartkick
- Django urls.py not rendering correct template
- django form errors before submit
- django admin: custom app_index with context
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
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.