Conferenza Pymaemo

50 %
50 %
Information about Conferenza Pymaemo

Published on May 14, 2008

Author: andy80

Source: slideshare.net

Description

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.

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

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

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

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

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

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

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

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

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

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)

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

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

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

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

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)

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

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

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

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

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

Sviluppo di nuove applicazioni

Porting di applicazioni esistenti (Python/Gtk)

Documentazione e tutorial

Localizzazione delle applicazioni

...

Nokia Device Program

Domande?

Domande?

#maemo presentations

Add a comment

Related pages

PyMaemo — PyMaemo | Pymaemo.Garage.Maemo.org ...

Coupon for pymaemo .garage.maemo.org ... #maemo 1maemo10 aboudouvas after application archive blogspot cabbage conferenza current debian deployment ...
Read more

Slides del talk su PyMaemo al PyCon Due – Andrea Grandi

Per chi avesse seguito il mio talk su PyMaemo al PyCon Due a Firenze, metto a disposizione le slide che ho utilizzato. Potete liberamente scaricarle ...
Read more

ZioBudda Italian Linux Portal - conferenza - Consulenza ...

Per chi avesse seguito il mio talk su PyMaemo al PyCon Due a Firenze, metto a disposizione le slide che ho utilizzato. Potete liberamente scaricarle ...
Read more

Python – Page 7 – Andrea Grandi

Per chi avesse seguito il mio talk su PyMaemo al PyCon Due a Firenze, ... http://www.andreagrandi.it/download/slides/conferenza_pymaemo.pdf;
Read more

ZioBudda Italian Linux Portal - slides - Consulenza ...

Per chi avesse seguito il mio talk su PyMaemo al PyCon Due a Firenze, metto a disposizione le slide che ho utilizzato. Potete liberamente scaricarle ...
Read more

PyCon Italia 3: resoconto day 2 - Appunti Digitali

Quel che interessava particolarmente era capire l’interazione tra il linguaggio protagonista della conferenza ed ... con il supporto a Nokia PyMaemo;
Read more