So how is the accessibility story? No mentions on the site at all. I only found this https://github.com/kivy/kivy/issues/8596 so seems like not yet implemented. Meaning Kivy is not yet a good choice for user-facing apps. It is so frustrating to see all the new UI frameworks and they fall apart if you just ask about accessibility features that should be absolute standard in 2024.
Is there a cross-platform accessibility library? I can tell you that developing a cross-platform GUI framework is a gigantic can of worms fraught with forced yakshaving, no documentarion, no support, and endless bugs across the stack even down into the OS and GPU driver stack. So in my opinion, everyone asking for accessibility features on every GUI framework announcement should get together and make a GLFW for acces…
Kivy – a cross platform Python UI framework
81–90 of 107 posts
Re: Kivy – a cross platform Python UI framework
#82Building data-centric cross-platform apps while staying (mostly [1]) within a single language ecosystem should be less friction and overhead than juggling multiple universes via API's, different runtimes and what not.
What kind of apps would benefit from this "single language" approach? For sure not the more open ended, exploratory data science type tasks. These are better delivered via notebook workflows, which, besides flexibility, enable better reproducibility and auditing. Also probably nothing that requires high performance interactive graphics.
But while not solving all UI problems for all people, there should be still plenty of relevant use cases where simplicity and fast prototyping give Kivy an edge when the task is to make algorithms and related tools available to non-technical users.
[1] ofcourse the actual number crunching might be done by yet another layer (typically C/C++) but that layer is essentially hidden from the data orchestation and UI integration that would be the Kivy app focus.
Re: Kivy – a cross platform Python UI framework
#83From a packaging point of view Kivy is not great.
Re: Kivy – a cross platform Python UI framework
#84Earlier quoted context omitted.
My ideal situation is that the system should maintain authoritative versions of every package and version that is ever requested, and they should not need to be shipped. Multiple versions of a package should coexist. /usr/lib/python3.12/torch/2.1.0/ /usr/lib/python3.12/torch/2.1.1/ /usr/lib/python3.12/torch/2.1.2/ When a package requests 2.1.1 it fetches it right out of there, installing from PyPI if it doesn't. The…
ML researchers might be thinking that their paper will be obsolete next month so why bother taking time to make their coding environment reproducible.
At this point, venvs are the best workaround, but we can still wish for something better. As someone commented further up, being able to “import pytorch==2.0” and have multiple library versions coexist would go a long way.
Re: Kivy – a cross platform Python UI framework
#85Re: Kivy – a cross platform Python UI framework
#86It’s 2024. None of the screenshots under the gallery are compelling or even acceptable these days. https://kivy.org/gallery.html Electron thus far seems to be the king of “desktop” ui.
For people that want to use the webstack, yes. But that's not everyone.
A fast, fairly simple GUI system thats GPU accelerated is pretty rare
even rarer if you want python support.
Re: Kivy – a cross platform Python UI framework
#87A) this is most European website I’ve ever seen. I couldn’t tell you exactly why… perhaps it’s the train subconsciously affecting me. 2) this is first time I’ve ever seen mobile included as part of “Cross-Platform”, that’s pretty awesome. We’re living in the future, friends! Tho it also makes me shudder at the thought of the phrase “QT app development”… III) At this point, why not just use web? What is a “truly cross…
nice, I love casual exceptionalism in the morning.
> At this point, why not just use web
Because not everyone uses a "web stack". Moreover trying to learn a webstack is pretty hard. Sure JS is easy, but everything on top to make it more "productive" changes every 6 months. I mean yeah I could just use react, but Urgh, its nasty.
However the killer issue issue is hardware acceleration. Its possible to get kivy running at 60 FPS on a pi3. getting something to run at 60fps on web for the pi3 is bloody hard. Even though its python, it runs really fast, something not really possible in the browser.
Re: Kivy – a cross platform Python UI framework
#88Earlier quoted context omitted.
I think a lot of people dislike html/web-based apps, and they are not as responsive in some cases as well. I have seen some mobile browser implementations that explicitly put large delays (hundreds of ms) into their touch handlers for example. You can see a similar delay in a side-by-side comparison video here https://www.youtube.com/watch?v=Z4CwVN9RRbE
Kivy's marketing seems to be targeting LOB apps. If I was going to develop one of those, I'd optimize for something standardized and easy to maintain (HTML/JS) vs. the performance benefits of a native UX or cross-platform framework.
Everything is GL accelerated, so the UI is snappy and fast.
Re: Kivy – a cross platform Python UI framework
#89Katrain uses Kivy and is problematic to package and upgrade because of it, on rolling release distros. When installing it with pip, it partially works. From a packaging point of view Kivy is not great.
Re: Kivy – a cross platform Python UI framework
#90Earlier quoted context omitted.
I still use tkinter for apps that I make for my own use. Those are often for lab automation, where a primitive GUI lets me avoid needing 3 hands while running an experiment, and the support for live graphs is extremely useful. For stuff that I'm likely to share with others, I've been moving over to Flet, because it lets me build things like webapps and stand-alone Windows apps. Both of those things can eliminate the…
I think it's possible to use tkinter to develop even modern apps which don't look primitive, there are many open source projects which have done that including the IDLE editor itself, a part of core python project. The only issue is that it sometimes becomes excruciatingly difficult or painful to even perform some very little non-trivial things (like customizing a data-grid with a different style or having multiple t…