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.3k Views Asked by DJay At
1
There are 1 best solutions below
Related Questions in PYTHON
- new thread blocks main thread
- Extracting viewCount & SubscriberCount from YouTube API V3 for a given channel, where channelID does not equal userID
- Display images on Django Template Site
- Difference between list() and dict() with generators
- How can I serialize a numpy array while preserving matrix dimensions?
- Protractor did not run properly when using browser.wait, msg: "Wait timed out after XXXms"
- Why is my program adding int as string (4+7 = 47)?
- store numpy array in mysql
- how to omit the less frequent words from a dictionary in python?
- Update a text file with ( new words+ \n ) after the words is appended into a list
- python how to write list of lists to file
- Removing URL features from tokens in NLTK
- Optimizing for Social Leaderboards
- Python : Get size of string in bytes
- What is the code of the sorted function?
Related Questions in KIVY
- Kivy - Create new widget and set its position and size
- Kivy on RaspberryPi (Raspbian) - unable to load any valuable window provider
- Updating Kivy GUI using clock object?
- Some weird error using Kivy 1.9.1
- Run an gif animation only once on kivy
- import file with Kivy/Buildozer
- Change color button in Kivy
- "ImportError: Cannot import name spawnu" while building apk using kivy
- CalledProcessError with buildozer and kivy on OSX Yosemite
- Pycharm, virtualenv and kivy setup
- Kivy Recycleview. How to use it?
- using Kivy Garden Graph in KV language
- Retrieve Image from sqlite3 database and directly display on kivy window
- How can I pass object properties to the Kivy .kv file
- Pycharm hangs building skeleton for Kivy environment
Related Questions in BEEWARE
- Difference between Kivy and Toga (Beeware project) for Cross platform in Python
- Dash-plotly deployed as an apk for android or IOS
- how to change the application icon of an app in beeware, python
- Cannot get the emulator running for my Android App using beeware (newbie)
- I was using 'beeware'. While using briefcase create android i got the following permission error
- Beeware Toga confirm_dialog callback error
- Beeware Toga Canvas: working on windows but not on android
- Dynamically update Beeware Toga widgets from outside the class
- Is it not possible to change the font color in Beeware/toga?
- How can I update a Toga progress bar after each download?
- Beeware Toga Selection widget: unable to change text size
- Briefcase configuration error: Configuration file not found
- Beeware ModuleNotFoundError with cv2
- Use of RLock in Beeware Toga app: GUI blocked when running a background thread
- libgirepository-1.0.so.1 error running briefcase dev: Undefined symbol g_string_free_and_clear
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 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.