Why on earth do they shy away from saying the word "Python" anywhere? Seems pretty relevant, considering it's a Python library. It's a pretty important fact for potential users, and one they would probably want to know sooner rather than later.
Personally, any sense of excitement and discovery I had upon visiting the front page was killed pretty flat when I spent a couple of minutes skimming the front page for what it's a library for, visiting 'About' and 'Docs', returning to the front page for a closer look, and finally figuring it out by taking a look at the sample source and noticing the reference to Cython.
The Github readme is much denser, and I think a lot of people would prefer this intro:
> Kivy is a Python library for development of multi-touch enabled media rich applications. The aim is to allow for quick and easy interaction design and rapid prototyping, while making your code reusable and deployable.
> Kivy is written in Python, based on OpenGL and supports different input devices such as: Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch, Apple's products and so on.
Kivy is running on Linux, Windows, MacOSX, Android and IOS. You can run the same code on all supported platforms.
Many parts are written in C using Cython and tested with regression tests.
This is awesome!
Kivy uses natively most inputs protocols and devices like WM_Touch, WM_Pen, Mac OS X Trackpad and Magic Mouse, Mtdev, Linux Kernel HID, TUIO. A multi-touch mouse simulator is included.
The graphics engine is built over OpenGL ES 2, using modern and fast way of doing graphics. The toolkit is coming with more than 20 widgets designed to be extensible.
Well, this addresses atleast some of the issues regarding the future of python that someone else was worrying about a few days ago on HN. Kivy promises to be fast (which is usually the main sourpoint for the be-all do-alls)
"""
Kivy is fast. This applies to both: application development and application execution speeds. We have optimized Kivy in many ways. We implement time-critical functionality on the C level to leverage the power of existing compilers. More importantly, we also use intelligent algorithms to minimize costly operations. Most importantly, we use the GPU wherever it makes sense in our context. The computational power of today’s graphics cards surpasses that of today’s CPUs by far for some tasks and algorithms, especially drawing. That’s why we try to let the GPU do as much of the work as possible, thus increasing performance considerably.
"""
If Kivy wants to become "the primary Python for iOS" rather than just "yet another cross-platform Python implementation which nobody uses for serious iOS projects", they have to nail packaging more convincingly.
We embed the python interpreter with your python app inside an iOS app. Then, we have a bootstrap in objective-c that start the interpreter on your main.py file. ProcessCraft and Deflectouch are made with this approach, and are available on the app store :)
This seems really neat .. I have met a few folks who don't share my enthusiasm for MOAI recently, on the basis of not being able to use much Python (I'm a huge MOAI fan and love Lua) so now there is a great option.
Yes, sorry I didn't include that reference, that is indeed what I meant. I had sort of gotten used to folks on HN knowing what MOAI was when I mentioned it, silly me .. ;)
Anyway, MOAI is also great in this regard: cross-platform, single language development.
how would one start developing cross platform mobile apps with this? From what I have read, they only provide the GUI part? So the logic (GPS, Contacts etc) has to be handled by something else? Anyone knows?
For now, yes. But we are working on it. Recently, we released Pyjnius (http://github.com/kivy/pyjnius) to access dynamically Java from Python. That way, we can access to various Android API without any Java code. We are doing the same with objective-C: pyobjus (http://github.com/kivy/pyobjus), but not yet finished.
Interesting. Might be fun to play now that bigger touchscreens are cheap enough. Need to check how well they're supported under Linux nowadays. Used to be quite sketchy.
Personally, any sense of excitement and discovery I had upon visiting the front page was killed pretty flat when I spent a couple of minutes skimming the front page for what it's a library for, visiting 'About' and 'Docs', returning to the front page for a closer look, and finally figuring it out by taking a look at the sample source and noticing the reference to Cython.
The Github readme is much denser, and I think a lot of people would prefer this intro:
> Kivy is a Python library for development of multi-touch enabled media rich applications. The aim is to allow for quick and easy interaction design and rapid prototyping, while making your code reusable and deployable.
> Kivy is written in Python, based on OpenGL and supports different input devices such as: Mouse, Dual Mouse, TUIO, WiiMote, WM_TOUCH, HIDtouch, Apple's products and so on.