Kivy 1.9.1 released
kivy.org"Kivy is an open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps."
In case anyone else didn't know.
Thanks, because the website, pretty as it is, didn't say anything on the blog page, home page, even the "About" page. I clicked on five pages on the website before getting this.
It's right there on the homepage: http://kivy.org
Which isn't linked from the blog. If you click on the main blog title, it takes you to the main blog page at kivy.org/planet. There is a link to the website in the actual post there but it links to the download page, which doesn't have the description. From there you can click to the main page which has the description.
Are they ashamed of the software or something? I honestly can't comprehend why so many projects are so shy about telling us what they actually are!
Every page should have "an open source Python library for rapid development of applications that make use of innovative user interfaces, such as multi-touch apps." on it. There is no reason not to. Put it in small text under all main titles or something.
Are they ashamed of the software or something? I honestly can't comprehend why so many projects are so shy about telling us what they actually are!
I think the thinking is that, "Hey, this is an announcement for us, and our friends, you know, the folks who know all about this software already!". In general, do you care about an update to some software you don't use?
But, surprise surprise, someone in the in-crowd throws this up on HN and it blows up, and suddenly they have a ton of new, confused, visitors.
I think your idea of putting a summary on each page (including, or perhaps especially, the blog!) is a great idea. Why don't you tell them?
Actually this was exactly my thinking when I wrote it, but having read this thread I'll certainly try to have some clearer introduction on every page.
Having been introduced to Kivy earlier this year as my first python mobile framework I was impressed by how easy it was to prototype with.
From the FAQ:
"be aware that while Kivy will run in Python 3.3+, packaging support is not yet complete. If you plan to create mobile apps for Android or iOS, you should use Python 2.7 for now."
It's been a long time coming, but I expect to merge python3 support into python-for-android within the next couple of days. I'll make an announcement about it at the time.
Thanks!
How are pseudo-native widgets coming along?
How is the Android support in practice?
It works fine, and includes things like the ability to access the Android API (with pyjnius and plyer) but there are some problems that are difficult or impossible to fix. In some cases these aren't important or you can just not care, in others they are an issue.
The major ones that come up are:
- Relatively large APKs, minimum size is about 7MB due to the size of the included python interpreter.
- Non-native widgets, Kivy draws its own widgets using OpenGL. They're quite customisable, but of course you never get behaviour quite like the native ones.
- App startup time. This is down to about a second on newer devices, but on older ones (or if the app does inefficient things before starting up) can be quite a bit longer, especially on the first run when some unpacking is performed.
I've seen some nice examples recently of apps that do a good job with Kivy itself (e.g. demonstrating more themeing than most and using android api functionality), like Kognitivo [1] and Barly [2]. I think these do a good job of showing what Kivy can do in practice. Used the right way it's also very performant for e.g. games (the low level graphics api is a cython layer over opengl), especially with the ability to add your own cython and use libraries like chipmunk. A good example for this is Boardz [3], which uses the Kivent game engine for Kivy [4].
[1] https://play.google.com/store/apps/details?id=org.kognitivo....
[2] https://play.google.com/store/apps/details?id=org.topbanana....
[3] https://play.google.com/store/apps/details?id=org.chozabu.bo...
> - Non-native widgets, Kivy draws its own widgets using OpenGL. They're quite customisable, but of course you never get behaviour quite like the native ones.
And this can make the application entirely unusable for some users. I'm thinking in particular about accessibility for blind users, who need to use a screen reader, though other disabilities are also impacted. Basically, to be accessible, an application's UI components need to implement the platforms' accessibility APIs. Most non-native widgets don't do this, because it's a lot of work that most developers just don't even think about. As far as I can tell from a quick scan of the source, that currently includes Kivy. So beware that if you use Kivy and its non-native widgets, you'll be locking some users, admittedly a small minority, out of your app. Probably OK for a game; not so much for an application that's going to be used in a job or education.
File a bug! They might not even realise.
As a Kivy dev, I've thought about it before on the desktop (it's come up before and a gsoc student did some preliminary investigation for the best way to do it), but I'll admit I didn't realise the implications on Android where actually this support might be harder due to the mismatch with the normal java widget mechanisms. I do think it's important and will try to take a look at it, but it's certainly true for now that Kivy does not have much support for standard accessibility tools, probably particularly on android and ios.
Someone else already did:
Anyone have any examples of a desktop application created with Kivy?
The RaceCapture app is desktop (OSX, Windows, Linux) and Android: https://www.race-capture.com/software