SlideShare a Scribd company logo
LINUXDAY 2013

Programmazione Android
per esseri umani
Roberto Bettazzoni

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

ERLUG
1
LINUXDAY 2013

print “hello world”

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

2
LINUXDAY 2013

www.python.it

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

3
LINUXDAY 2013

Qpython: python for Android

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

4
LINUXDAY 2013

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

5
LINUXDAY 2013

import web
webapp=web.application(('/(.*)', 'hello'), globals())
class hello:
def GET(self, name):
return "<html><body>Hello world</body></html>"
if __name__ == "__main__":
webapp.run()

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

6
LINUXDAY 2013

SL4A Script Layer for Android

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

7
LINUXDAY 2013

SL4A Script Layer for Android
Documentazione
sulle API

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

8
LINUXDAY 2013

import androidhelper
droid = androidhelper.Android()
droid.makeToast("Hello world")

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

9
LINUXDAY 2013

import androidhelper
droid = androidhelper.Android()
droid.makeToast("Hello world")

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

10
LINUXDAY 2013

import androidhelper
droid = androidhelper.Android()
droid.ttsSpeak("Hello world")

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

11
LINUXDAY 2013

import androidhelper
droid = androidhelper.Android()
droid.smsSend(“+39333666999”,
"Hello world")

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

12
LINUXDAY 2013

import androidhelper
droid = androidhelper.Android()
droid.sendEmail(
to=“you@youraddress.org”,
subject=”Ciao”,
body="Hello world")

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

13
LINUXDAY 2013

import smtplib
from email.mime.text import MIMEText
me = "roberto@bettazzoni.it"
you= "you@youraddress.org"
msg = MIMEText("Hello world")
msg['Subject'] = "Ciao"
msg['From'] = me
msg['To'] = you
s = smtplib.SMTP('127.0.0.1')
s.sendmail(me, [you], msg.as_string())
s.quit()

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

14
LINUXDAY 2013

import androidhelper, web
urls = ('/(.*)', 'hello')
App = web.application(urls, globals())
Droid = androidhelper.Android()
class hello:
def GET(self, name):
location = Droid.getLastKnownLocation().result
location = location.get('network', location.get('gps'))
return "<html><body><h3>I am here</h3> <img src=" +
gmapUrl(location['latitude'],location['longitude'])+
"/></body></html>"
if __name__ == "__main__":
App.run()

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

15
LINUXDAY 2013

def gmapUrl(latitude, longitude):
return "'http://maps.googleapis.com/maps/api/staticmap?center=%s,
%s&zoom=12&size=400x400&sensor=false&markers=color:green|label:I|%s,%s'"
% (
latitude, longitude, latitude, longitude)

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

16
LINUXDAY 2013

Interfaccia Utente

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

17
LINUXDAY 2013

kivy.org

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

18
LINUXDAY 2013

from kivy.app import App
from kivy.uix.label import Label
class HelloWorldApp(App):
def build(self):
return Label(text='Hello World')
if __name__ == '__main__':
HelloWorldApp().run()

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

19
LINUXDAY 2013

from kivy.app import App
from kivy.uix.button import Button
hw='Hello World'
class HelloWorldApp(App):
def build(self):
b = Button(text=hw, font_size=70)
def callback(instance):
b.text=hw if b.text[0]!="H" else "Ciao mondo"
b.bind(on_press=callback)
return b
if __name__ == '__main__':
HelloWorldApp().run()
Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

20
LINUXDAY 2013

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.uix.label import Label
class HelloWorld(Widget):
def on_touch_down(self, touch):
with self.canvas:
Label(font_size=50, pos=(touch.x, touch.y),
text = "Hello World")
class HelloWorldApp(App):
def build(self):
return HelloWorld()
if __name__ == '__main__':
HelloWorldApp().run()
Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

21
LINUXDAY 2013

GRAZIE PER L'ATTENZIONE
Le slides e le riprese audio/video
dell'intervento saranno disponibili su:

http://erlug.linux.it/linuxday/2013/

Bologna, 2013-10-26

ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it

Roberto Bettazzoni, Programmazione Android per esseri umani.

22

More Related Content

Similar to Programmazione android per esseri umani

Dessi Tech Day2008 Cagliari
Dessi Tech Day2008 CagliariDessi Tech Day2008 Cagliari
Dessi Tech Day2008 Cagliari
Massimiliano Dessì
 
Android Bluetooth Hacking
Android Bluetooth HackingAndroid Bluetooth Hacking
Android Bluetooth Hacking
Stefano Sanna
 
Android
AndroidAndroid
Android
Stefano Sanna
 
Android programming (ita)
Android programming (ita)Android programming (ita)
Android programming (ita)
Vinu Iaconissi
 
Android, panoramica e sviluppo
Android, panoramica e sviluppoAndroid, panoramica e sviluppo
Android, panoramica e sviluppo
Lorenzo Braghetto
 
Presentazione+Android
Presentazione+AndroidPresentazione+Android
Presentazione+Android
Nicola Pedot
 
Openstreetmap, mappe a contenuto libero - Linux day 2010 - Università Salerno
Openstreetmap, mappe a contenuto libero - Linux day 2010 - Università SalernoOpenstreetmap, mappe a contenuto libero - Linux day 2010 - Università Salerno
Openstreetmap, mappe a contenuto libero - Linux day 2010 - Università Salerno
Infoweblan
 
Prototipo3 - limulo at electropark 2013
Prototipo3 - limulo at electropark 2013Prototipo3 - limulo at electropark 2013
Prototipo3 - limulo at electropark 2013
Limulo
 
User Group e Community : quello che possono fare per te, quello che puoi fare...
User Group e Community : quello che possono fare per te, quello che puoi fare...User Group e Community : quello che possono fare per te, quello che puoi fare...
User Group e Community : quello che possono fare per te, quello che puoi fare...
Codemotion
 
i-BIO_verifica_ispettiva_20_marzo_2014
i-BIO_verifica_ispettiva_20_marzo_2014i-BIO_verifica_ispettiva_20_marzo_2014
i-BIO_verifica_ispettiva_20_marzo_2014
Massimo Natale
 
ICT: Unisob Android App
ICT: Unisob Android App ICT: Unisob Android App
ICT: Unisob Android App
Andrea Apolito
 
follow-app BOOTCAMP 3: Android
follow-app BOOTCAMP 3: Androidfollow-app BOOTCAMP 3: Android
follow-app BOOTCAMP 3: Android
QIRIS
 
7. Mashup
7. Mashup7. Mashup
7. Mashup
Roberto Polillo
 

Similar to Programmazione android per esseri umani (14)

Dessi Tech Day2008 Cagliari
Dessi Tech Day2008 CagliariDessi Tech Day2008 Cagliari
Dessi Tech Day2008 Cagliari
 
Android Bluetooth Hacking
Android Bluetooth HackingAndroid Bluetooth Hacking
Android Bluetooth Hacking
 
Android
AndroidAndroid
Android
 
Android programming (ita)
Android programming (ita)Android programming (ita)
Android programming (ita)
 
Android, panoramica e sviluppo
Android, panoramica e sviluppoAndroid, panoramica e sviluppo
Android, panoramica e sviluppo
 
Presentazione+Android
Presentazione+AndroidPresentazione+Android
Presentazione+Android
 
Openstreetmap, mappe a contenuto libero - Linux day 2010 - Università Salerno
Openstreetmap, mappe a contenuto libero - Linux day 2010 - Università SalernoOpenstreetmap, mappe a contenuto libero - Linux day 2010 - Università Salerno
Openstreetmap, mappe a contenuto libero - Linux day 2010 - Università Salerno
 
Prototipo3 - limulo at electropark 2013
Prototipo3 - limulo at electropark 2013Prototipo3 - limulo at electropark 2013
Prototipo3 - limulo at electropark 2013
 
User Group e Community : quello che possono fare per te, quello che puoi fare...
User Group e Community : quello che possono fare per te, quello che puoi fare...User Group e Community : quello che possono fare per te, quello che puoi fare...
User Group e Community : quello che possono fare per te, quello che puoi fare...
 
i-BIO_verifica_ispettiva_20_marzo_2014
i-BIO_verifica_ispettiva_20_marzo_2014i-BIO_verifica_ispettiva_20_marzo_2014
i-BIO_verifica_ispettiva_20_marzo_2014
 
ICT: Unisob Android App
ICT: Unisob Android App ICT: Unisob Android App
ICT: Unisob Android App
 
follow-app BOOTCAMP 3: Android
follow-app BOOTCAMP 3: Androidfollow-app BOOTCAMP 3: Android
follow-app BOOTCAMP 3: Android
 
7. Mashup
7. Mashup7. Mashup
7. Mashup
 
Tesi Forcolin Fabio
Tesi Forcolin FabioTesi Forcolin Fabio
Tesi Forcolin Fabio
 

More from Roberto Bettazzoni

The mythical technical debt. (Brooks, please, forgive me)
The mythical technical debt. (Brooks, please, forgive me)The mythical technical debt. (Brooks, please, forgive me)
The mythical technical debt. (Brooks, please, forgive me)
Roberto Bettazzoni
 
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup RemotoGiornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Roberto Bettazzoni
 
Complexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test typesComplexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test types
Roberto Bettazzoni
 
Why you need to change your way of working
Why you need to change your way of workingWhy you need to change your way of working
Why you need to change your way of working
Roberto Bettazzoni
 
TDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding DojoTDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding Dojo
Roberto Bettazzoni
 
Presentation of agile engineering practices
Presentation of agile engineering practicesPresentation of agile engineering practices
Presentation of agile engineering practices
Roberto Bettazzoni
 
Unit test in a nutshell
Unit test in a nutshellUnit test in a nutshell
Unit test in a nutshell
Roberto Bettazzoni
 
Presentation TDD in Python
Presentation TDD in PythonPresentation TDD in Python
Presentation TDD in Python
Roberto Bettazzoni
 
Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano) Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Roberto Bettazzoni
 
Pair programming and pair training
Pair programming and pair trainingPair programming and pair training
Pair programming and pair training
Roberto Bettazzoni
 
Presentazione eXtreme Programming
Presentazione eXtreme ProgrammingPresentazione eXtreme Programming
Presentazione eXtreme Programming
Roberto Bettazzoni
 
Agile e Open Source
Agile e Open SourceAgile e Open Source
Agile e Open Source
Roberto Bettazzoni
 
Esempio di code kata
Esempio di code kataEsempio di code kata
Esempio di code kata
Roberto Bettazzoni
 
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Roberto Bettazzoni
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)
Roberto Bettazzoni
 
Scrum in a nutshell
Scrum in a nutshellScrum in a nutshell
Scrum in a nutshell
Roberto Bettazzoni
 
The BDD live show (ITA)
The BDD live show (ITA)The BDD live show (ITA)
The BDD live show (ITA)
Roberto Bettazzoni
 
Useful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanUseful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and Kanban
Roberto Bettazzoni
 

More from Roberto Bettazzoni (18)

The mythical technical debt. (Brooks, please, forgive me)
The mythical technical debt. (Brooks, please, forgive me)The mythical technical debt. (Brooks, please, forgive me)
The mythical technical debt. (Brooks, please, forgive me)
 
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup RemotoGiornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
Giornat Mondiale della Retrospettiva 2020 - Riassunto Meetup Remoto
 
Complexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test typesComplexity indicators: estimation precision and test types
Complexity indicators: estimation precision and test types
 
Why you need to change your way of working
Why you need to change your way of workingWhy you need to change your way of working
Why you need to change your way of working
 
TDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding DojoTDD Dojo - Test Driven Development Coding Dojo
TDD Dojo - Test Driven Development Coding Dojo
 
Presentation of agile engineering practices
Presentation of agile engineering practicesPresentation of agile engineering practices
Presentation of agile engineering practices
 
Unit test in a nutshell
Unit test in a nutshellUnit test in a nutshell
Unit test in a nutshell
 
Presentation TDD in Python
Presentation TDD in PythonPresentation TDD in Python
Presentation TDD in Python
 
Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano) Cynefin Lego Game Agenda (versione 2.0 in Italiano)
Cynefin Lego Game Agenda (versione 2.0 in Italiano)
 
Pair programming and pair training
Pair programming and pair trainingPair programming and pair training
Pair programming and pair training
 
Presentazione eXtreme Programming
Presentazione eXtreme ProgrammingPresentazione eXtreme Programming
Presentazione eXtreme Programming
 
Agile e Open Source
Agile e Open SourceAgile e Open Source
Agile e Open Source
 
Esempio di code kata
Esempio di code kataEsempio di code kata
Esempio di code kata
 
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
Introduzione alle metodologie e pratiche Agili ... ma l'agile c'entra qualcos...
 
Una fugace occhiata al Test Driven Development (2006)
Una fugace occhiata al Test Driven Development  (2006)Una fugace occhiata al Test Driven Development  (2006)
Una fugace occhiata al Test Driven Development (2006)
 
Scrum in a nutshell
Scrum in a nutshellScrum in a nutshell
Scrum in a nutshell
 
The BDD live show (ITA)
The BDD live show (ITA)The BDD live show (ITA)
The BDD live show (ITA)
 
Useful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and KanbanUseful Lean Tools: Value Stream Mapping and Kanban
Useful Lean Tools: Value Stream Mapping and Kanban
 

Programmazione android per esseri umani

  • 1. LINUXDAY 2013 Programmazione Android per esseri umani Roberto Bettazzoni Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. ERLUG 1
  • 2. LINUXDAY 2013 print “hello world” Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 2
  • 3. LINUXDAY 2013 www.python.it Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 3
  • 4. LINUXDAY 2013 Qpython: python for Android Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 4
  • 5. LINUXDAY 2013 Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 5
  • 6. LINUXDAY 2013 import web webapp=web.application(('/(.*)', 'hello'), globals()) class hello: def GET(self, name): return "<html><body>Hello world</body></html>" if __name__ == "__main__": webapp.run() Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 6
  • 7. LINUXDAY 2013 SL4A Script Layer for Android Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 7
  • 8. LINUXDAY 2013 SL4A Script Layer for Android Documentazione sulle API Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 8
  • 9. LINUXDAY 2013 import androidhelper droid = androidhelper.Android() droid.makeToast("Hello world") Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 9
  • 10. LINUXDAY 2013 import androidhelper droid = androidhelper.Android() droid.makeToast("Hello world") Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 10
  • 11. LINUXDAY 2013 import androidhelper droid = androidhelper.Android() droid.ttsSpeak("Hello world") Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 11
  • 12. LINUXDAY 2013 import androidhelper droid = androidhelper.Android() droid.smsSend(“+39333666999”, "Hello world") Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 12
  • 13. LINUXDAY 2013 import androidhelper droid = androidhelper.Android() droid.sendEmail( to=“you@youraddress.org”, subject=”Ciao”, body="Hello world") Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 13
  • 14. LINUXDAY 2013 import smtplib from email.mime.text import MIMEText me = "roberto@bettazzoni.it" you= "you@youraddress.org" msg = MIMEText("Hello world") msg['Subject'] = "Ciao" msg['From'] = me msg['To'] = you s = smtplib.SMTP('127.0.0.1') s.sendmail(me, [you], msg.as_string()) s.quit() Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 14
  • 15. LINUXDAY 2013 import androidhelper, web urls = ('/(.*)', 'hello') App = web.application(urls, globals()) Droid = androidhelper.Android() class hello: def GET(self, name): location = Droid.getLastKnownLocation().result location = location.get('network', location.get('gps')) return "<html><body><h3>I am here</h3> <img src=" + gmapUrl(location['latitude'],location['longitude'])+ "/></body></html>" if __name__ == "__main__": App.run() Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 15
  • 16. LINUXDAY 2013 def gmapUrl(latitude, longitude): return "'http://maps.googleapis.com/maps/api/staticmap?center=%s, %s&zoom=12&size=400x400&sensor=false&markers=color:green|label:I|%s,%s'" % ( latitude, longitude, latitude, longitude) Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 16
  • 17. LINUXDAY 2013 Interfaccia Utente Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 17
  • 18. LINUXDAY 2013 kivy.org Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 18
  • 19. LINUXDAY 2013 from kivy.app import App from kivy.uix.label import Label class HelloWorldApp(App): def build(self): return Label(text='Hello World') if __name__ == '__main__': HelloWorldApp().run() Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 19
  • 20. LINUXDAY 2013 from kivy.app import App from kivy.uix.button import Button hw='Hello World' class HelloWorldApp(App): def build(self): b = Button(text=hw, font_size=70) def callback(instance): b.text=hw if b.text[0]!="H" else "Ciao mondo" b.bind(on_press=callback) return b if __name__ == '__main__': HelloWorldApp().run() Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 20
  • 21. LINUXDAY 2013 from kivy.app import App from kivy.uix.widget import Widget from kivy.uix.label import Label class HelloWorld(Widget): def on_touch_down(self, touch): with self.canvas: Label(font_size=50, pos=(touch.x, touch.y), text = "Hello World") class HelloWorldApp(App): def build(self): return HelloWorld() if __name__ == '__main__': HelloWorldApp().run() Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 21
  • 22. LINUXDAY 2013 GRAZIE PER L'ATTENZIONE Le slides e le riprese audio/video dell'intervento saranno disponibili su: http://erlug.linux.it/linuxday/2013/ Bologna, 2013-10-26 ERLUG: Emilia Romagna Linux Users Group – http://erlug.linux.it Roberto Bettazzoni, Programmazione Android per esseri umani. 22