Your SlideShare is downloading. ×
Qt mobile PySide bindings
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

Qt mobile PySide bindings

1,104

Published on

Andrea Grandi

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,104
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
14
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. Qt Mobile Sviluppo mobile con Python e Qt Framework 7 Maggio 2010 @ PyCon 4 Andrea Grandi 1
  • 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. Qt Mobile 3
  • 4. QtMobility • Bearer Management • Contacts • Location • Messaging • Multimedia • Publish and Subscribe • Service Framework • System Information • Sensors • Versit 4
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. QtMobility: Versit • Permette di leggere e scrivere documenti vCard • Esporta/importa da e verso QContacts e vCard 14
  • 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. MeeGo: architettura 16
  • 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. QtQuick 18
  • 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. 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. 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. 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. 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. 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. 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. Grazie! 26

×