Your SlideShare is downloading. ×
0
Qt Mobile
    Sviluppo mobile con Python e Qt Framework

    7 Maggio 2010 @ PyCon 4
    Andrea Grandi



1
Agenda

• QtMobility
• MeeGo
• QtCreator 2
• PySide
• Generazione dei binding (Boost --> Shiboken)
• Stato del progetto
• ...
Qt Mobile




3
QtMobility

• Bearer Management
• Contacts
• Location
• Messaging
• Multimedia
• Publish and Subscribe
• Service Framework...
QtMobility: Bearer Management

• Controlla lo stato di connettività del sistema
• Permette alle applicazioni di sapere qua...
QtMobility: Contacts

• Permette di accedere ai Contatti presenti sul dispositivo
• Supporto per i piu' diffusi formati di...
QtMobility: Location

• Ottenere la posizione geografica corrente (tramite GPS, celle GSM
  ecc...)
• Trasmissione dell'ag...
QtMobility: Messaging

• Lettura ed invio di diversi tipi di messaggi: SMS, MMS, email …
• Possibilità di filtrare i messa...
QtMobility: Multimedia

• Riproduzione e registrazione di audio / video
• Supporto per radio FM
• Possibilità di riprodurr...
QtMobility: Publish / Subscribe

• Sistema gerarchico di rappresentazione dei dati che è possibile
  condividere fra le va...
QtMobility: Service Framework

• I client possono scoprire quali servizi sono disponibili ed interagire
  con essi
• Perme...
QtMobility: System Information

• Permette di accedere alle informazioni di sistema e di essere
  notificati se avviene qu...
QtMobility: Sensors

• Accesso ai sensori hardware (accelerometro ad esempio)
• Notifica del cambio di orientamento del di...
QtMobility: Versit

• Permette di leggere e scrivere documenti vCard
• Esporta/importa da e verso QContacts e vCard




14
MeeGo

• Maemo e Moblin si fondono
• Una nuova distribuzione Linux
  pensata per netbook, palmari e
  smartphone
• UI basa...
MeeGo: architettura




16
QtCreator 2

• IDE per lo sviluppo Qt
• Multi piattaforma (Windows,
  Linux, OSX)
• Supporta lo sviluppo di
  applicazioni...
QtQuick




18
PySide

• Bindings ufficiali di Nokia per le librerie Qt
• Sviluppato e mantenuto da OpenBossa
• Licenza LGPL
• Pensato pe...
Generazione dei bindings

• Inizialmente generati tramite Boost
     • Serviva un metodo veloce per iniziare
     • I bind...
Stato del progetto

• Moduli disponibili
     • QtCore
     • QtGui
     • QtNetwork
     • QtSvg
     • QtWebkit
     • Q...
Sviluppi futuri

• Ulteriore ottimizzazione per i dispositivi con meno risorse di calcolo
  (palmari, cellulari ecc...)
• ...
Come iniziare

• Conoscenze di base
     • Python
     • Qt
     • Linee guida di Maemo (per la UI)

• Strumenti necessari...
Domande Frequenti

• PySide supporta QtMobility?
• QtCreator avrà il supporto per Python e PySide?
• PySide è compatibile ...
Riferimenti

• Web
     • PySide: http://www.pyside.org
     • Maemo: http://www.maemo.org
     • MeeGo: http://www.meego....
Grazie!




26
Upcoming SlideShare
Loading in...5
×

Qt mobile PySide bindings

1,186

Published on

Andrea Grandi

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
1,186
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Qt mobile PySide bindings"

  1. 1. Qt Mobile Sviluppo mobile con Python e Qt Framework 7 Maggio 2010 @ PyCon 4 Andrea Grandi 1
  2. 2. Agenda • QtMobility • MeeGo • QtCreator 2 • PySide • Generazione dei binding (Boost --> Shiboken) • Stato del progetto • Sviluppi futuri • Come iniziare a sviluppare in Python e Qt per Maemo • Esempi di codice con PySide • Conclusioni 2
  3. 3. Qt Mobile 3
  4. 4. QtMobility • Bearer Management • Contacts • Location • Messaging • Multimedia • Publish and Subscribe • Service Framework • System Information • Sensors • Versit 4
  5. 5. QtMobility: Bearer Management • Controlla lo stato di connettività del sistema • Permette alle applicazioni di sapere quando una particolare connessione diventa disponibile e di redirezionare il traffico su di essa • Restituisce informazioni dettagliate sulle connessioni configurate nel sistema e su quelle disponibili • Consente alle applicazioni di scegliere la configurazione di rete piu' appropriata a seconda che ci si trovi ad utilizzare una rete pubblica o privata 5
  6. 6. QtMobility: Contacts • Permette di accedere ai Contatti presenti sul dispositivo • Supporto per i piu' diffusi formati di memorizzazione dei contatti • Le applicazioni possono utilizzare questa API per memorizzare un particolare tipo di informazione personalizzata all'interno di un contatto: un'applicazione di instant messaging ad esempio potrebbe utilizzare questa API per memorizzare il nome utente dell'account (Skype, Gtalk, MSN ecc...) • Supporto per operazioni asincrone quando si accede ai contatti, per facilitare le applicazioni di sincronizzazione remota 6
  7. 7. QtMobility: Location • Ottenere la posizione geografica corrente (tramite GPS, celle GSM ecc...) • Trasmissione dell'aggiornamento della posizione • Possibilità di notifica se ci si trova all'interno di una certa area • Possibilità di accedere alle informazioni dettagliate sul segnale dei satelliti 7
  8. 8. QtMobility: Messaging • Lettura ed invio di diversi tipi di messaggi: SMS, MMS, email … • Possibilità di filtrare i messaggi e recuperarli in base a determinati parametri • Accesso alle informazioni sugli account configurati nel dispositivo 8
  9. 9. QtMobility: Multimedia • Riproduzione e registrazione di audio / video • Supporto per radio FM • Possibilità di riprodurre un file da una posizione remota (streaming audio / video) 9
  10. 10. QtMobility: Publish / Subscribe • Sistema gerarchico di rappresentazione dei dati che è possibile condividere fra le varie applicazioni • Possibilità di ricevere una notifica quando un dato viene modificato da un'altra applicazione 10
  11. 11. QtMobility: Service Framework • I client possono scoprire quali servizi sono disponibili ed interagire con essi • Permette di creare applicazioni che separino il client dal servizio stesso che offrono 11
  12. 12. QtMobility: System Information • Permette di accedere alle informazioni di sistema e di essere notificati se avviene qualche cambiamento (stato della batteria, connettività, ecc...) • Si possono creare applicazioni che si comportino in maniera differente a seconda dello stato di sistema. Prevedere ad esempio una modalità di risparmio della potenza della CPU nel caso il dispositivo stia funzionando a batteria o sia alimentato a corrente 12
  13. 13. QtMobility: Sensors • Accesso ai sensori hardware (accelerometro ad esempio) • Notifica del cambio di orientamento del dispositivo (landscape / portrait) • Permette di scrivere applicazioni che reagiscano in maniera differente a seconda della posizione in cui si trova il dispositivo 13
  14. 14. QtMobility: Versit • Permette di leggere e scrivere documenti vCard • Esporta/importa da e verso QContacts e vCard 14
  15. 15. MeeGo • Maemo e Moblin si fondono • Una nuova distribuzione Linux pensata per netbook, palmari e smartphone • UI basata sulle librerie Qt • Sistema di pacchetti RPM • Completamente opensource • Supporto per Intel/Atom e ARM • Disponibile dal secondo quarto del 2010 15
  16. 16. MeeGo: architettura 16
  17. 17. QtCreator 2 • IDE per lo sviluppo Qt • Multi piattaforma (Windows, Linux, OSX) • Supporta lo sviluppo di applicazioni per palmari, smartphone (Maemo/MeeGo, Symbian) • Emulatore Maemo e Symbian integrato • Supporta al momento solo C++ (in futuro anche Python) • Integrazione con QtQuick (Qt User Interface Creation Kit) 17
  18. 18. QtQuick 18
  19. 19. PySide • Bindings ufficiali di Nokia per le librerie Qt • Sviluppato e mantenuto da OpenBossa • Licenza LGPL • Pensato per Maemo (MeeGo) ma senza escludere le altre piattaforme (Windows, Linux, OSX). 19
  20. 20. Generazione dei bindings • Inizialmente generati tramite Boost • Serviva un metodo veloce per iniziare • I binding generati erano troppo grandi • Prestazioni inferiori a PyQt • Passaggio a Shiboken • Possibilità di generare binding per qualsiasi libreria C++ • Dimensione nettamente inferiore dei binding generati • Maggiore flessibilità di utilizzo • Gestire sia i binding PySide che il generatore stesso 20
  21. 21. Stato del progetto • Moduli disponibili • QtCore • QtGui • QtNetwork • QtSvg • QtWebkit • QtTest • Phonon • QtHelp • QtScript • Codice da ottimizzare (prestazioni e dimensioni) • Completare il passaggio da Boost a Shiboken 21
  22. 22. Sviluppi futuri • Ulteriore ottimizzazione per i dispositivi con meno risorse di calcolo (palmari, cellulari ecc...) • Porting per OSX e Windows (ci sono volontari?) • Integrazione con QtCreator • Strumenti per iniziare a creare velocemente un binding (probabilmente un plugin per QtCreator) 22
  23. 23. Come iniziare • Conoscenze di base • Python • Qt • Linee guida di Maemo (per la UI) • Strumenti necessari • PC con Linux (per il momento) • Maemo SDK • PySide (non distribuito di default con l'SDK) 23
  24. 24. Domande Frequenti • PySide supporta QtMobility? • QtCreator avrà il supporto per Python e PySide? • PySide è compatibile con PyQt a livello di API? • QtUiTools è disponibile su PySide? In particolare è possibile disegnare la propria UI tramite QtDesigner ed utilizzarla da PySide? • Perchè non si è scelto di utilizzare PyQt? • PySide supporta solo Maemo o anche il nuovo Symbian? 24
  25. 25. Riferimenti • Web • PySide: http://www.pyside.org • Maemo: http://www.maemo.org • MeeGo: http://www.meego.com • Qt: http://qt.nokia.com • IRC • #pyside @ FreeNode • #maemo @ FreeNode • #meego @ FreeNode • Andrea Grandi • a.grandi@gmail.com • http://www.andreagrandi.it 25
  26. 26. Grazie! 26
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×