2011-01-29 20:17:05 +00:00
|
|
|
.. _philosophy:
|
|
|
|
|
2011-01-10 23:13:28 +00:00
|
|
|
Philosophy
|
|
|
|
==========
|
|
|
|
|
2012-07-08 09:36:49 +00:00
|
|
|
In case you are wondering what Kivy is all about and what sets it apart from
|
2011-01-10 23:13:28 +00:00
|
|
|
different solutions, this document is for you.
|
|
|
|
|
2011-01-29 20:17:05 +00:00
|
|
|
|
2011-01-10 23:13:28 +00:00
|
|
|
Why bother?
|
|
|
|
-----------
|
|
|
|
|
2012-07-08 09:36:49 +00:00
|
|
|
Why would you want to use Kivy? After all, there are many great toolkits
|
|
|
|
(or frameworks, or platforms) available out there -- for free. You have Qt and Flash,
|
|
|
|
to name just two good choices for application development, and many of
|
2011-01-10 23:13:28 +00:00
|
|
|
these numerous solutions already support Multi-Touch.
|
|
|
|
So what is it that makes Kivy special and worth using?
|
|
|
|
|
|
|
|
|
2011-01-29 20:17:05 +00:00
|
|
|
Fresh
|
|
|
|
~~~~~
|
|
|
|
Kivy is made for today and tomorrow. Novel input methods such as Multi-Touch
|
|
|
|
become increasingly important. We created Kivy from scratch, specifically for
|
|
|
|
this kind of interaction. That means we were able to rethink many things in
|
2012-07-08 09:36:49 +00:00
|
|
|
terms of human computer interaction whereas older (not saying 'outdated'; rather
|
2011-01-29 20:17:05 +00:00
|
|
|
'well-established') toolkits carry their legacy, which is often a burden.
|
|
|
|
We're not trying to force this new approach to using a computer into the corset
|
|
|
|
of existing models (say single-pointer mouse interaction).
|
|
|
|
We want to let it flourish and let you explore the possibilities.
|
|
|
|
*This* is what really sets Kivy apart.
|
|
|
|
|
|
|
|
|
|
|
|
Fast
|
|
|
|
~~~~
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
Flexible
|
|
|
|
~~~~~~~~
|
|
|
|
|
|
|
|
Kivy is flexible. This means it can be run on *a variety of different devices*,
|
|
|
|
including Android powered smartphones and tablets. We support *all major
|
|
|
|
operating systems* (Windows, Linux, OS X). Being flexible also means that Kivy's
|
|
|
|
fast-paced development allows it to *adapt to new technologies quickly*.
|
|
|
|
More than once have we added support for new external devices and software
|
|
|
|
protocols; sometimes even before they were released. Lastly, Kivy is also
|
|
|
|
flexible in that it is possible to use it in combination with a great number of
|
|
|
|
different third-party solutions. For example, on Windows we support WM_TOUCH,
|
|
|
|
which means that any device that has Windows 7 Pen & Touch drivers will *just
|
|
|
|
work* with Kivy. On OS X you can use Apple's Multi-Touch capable devices, such
|
|
|
|
as trackpads and mice. On Linux, you can use HID kernel input events.
|
2012-07-08 09:36:49 +00:00
|
|
|
In addition to that, we support TUIO (Tangible User Interface Objects) and a number of other input sources.
|
2011-01-29 20:17:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
Focused
|
|
|
|
~~~~~~~
|
|
|
|
|
|
|
|
Kivy is focused. You can write a simple application with a few lines of code.
|
2012-07-08 09:36:49 +00:00
|
|
|
Kivy programs are created using the *Python* programming language, which is
|
2011-01-29 20:17:05 +00:00
|
|
|
incredibly versatile, powerful yet easy to use. In addition, we created our
|
|
|
|
own description language, the *Kivy Language*, for creating sophisticated user
|
|
|
|
interfaces. This language allows you to set up, connect and arrange your
|
|
|
|
application elements quickly. We feel that allowing you to focus on the
|
|
|
|
essence of your application is more important than forcing you to fiddle with
|
|
|
|
compiler settings. We took that burden off your shoulders.
|
|
|
|
|
|
|
|
|
|
|
|
Funded
|
|
|
|
~~~~~~
|
|
|
|
|
|
|
|
Kivy is actively developed by professionals in their field. Kivy is a
|
|
|
|
community-influenced, professionally developed and commercially backed
|
|
|
|
solution. Some of our core developers develop Kivy for a living.
|
|
|
|
Kivy is here to stay. It's not a small, vanishing student project.
|
|
|
|
|
|
|
|
|
|
|
|
Free
|
|
|
|
~~~~
|
|
|
|
Kivy is free to use. You don't have to pay for it. You don't even have to pay
|
|
|
|
for it if you're making money out of selling an application that uses Kivy.
|
2011-01-10 23:13:28 +00:00
|
|
|
|