Creating Apps In Kivy Pdf Download
Kivy is an open source framework for developing apps for natural user interfaces such as touch screens and multi-touch displays. The Kivy framework is platform independent. Implementations exist for Android, iOS, Linux, Mac OS-X, and Windows. The programming language Python is used to develop apps based on Kivy. Since Kivy sits on top of OpenGL, it is very well suited for graphics applications such as games or information displays. Kivy can be used both to develop prototypes as well as products that are available through the usual app stores. In this talk you will learn all the basics about the Kivy framework including live demonstrations of some Kivy-based apps. We will also show how you can package Kivy-based apps to distribute via app stores. Some examples for real-world apps shows you how we are using Kivy to develop prototypes and products for health, medicine and biology. Of course, you learn about benefits and limitations of using Kivy for app development.
Discover the world's research
- 20+ million members
- 135+ million publications
- 700k+ research projects
Join for free
Developing Apps for Android
and Other Platforms with Kivy
and Python
Andreas Schreiber <andreas.schreiber@dlr.de>
droidcon 2013, Berlin, 09. April 2013
www.DLR.de • Chart 1 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Outline
•Introduction
•Python
• Kivy
•Demos
•Limitations
•Credits
www.DLR.de • Chart 2 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Me
www.DLR.de • Chart 3 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Scientist,
Head of department
Founder,
CEO
Enthusiastic about
Python
DLR
German Aerospace Center
−Research Institution
−Space Agency
−Project Management Agency
www.DLR.de • Chart 4 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Locations and employees
7400 employees across
32 institutes and facilities at
16 sites.
Offices in Brussels, Paris,
Tokyo and Washington.
~1400 employees develop software
Cologne
Oberpfaffenhofen
Braunschweig
Goettingen
Berlin
Bonn
Neustrelitz
Weilheim
Bremen Trauen
Lampoldshausen
Stuttgart
Stade
Augsburg
Hamburg
Juelich
www.DLR.de • Chart 5 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Python
www.DLR.de • Chart 6 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Python
•General- purpose, high-level programming language
•Object- oriented, aspect - oriented, functional
•Dynamic type system
• Easy-to-learn with clear and expressive syntax
def faculty(x):
if x > 1:
return x * faculty(x - 1)
else :
return 1
Python on Mobile Devices
Early Mobile Development with Python
•PyS60 for Symbian
•Python CE for Windows Mobile
Current Mobile Development with Python
•Scripting Layer for Android (SL4A)
•Python for Android (Py4A)
• PySide / Qt for Android
•WinRT / IronPython for Windows 8
• Kivy…
www.DLR.de • Chart 8 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Kivy
www.DLR.de • Chart 9 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Kivy
•Platform- independent Python -Framework
•Available for
•Android
•iOS
•Meego
•Windows
•Linux
• OSX
•(Raspberry Pi)
•Development in Python on all platforms
•Not emulated!
www.DLR.de • Chart 10 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
kivy.org
Kivy Basics
• Framework for Natural User Interfaces (NUI)
•Touchscreens / Multi - Touch
•GPU accelerated graphics
•Based on OpenGL ES 2.0
•Suitable for prototypes as well as products
•Porting to new platforms is easy
www.DLR.de • Chart 11 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Kivy Software
•Open Source (LGPL ), 7 Core developer
•Source code: https://github.com/kivy
•Documentation: http://kivy.org/docs
•Kivy on Google Play:
https://play.google.com/store/apps/details?id=org.kivy.pygame
www.DLR.de • Chart 12 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Kivy says Hello!
www.DLR.de • Chart 13 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
from kivy.app import App
from kivy.uix.button import Button
class HelloApp(App):
def build(self):
return Button(text='Hello Berlin')
HelloApp().run()
www.DLR.de • Chart 14 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Development with Kivy
•Python for widgets , input , program logic
•Language KV for layout und graphics
•Cython for low-level access to graphic routines
www.DLR.de • Chart 15 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
"Hello Berlin" with KV
www.DLR.de • Chart 16 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
from kivy.app import App
class HelloApp(App):
pass
HelloApp().run()
#:kivy 1.0
Button:
text: 'Hello Berlin'
File hello.kv
defines root widget
Example: Pong
www.DLR.de • Chart 17 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
import kivy
from kivy.app import App
from kivy.uix.widget import Widget
class PongGame(Widget):
pass
class PongApp (App):
def build(self):
return PongGame()
if __name__ == '__main__' :
PongApp().run()
Pong Graphics
www.DLR.de • Chart 18 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
#:kivy 1.6.0
<PongGame>:
canvas:
Rectangle:
pos: self.center_x - 5, 0
size: 10, self.height
Label:
font_size: 70
center_x: root.width / 4
top: root.top - 50
text: "0"
Label:
font_size: 70
center_x: root.width * 3 / 4
top: root.top - 50
text: "0"
Pong
www.DLR.de • Chart 19 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Full example: http://kivy.org/docs/tutorials/pong.html
Accessing Java Classes from Python
•Smartphones have many APIs
•Camera, Compass, Contacts, Location, …
•Access from Python via PyJNIus
•https://github.com/kivy/pyjnius
•Implemented with JNI and Java reflection
Example
www.DLR.de • Chart 20 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
from jnius import autoclass
Hardware = autoclass('org.renpy.android.Hardware')
print 'DPI is', Hardware.getDPI()
Packaging
•Creating packages for Windows, OSX, Android und iOS:
http://kivy.org/docs/guide/packaging.html
www.DLR.de • Chart 21 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Build Tools
Tool chain
•Python-for-android
•Cross compiler for ARM
•Android SDK & NDK
•Python and some Python packages
Buildozer
•Hides the complexity: Downloads, compiles, packages Kivy source code
•https://github.com/kivy/buildozer
www.DLR.de • Chart 22 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
% buildozer android debug deploy run
Demos
www.DLR.de • Chart 23 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Kivy Showcase
www.DLR.de • Chart 24 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Kivy Pictures
www.DLR.de • Chart 25 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Small Dragon Luki
Speech therapy game for kids
www.DLR.de • Chart 26 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Small Dragon Luki
www.DLR.de • Chart 27 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
MQTT Client
www.DLR.de • Chart 28 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Steering Plant Growth
•Webcam takes picture of plants
•Computer detects plant
•Computer generates an image for
lighting
•Light source (e.g., a projector)
illuminates the plant using the
generated image
mobile.cologne > Andreas Schreiber • Plattformübergreifende Apps entwickeln mit Kivy und Python > 08.11.2012 www.DLR.de • Folie 29
www.DLR.de • Chart 30 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
www.DLR.de • Chart 31 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
www.DLR.de • Chart 32 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
www.DLR.de • Chart 33 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Other Examples…
www.DLR.de • Chart 34 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
iOS-App Deflectouch
https://itunes.apple.com/de/app/deflectouch/id505729681
iOS/Android-App ProcessCraft
https://itunes.apple.com/gb/app/processcraft/id526377075
http://showgen.com
Limitations
www.DLR.de • Chart 37 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Missing, but Planned (or In Progress)
User Interface Designer
•Design tool for Kivy Language KV
•Planned for GSoC
Abstraction of mobile APIs
•Platform- independent Python wrapper for platform APIs (Android, iOS,
Linux/Mac/Windows)
• Project Plyer will start as GSoC project maybe
Porting to Raspberry Pi
•Useful for small/cheap standalone systems
•Founded via Crowdsourcing ( bountysource.com )
www.DLR.de • Chart 38 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
Credits
Thanks to the Kivy developers
•Mathieu Virbel (@mathieuvirbel)
•Thomas Hansen ( @hansent )
•Gabriel Pettier ( @tshirtman )
•and many others
www.DLR.de • Chart 39 > droidcon 2013 > A. Schreiber • Developing Apps for Android and Other Platforms with Kivy and Python > 09.04.2013
> droidcon 2013 > A.
Schreiber • Developing
Apps for Android and
Other Platforms with Kivy
and Python > 09.04.2013
www.DLR.de • Chart 40
Questions?
Andreas Schreiber
Twitter: @onyame
http://www.dlr.de/sc
Summary
•Kivy allows platform- independent development of
apps for Android, iOS, Meego, Windows, OSX
and Linux
•Suitable for multi- touch and graphics applications,
such as kiosk systems, exhibits, games, …
... al 2009) project [12] . In their paper, "Developing App for Android and Other Platforms with Kivy and Python" Andreas Schreiber give a demonstration of Kivy-based application and sum-maries Kivy framework [11] kivy is most well known android supporting python toolkit has been since around 1012. kivy dose not specifically designed for mobile support but it focus on cross platform and supporting novel user interface this properties made it support android , IOS as well as desktop use [8]. it draw its GUI using openGL which working essentially same at all platform.kivy android support originally based on Renpy's Android build tool. it help to Create multi touch user interface and python UI framework for rapid development of mobile application [6] . ...
... We use the Kivy because its framework which support the python language and its very easy to integrate with python library[2] [11]. ...
- Swapnil More
- Rishabh Jain
- Harshil Kanakia
In the fastest developing world education is the most important factor in all over the country. Indian Rural teachers have a great responsibility on their shoulders to educate the students without getting technological support. They face various challenges like network problems, lack of technical skills, the burden of multitasking. In this research, paper researchers try to make an application for Indian rural teachers to fight technical challenges and overcome the burden on them.
ResearchGate has not been able to resolve any references for this publication.
Posted by: ismaelismaelmonsaye0269013.blogspot.com
Source: https://www.researchgate.net/publication/259903531_Developing_Apps_for_Android_and_Other_Platforms_with_Kivy_and_Python
Post a Comment for "Creating Apps In Kivy Pdf Download"