SlideShare a Scribd company logo
PyMaemo Andrea Grandi [email_address]
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
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
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
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
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
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
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
Riepilogo linguaggi e librerie
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
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
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)
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
Maemo sul nostro PC con Xepyr
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
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
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
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)
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
PyGtkEditor Sviluppo direttamente sul dispositivo Una soluzione sempre disponibile
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
Riferimenti Maemo Website:   http://maemo.org PtLUG WIKI:   http://www.ptlug.org/wiki PyMaemo:   http://pymaemo.garage.maemo.org
Come contribuire allo sviluppo Sviluppo di nuove applicazioni Porting di applicazioni esistenti (Python/Gtk) Documentazione e tutorial Localizzazione delle applicazioni ... Nokia Device Program
Domande?

More Related Content

PDF
Linux Embedded per l'automazione
PDF
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
PDF
GNU Linux Programming introduction
ODP
Presentazione Kubuntu
PDF
LinuxDay 2005 - Multimedialità con Linux - slides
PPTX
Windows Phone 7.5 Refresh: Performance e localizzazione
PPTX
Google cloud: Big Data + docker = kubernetes
PDF
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster
Linux Embedded per l'automazione
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
GNU Linux Programming introduction
Presentazione Kubuntu
LinuxDay 2005 - Multimedialità con Linux - slides
Windows Phone 7.5 Refresh: Performance e localizzazione
Google cloud: Big Data + docker = kubernetes
Codemotion 2014 : ottimizzare JAVA e PHP su un’architettura Raspberry Pi Cluster

What's hot (20)

PDF
Vagrant e Docker a confronto;scegliere ed iniziare
PDF
BeRTOS: Sistema Real Time Embedded Free
PPTX
Docker Fudamentals
ODP
Ambienti di virtualizzazione
PDF
Iced tea, la macchina virtuale Java libera
PPTX
Livin' with Docker - dallo sviluppo alla produzione
PDF
Introduzione a Docker (parte 2 - Pratica)
PPTX
Automation Night (Docker)
PDF
Meetup ASP.NET Core 2 e Docker
ODP
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
PPTX
Socket python
PDF
Open Source Parallel Computing ltcsp
PDF
Applicazioni open source
PPTX
Installazione ambientepython ubuntumate
PDF
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
PPTX
Post gresql su_raspberry
ODP
Matteo baccan raspberry pi - linox 2015 - corso parte 1
PDF
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
ODP
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
Vagrant e Docker a confronto;scegliere ed iniziare
BeRTOS: Sistema Real Time Embedded Free
Docker Fudamentals
Ambienti di virtualizzazione
Iced tea, la macchina virtuale Java libera
Livin' with Docker - dallo sviluppo alla produzione
Introduzione a Docker (parte 2 - Pratica)
Automation Night (Docker)
Meetup ASP.NET Core 2 e Docker
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Socket python
Open Source Parallel Computing ltcsp
Applicazioni open source
Installazione ambientepython ubuntumate
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Post gresql su_raspberry
Matteo baccan raspberry pi - linox 2015 - corso parte 1
I came, I saw, I GO! - Golangit meetup @ Codemotion Rome 2014
NON ESISTONO COMPUTER VECCHI (Da xp a linux - Treviso 15/4/2014)
Ad

Viewers also liked (13)

PDF
Shopping Cart Software for SEO
PDF
TPSE2014 :: Test Driven Development
PPTX
Agility In Innovation - Delivering Breakthrough Products
PPTX
Devfest 1 2 Elgg
PPT
PROEXPOSURE photos: marathon
PPT
Deans-textbook-alternatives
PPT
Pubquiz
PDF
д-р Лючиана Дюранти – Расширенная версия презентации на английском языке к се...
PDF
Новые стандарты по безопасности и управление документацией организации
PDF
Подходы компании «ЭОС» к организации обследования системы делопроизводства и ...
PDF
Нормативные документы, необходимые для электронного документооборота в органи...
PDF
Проблемы защиты персональных данных в медицине: Что показывает судебная практика
PDF
Открытые данные: зачем и какой ценой
Shopping Cart Software for SEO
TPSE2014 :: Test Driven Development
Agility In Innovation - Delivering Breakthrough Products
Devfest 1 2 Elgg
PROEXPOSURE photos: marathon
Deans-textbook-alternatives
Pubquiz
д-р Лючиана Дюранти – Расширенная версия презентации на английском языке к се...
Новые стандарты по безопасности и управление документацией организации
Подходы компании «ЭОС» к организации обследования системы делопроизводства и ...
Нормативные документы, необходимые для электронного документооборота в органи...
Проблемы защиты персональных данных в медицине: Что показывает судебная практика
Открытые данные: зачем и какой ценой
Ad

Similar to Conferenza Pymaemo (20)

PPTX
Meego Italian Day 2011 - Francesco Baldassarri (1)
PDF
Openmoko - La costruzione di un “Telefoninux”
PDF
Openmoko
PDF
Introduzione a RaspBerry PI
PDF
Tesiandroid
PDF
Qt mobile PySide bindings
PDF
Qt Mobile: Sviluppo mobile con Python e Qt Framework
PPT
Micro Applicazioni Mobile
PDF
Programmazione mobile: ANDROID
PDF
Linux & Open Source : Lezione Tre
PDF
PDF
Mobile OS
ODP
Io, Android
PDF
Android Code Camp for Beginners - Ecosistema Android (IT)
PDF
Dal cloud al mobile con tecnologie Google
PPTX
INTRO TO XAMARIN
PPTX
01 Android - Introduction
PDF
Google Android: una nuova piattaforma Open Source per dispositivi mobili
PPTX
MobileDevCamp2012 - Android
PPTX
Meego Italian Day 2011 - Francesco Baldassarri (1)
Openmoko - La costruzione di un “Telefoninux”
Openmoko
Introduzione a RaspBerry PI
Tesiandroid
Qt mobile PySide bindings
Qt Mobile: Sviluppo mobile con Python e Qt Framework
Micro Applicazioni Mobile
Programmazione mobile: ANDROID
Linux & Open Source : Lezione Tre
Mobile OS
Io, Android
Android Code Camp for Beginners - Ecosistema Android (IT)
Dal cloud al mobile con tecnologie Google
INTRO TO XAMARIN
01 Android - Introduction
Google Android: una nuova piattaforma Open Source per dispositivi mobili
MobileDevCamp2012 - Android

More from Andrea Grandi (10)

PDF
Creating a custom Django Middleware
ODP
Presentazione Ubuntu Oneiric 11.10 - LinuxDay 2011
PDF
Drupal - LinuxDay 2010 (Pistoia)
PDF
Drupal - LinuxDay 2010 (Pistoia)
ODP
Linux e il mondo della scuola - LinuxDay 2010 (Pistoia)
ODP
Linux vs. Windows - LinuxDay 2010 (Pistoia)
PDF
L'uso del VOIP in azienda (LinuxDay 2010 - Pistoia)
ODP
Presentazione LinuxDay 2010 - Pistoia
ODP
python-mafw intoduction at Maemo Summit 2009
ODP
Presentazione Festa Paas 2009
Creating a custom Django Middleware
Presentazione Ubuntu Oneiric 11.10 - LinuxDay 2011
Drupal - LinuxDay 2010 (Pistoia)
Drupal - LinuxDay 2010 (Pistoia)
Linux e il mondo della scuola - LinuxDay 2010 (Pistoia)
Linux vs. Windows - LinuxDay 2010 (Pistoia)
L'uso del VOIP in azienda (LinuxDay 2010 - Pistoia)
Presentazione LinuxDay 2010 - Pistoia
python-mafw intoduction at Maemo Summit 2009
Presentazione Festa Paas 2009

Conferenza Pymaemo

  • 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
  • 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