Live data from Hacker News

Kivy: Develop multi-touch enabled Python apps

kivy.org

21–30 of 49 posts

Re: Kivy: Develop multi-touch enabled Python apps

#21
post #2

Kivy seems well designed and easy to use - not just for multi-touch but general cross platform UI apps, and phone apps. My only concern is that the community seems small and the site a little dated?

Possibly, but I've actually been hunting for a cross-platform, easy-to-build UI kit for Python, and this certainly seems easier than Tk or Qt. So it fits the bill for general cross-platform use ;-)

It seems like about once a year I'll get the craving to build Python desktop GUIs, and so far I've never been able to get PyQt installed on my Mac.

Re: Kivy: Develop multi-touch enabled Python apps

#22
post #19
post #18

Kivy's multiplatform support is impressive. An application I'm working on at the moment runs in X on Ubuntu, on Microsoft Windows and on a Raspberry Pi 3. On the latter Kivy draws the UI using the frame buffer directly, without X. Kivy does have its quirks and oddities. From the top of my head: - Want to set the background color on a widget? Gotta drop into GL-like drawcalls and add a coloured rectangle below your wi…

> Kivy's multiplatform support is impressive. An application I'm working on at the moment runs in X on Ubuntu, on Microsoft Windows and on a Raspberry Pi 3. On the latter Kivy draws the UI using the frame buffer directly, without X. Isn't that the same as with most other multiplatform toolkits? GTK and Qt both support framebuffer rendering, IIRC.

Do you have a reference for GTK supporting FB rendering?

The best I could find was this:

> This current DirectFB GTK+ 3.12 port lacks drag and drop, selection support, cursor shapes, full-screen support, geometry hints, properties, and many other features, but according to the developers maintaining this out-of-tree GTK+ code it's "basically usable" for running modern GTK apps on DirectFB.

Source: https://www.phoronix.com/scan.php?page=news_item&px=MTc2OTE

Re: Kivy: Develop multi-touch enabled Python apps

#23
post #19
post #18

Kivy's multiplatform support is impressive. An application I'm working on at the moment runs in X on Ubuntu, on Microsoft Windows and on a Raspberry Pi 3. On the latter Kivy draws the UI using the frame buffer directly, without X. Kivy does have its quirks and oddities. From the top of my head: - Want to set the background color on a widget? Gotta drop into GL-like drawcalls and add a coloured rectangle below your wi…

> Kivy's multiplatform support is impressive. An application I'm working on at the moment runs in X on Ubuntu, on Microsoft Windows and on a Raspberry Pi 3. On the latter Kivy draws the UI using the frame buffer directly, without X. Isn't that the same as with most other multiplatform toolkits? GTK and Qt both support framebuffer rendering, IIRC.

No to counter anything, just to add - Android and IOS are also supported.

Re: Kivy: Develop multi-touch enabled Python apps

#24
post #18

Kivy's multiplatform support is impressive. An application I'm working on at the moment runs in X on Ubuntu, on Microsoft Windows and on a Raspberry Pi 3. On the latter Kivy draws the UI using the frame buffer directly, without X. Kivy does have its quirks and oddities. From the top of my head: - Want to set the background color on a widget? Gotta drop into GL-like drawcalls and add a coloured rectangle below your wi…

i recently tried to develop a tiny project with it as well...

i started on my desktop and simply loved it. later, i checked out my repo from my chromebook with crouton/trusty ubuntu...

it only draws a transperent rectangle there

Re: Kivy: Develop multi-touch enabled Python apps

#25

Earlier quoted context omitted.

Possibly, but I've actually been hunting for a cross-platform, easy-to-build UI kit for Python, and this certainly seems easier than Tk or Qt. So it fits the bill for general cross-platform use ;-)

It seems like about once a year I'll get the craving to build Python desktop GUIs, and so far I've never been able to get PyQt installed on my Mac.

What trouble have you had with PyQt?

I've never had any issue installing PyQt (or PySide) whatsoever, though I usually use Conda [1] with the Anaconda Python distribution, rather than the system default (which you shouldn't use, IIRC) or the official one from Python.org.

The easiest way to get started is probably with the Miniconda [2] Python distribution.

I'm not sure if Conda pulls down Qt, though, or if you have to install that yourself (e.g. via Homebrew).

[1]: https://github.com/conda/conda [2]: http://conda.pydata.org/miniconda.html

Re: Kivy: Develop multi-touch enabled Python apps

#26
post #2

Kivy seems well designed and easy to use - not just for multi-touch but general cross platform UI apps, and phone apps. My only concern is that the community seems small and the site a little dated?

Possibly, but I've actually been hunting for a cross-platform, easy-to-build UI kit for Python, and this certainly seems easier than Tk or Qt. So it fits the bill for general cross-platform use ;-)

Why do you find this this easier than PyQt/PySide? You can use Qt Creator to design interfaces graphically, and bundle and distribute your application with PyInstaller.

This will also let you use the given platform's native interface widgets.

Re: Kivy: Develop multi-touch enabled Python apps

#27
I do a lot of programming in Python, and found Kivy to be easy to use and thought it was pretty cool when I tried it out a while ago.

However: Why would one want to use Kivy for desktop interfaces (as I see many comments mention), rather than native (e.g. Qt) or at least close to native UI-frameworks?

I think Kivy looks great for prototyping, experimental interfaces, and such, but I don't see why I would use it over something that lets me use native interface widgets.

Re: Kivy: Develop multi-touch enabled Python apps

#28
post #27

I do a lot of programming in Python, and found Kivy to be easy to use and thought it was pretty cool when I tried it out a while ago. However: Why would one want to use Kivy for desktop interfaces (as I see many comments mention), rather than native (e.g. Qt) or at least close to native UI-frameworks? I think Kivy looks great for prototyping, experimental interfaces, and such, but I don't see why I would use it over…

I would use it if:

  * I was making "universal" app for mobile and desktop.
  * The app was intended for a Kiosk computer with touch screen.
  * I was concerned about Qt licensing.

Re: Kivy: Develop multi-touch enabled Python apps

#29
post #28
post #27

I do a lot of programming in Python, and found Kivy to be easy to use and thought it was pretty cool when I tried it out a while ago. However: Why would one want to use Kivy for desktop interfaces (as I see many comments mention), rather than native (e.g. Qt) or at least close to native UI-frameworks? I think Kivy looks great for prototyping, experimental interfaces, and such, but I don't see why I would use it over…

I would use it if: * I was making "universal" app for mobile and desktop. * The app was intended for a Kiosk computer with touch screen. * I was concerned about Qt licensing.

Good points!

I may not have conveyed it properly, but I was mainly concerned with traditional desktop applications.

Regarding Qt licensing concerns: couldn't you just use PySide instead?

Edit: Sorry, was mixing up Qt and PyQt. Qt itself is dual-licensed (commercial/LGPL).

Re: Kivy: Develop multi-touch enabled Python apps

#30
post #8

Can anyone comment on specifically how Kivy is better than the other options available (e.g., QT?). How have other peoples' experiences been? Some comments say small community, but that seems like it could be a large drawback honestly. Does that mean, for example, there are few(er) stack overflow posts about it, and you are likely to run into some painful issues along the way? How well does it integrate with matplotl…

QT is in every way a better choice, except for the license.

Kivy is great, fun to use, but it suffers for the same thing that many python applications do: package management is a pain, packing is difficult (especially dependencies with c libraries), applications are slow, there are no threads (any action locks the UI), the bridge to native code is quite troublesome (especially on IOS), it uses a custom DSL for UI layout and the 'non native' widgets can be clunky.

Don't get me wrong; it's a fun platform, but really have a good play with it before you decide to use it for anything serious, especially for mobile targets.

(QT isn't perfect either; but its a rock solid platform for building real applications in. Ultimately though, you should really suck it up and write native UI for each platform and only share underlying application logic; if you don't you're just going down the road of various different levels of clunkiness on every platform).

Post reply on HN