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
|
2013-02-21 18:22:58 +00:00
|
|
|
other solutions, this document is for you.
|
2011-01-10 23:13:28 +00:00
|
|
|
|
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
|
2013-05-28 19:57:35 +00:00
|
|
|
(or frameworks, or platforms) available out there -- for free. You have Qt and
|
|
|
|
Flash, to name just two good choices for application development. Many of
|
|
|
|
these numerous solutions already support Multi-Touch, so what is it that makes
|
|
|
|
Kivy special and worth using?
|
2011-01-10 23:13:28 +00:00
|
|
|
|
|
|
|
|
2011-01-29 20:17:05 +00:00
|
|
|
Fresh
|
|
|
|
~~~~~
|
|
|
|
Kivy is made for today and tomorrow. Novel input methods such as Multi-Touch
|
2013-05-28 19:57:35 +00:00
|
|
|
have become increasingly important. We created Kivy from scratch, specifically
|
|
|
|
for this kind of interaction. That means we were able to rethink many things in
|
|
|
|
terms of human computer interaction, whereas older (not to mean 'outdated',
|
|
|
|
rather 'well-established') toolkits carry their legacy, which is often a burden.
|
2011-01-29 20:17:05 +00:00
|
|
|
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
|
|
|
|
~~~~
|
|
|
|
|
2013-05-28 19:57:35 +00:00
|
|
|
Kivy is fast. This applies to both *application development* and *application
|
2011-01-29 20:17:05 +00:00
|
|
|
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
|
2013-08-15 08:34:23 +00:00
|
|
|
costly operations. We also 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.
|
2011-01-29 20:17:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
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
|
2013-05-28 19:57:35 +00:00
|
|
|
protocols, sometimes even before they were released. Lastly, Kivy is also
|
2011-01-29 20:17:05 +00:00
|
|
|
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.
|
2013-02-21 18:22:58 +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
|
2013-02-21 18:22:58 +00:00
|
|
|
incredibly versatile and powerful, yet easy to use. In addition, we created our
|
2011-01-29 20:17:05 +00:00
|
|
|
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.
|