Your SlideShare is downloading. ×
0
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Conferenza Pymaemo
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Conferenza Pymaemo

2,316

Published on

Il talk prevede una breve introduzione alla piattaforma Maemo ed ai Nokia Internet Tablet, sia dal punto di vista dell'utente comune, sia da quello dello sviluppatore. …

Il talk prevede una breve introduzione alla piattaforma Maemo ed ai Nokia Internet Tablet, sia dal punto di vista dell'utente comune, sia da quello dello sviluppatore.

Verrà poi spiegato come configurare ed installare l'ambiente Scratchbox, il principale ambiente utilizzato per sviluppare applicazioni per Maemo.

Infine verranno presentati due plugin per Eclipse: ESbox e PluThon. Il primo si interfaccia con Eclipse e Scratchbox, permettendo di sviluppare sia applicazione C/C++ che Python e di testarle all'interno dell'ambiente Scratchbox. Il secondo è un plugin specifico per Python e permette di eseguire e debuggare le applicazioni direttamente sul dispositivo.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
2,316
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
10
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PyMaemo Andrea Grandi [email_address]
  • 2. Panoramica del talk su PyMaemo
    • La piattaforma Maemo
    • PyMaemo
    • I Nokia Internet Tablet
    • Maemo SDK
    • Ambienti di sviluppo
    • Esempio live di sviluppo
    • La community di sviluppatori Maemo
    • Riferimenti
  • 3. Cos'è Maemo?
    • Piattaforma software sviluppata da Nokia per i suoi Internet Tablet
    • Opensource e adattabile anche ad altri dispositivi con hardware simile
    • Basato su Debian Linux
    • Interfaccia grafica Hildon basata su GNOME
    • Consente un porting senza troppe difficoltà di applicazioni scritte per Linux/GTK
  • 4. Com'è fatto Maemo
    • Linux Kernel
    • Platform Libraries: Matchbox, GTK+, Gconf, X-server, D-BUS, GnomeVFS
    • Hildon Application Framework: Control Panel, Status Bar, Home, Task Navigator, Hildon UI, LibOSSO
  • 5. Hildon Application Framework
    • Task Navigator: avvia i programmi e permette di passare da un'applicazione all'altra
    • Home: permette di incorporare diversi plugin come un RSS reader, l'orologio ecc...
    • Status Bar: viene utilizzata per monitorare lo stato generale del sistema (batteria, connessione ecc...)
    • Control Panel: possibilità di incorporare applicazioni che modifichino le impostazioni dei programmi
  • 6. Hildon/GTK: analogie e differenze
    • Hildon è un'interfaccia grafica basata sulle GTK
    • Molti widget sono in comune, altri sono stati riscritti per adattarsi alle dimensioni ridotte del dispositivo
    • Un'applicazione puo' usare anche solo GTK, non è garantita la corretta visualizzazione sullo schermo
    • L'utilizzo di Hildon garantisce che la GUI si adatti perfettamente allo schermo
    • Alcuni controlli Hildon non sono presenti in GTK
  • 7. PyMaemo
    • PyMaemo è il porting di Python per la piattaforma Maemo di Nokia
    • Sviluppato da INdT (Istituto Nokia de Tecnologia)
    • Il porting è aggiornato alla versione 2.5.2
    • Comprende sia i principali moduli presenti su Linux sia binding ad-hoc per i componenti di Maemo (OSSO)
    • Attualmente è l'alternativa allo sviluppo in C/C++ che viene maggiormente supportata
  • 8. Principali moduli di PyMaemo
    • PyBluez: binding per il bluetooth
    • PyGame: libreria per sviluppo di giochi
    • PyGtk: binding per GTK (e supporto libglade )
    • Python-dbus: binding per D-BUS
    • Python-GPSbt: permette di utilizzare il GPS
    • Python-hildon: per accedere ai controlli nativi
    • Python-osso: per gestire i componenti di sistema
    • Python-xml: libreria per XML
  • 9. Riepilogo linguaggi e librerie
  • 10. I Nokia Internet Tablet
    • CPU TI OMAP 400 Mhz
    • Ram DDR 128 Mb
    • Flash 256 Mb
    • Display 4,13'' a 800x480
    • 2 Gb memoria interna
    • Slot espansione MiniSD
    • Wireless 802.11 b/g
    • Bluetooth
    • Ingresso USB
    • GPS
  • 11. Lo sviluppo su GNU/Linux
    • Lo sviluppatore produce macro e script
    • Automake ed Autoconf producono il configure
    • configure genera i Make files
    • Si avvia la compilazione
    • Si prepara il pacchetto da distribuire
  • 12. Perchè non va bene per Maemo?
    • configure assume che l'ambiente di destinazione (non solo l'architettura, ma anche le librerie utilizzate) sia identico all'ambiente di compilazione
    • compilare direttamente sul dispositivo, sebbene sia possibile (esiste un porting di GCC e degli altri tool), non è una scelta consigliata (per motivi di spazio e di prestazioni)
  • 13. La soluzione: Scratchbox
    • Scratchbox è un tool che permette di cross-compilare (compilare un'applicazione nativamente per altri ambienti)
    • E' una sorta di sandbox formata da un mini ambiente Linux, con librerie ed impostazioni proprie
    • Utilizza QEMU per emulare il processore dell'architettura di destinazione
    • Grazie a Xephyr permette di far girare l'interfaccia grafica di Maemo sul nostro PC
  • 14. Maemo sul nostro PC con Xepyr
  • 15. Scratchbox e il Maemo SDK
    • Scratchbox mette a disposizione una sandbox per la compilazione su target diversi
    • Maemo SDK viene installato dentro Scratchbox
    • I target a disposizione di Maemo sono:
      • X86 : utilizzato per lo sviluppo in locale
      • Armel : per compilare i pacchetti per il dispositivo
    • Sono disponibili anche i pacchetti closed source della piattaforma Maemo
  • 16. Installazione del Maemo SDK
    • E' consigliato l'utilizzo di una distribuzione basata su Debian (maggiormente supportata dalla community Maemo)
    • Occorre reperire i due script maemo-scratchbox-install_4.0.1.sh e maemo-sdk-install_4.0.1.sh dal sito http://maemo.org
    • I due script installerano prima Scratchbox ed in seguito l'SDK di Maemo configurando i due target necessari
    • Infine dobbiamo installare xephyr-xserver
  • 17. Le basi dello sviluppo su Maemo
    • Scrivere il programma con il nostro editor preferito
    • Testare l'applicazione sul proprio PC
      • Avviare manualmente Xephyr e l'interfaccia Maemo
      • Mandare in esecuzione il proprio programma
      • Verificare il funzionamento
    • Testare l'applicazione sul dispositivo
      • Copiare il programma sul dispositivo
      • Avviarlo e testarlo con hardware specifico
  • 18. Eclipse con ESBox
    • Si interfaccia all'SDK installato sul PC
    • Automatizza alcuni compiti come l'avvio di Xephyr e dell'interfaccia di Maemo
    • Supporta lo sviluppo in C/C++ e Python
    • Permette di fare il debug passo passo
    • Supporto per Gazpacho
    • Nonostante Eclipse sia multipiattaforma, è supportato solo Linux (limitazione di Maemo SDK)
  • 19. Eclipse con PluThon
    • Supporta solo il linguaggio Python
    • L'applicazione viene fatta girare direttamente sul device
    • Possibilita' di fare il debug direttamente sul device
    • Supporto per piu' dispositivi, utilizzando connessione SSH differenti
    • Wizard per creazioni progetti e connessione ai dispositivi
  • 20. PyGtkEditor
    • Sviluppo direttamente sul dispositivo
    • Una soluzione sempre disponibile
  • 21. La community di Maemo
    • Sito web: http://maemo.org
    • Mailing Lists: maemo-announce, maemo-users, maemo-developers, maemo-commit
    • IRC: #maemo su Freenode
    • Maemo Garage: permette di pubblicare le proprie applicazioni (simile a SourceForge)
    • Altri strumenti: wiki, bugzilla
  • 22. Riferimenti
    • Maemo Website: http://maemo.org
    • PtLUG WIKI: http://www.ptlug.org/wiki
    • PyMaemo: http://pymaemo.garage.maemo.org
  • 23. Come contribuire allo sviluppo
    • Sviluppo di nuove applicazioni
    • Porting di applicazioni esistenti (Python/Gtk)
    • Documentazione e tutorial
    • Localizzazione delle applicazioni
    • ...
    • Nokia Device Program
  • 24.
    • Domande?

×