SlideShare une entreprise Scribd logo
1  sur  10
Télécharger pour lire hors ligne
Hybrid development using Qt
          Webkit




 Gianni Valdambrini (aleister@develer.com)
Webkit
   Webkit è il motore di rendering utilizzato fra gli altri in
    Safari e Chrome (Chromium). E' composto da due
    componenti principali:
            WebCore, il motore di rendering delle pagine
              web;
            JavaScriptCore, l'engine JavaScript.


   WebCore e JavaScriptCore sono rilasciati sotto licenza
    LGPL, il resto di Webkit sotto BSD.

   Supporta gran parte dei più recenti standard per il web,
     risultando conforme agli acid test 2 e 3.
                                                                  2
QtWebkit
   QtWebkit è un modulo di Qt con il quale è possibile
    interfacciarsi a Webkit per creare un browser o
    applicazioni miste.

   QtWebkit Bridge: un meccanismo per accedere e
    modificare QObject da JavaScript.


   I metodi e gli oggetti di questo modulo sono utilizzabili
    anche all'interno di QML, e si possono quindi integrare
    con le caratteristiche di quest'ultimo (ad esempio,
    gestures).


                                                                3
Architettura QtWebKit

               QWebView




   QWebPage                QWebPage




  QWebFrame               QWebFrame
                          QWebFrame
  QWebFrame
   QWebFrame               QWebFrame
Applicazioni miste: use cases
1. Web content in a Native Application

   Gran parte dell'applicazione è scritta in C++, compresa
    la logica, e parti sono realizzate in HTML e mantenute
    da un server.

           Esempio: un media client, composto da un player
              e da un file manager scritti in C++ e da un
              music store realizzato in HTML.




                                                              5
Applicazioni miste: use cases
2. Thin Client

   E' realizzato per gran parte, compresa la logica
    applicativa, in HTML. Il C++ viene utilizzato solo per
    sfruttare caratteristiche peculiari della piattaforma
    hardware.

           Esempio: un client per lo streaming di contenuti
              TV on demand, nel quale l'intera UI è in HTML e
              l'unica parte in C++ è quella relativa a
              funzionalità avanzate di processing video.



                                                             6
Applicazioni miste: vantaggi e
          svantaggi
Vantaggi
       Nessun problema di deploy e aggiornamenti
         “gratuiti”
       Possibilità di sfruttare le risorse del cloud

Svantaggi
       Disponibilità della connessione internet.
       Problemi di sicurezza
       Minore integrazione con la piattaforma
         sottostante (look and feel)


                                                        7
Applicazioni miste: un esempio
            pratico
 Obbiettivo: integrare
 google maps in
 un'applicazione Qt.
Domande?




?          9
GRAZIE !
                                Develer S.r.l.
                             Via Mugellese 1/A
                         50013 Campi Bisenzio
                                Firenze - Italia




Contatti
Mail: info@develer.com
Phone: +39-055-3984627
Fax: +39 178 6003614
http://www.develer.com

Contenu connexe

Similaire à Hybrid development using Qt webkit

Qt roadmap: the future of Qt
Qt roadmap: the future of QtQt roadmap: the future of Qt
Qt roadmap: the future of QtDeveler S.r.l.
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazorNicolò Carandini
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progettoMicrosoft Mobile Developer
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internetdadahtml
 
Webkit presentazione ufficiale
Webkit presentazione ufficialeWebkit presentazione ufficiale
Webkit presentazione ufficialeintoinside
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web Appdotnetcode
 
Lezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaLezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaRoberto Polillo
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Giorgio Carpoca
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web Appdotnetcode
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMSRoberto Polillo
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformGabriele Gaggi
 
05 - Introduzione al Web II
05 - Introduzione al Web II05 - Introduzione al Web II
05 - Introduzione al Web IIGiuseppe Vizzari
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Massimo Caliman
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileRoberto Cappelletti
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net orientedAlessandro Morvillo
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developerssparkfabrik
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfFlorence Consulting
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAXTommaso Torti
 

Similaire à Hybrid development using Qt webkit (20)

Qt roadmap: the future of Qt
Qt roadmap: the future of QtQt roadmap: the future of Qt
Qt roadmap: the future of Qt
 
Spa with Blazor
Spa with BlazorSpa with Blazor
Spa with Blazor
 
Christmas greetings cards with blazor
Christmas greetings cards with blazorChristmas greetings cards with blazor
Christmas greetings cards with blazor
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
Le basi per lo sviluppo su Windows Phone tool, SDK, il primo progetto
 
Introduzione a Internet
Introduzione a InternetIntroduzione a Internet
Introduzione a Internet
 
Webkit presentazione ufficiale
Webkit presentazione ufficialeWebkit presentazione ufficiale
Webkit presentazione ufficiale
 
Meetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web AppMeetup Fluent Design e Progressive Web App
Meetup Fluent Design e Progressive Web App
 
Lezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaformaLezione 6: Il Web come piattaforma
Lezione 6: Il Web come piattaforma
 
Presentazione Corso - Parte 3
Presentazione Corso - Parte 3Presentazione Corso - Parte 3
Presentazione Corso - Parte 3
 
Meetup Progressive Web App
Meetup Progressive Web AppMeetup Progressive Web App
Meetup Progressive Web App
 
7. Applicazioni Web e CMS
7. Applicazioni Web e CMS7. Applicazioni Web e CMS
7. Applicazioni Web e CMS
 
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platformAngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
AngularJs, Bootstrap e Cordova: il connubio per app mobile cross-platform
 
05 - Introduzione al Web II
05 - Introduzione al Web II05 - Introduzione al Web II
05 - Introduzione al Web II
 
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
Google App Engine Overview Seminario GDG Genova 4 Ottobre 2013
 
Sviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobileSviluppo di applicazioni web in ambito mobile
Sviluppo di applicazioni web in ambito mobile
 
Sviluppare una app mobile net oriented
Sviluppare una app mobile net orientedSviluppare una app mobile net oriented
Sviluppare una app mobile net oriented
 
Mobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web DevelopersMobile Development: una introduzione per Web Developers
Mobile Development: una introduzione per Web Developers
 
Slide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdfSlide Mulesoft Meetup Milano #10.pdf
Slide Mulesoft Meetup Milano #10.pdf
 
Antica presentazione AJAX
Antica presentazione AJAXAntica presentazione AJAX
Antica presentazione AJAX
 

Plus de Develer S.r.l.

Workshop su Android Kernel Hacking
Workshop su Android Kernel HackingWorkshop su Android Kernel Hacking
Workshop su Android Kernel HackingDeveler S.r.l.
 
Qt Quick for dynamic UI development
Qt Quick for dynamic UI developmentQt Quick for dynamic UI development
Qt Quick for dynamic UI developmentDeveler S.r.l.
 
Qt licensing: making the right choice
Qt licensing: making the right choiceQt licensing: making the right choice
Qt licensing: making the right choiceDeveler S.r.l.
 
Qt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmerQt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmerDeveler S.r.l.
 
PyQt: rapid application development
PyQt: rapid application developmentPyQt: rapid application development
PyQt: rapid application developmentDeveler S.r.l.
 
Smashing the bottleneck: Qt application profiling
Smashing the bottleneck: Qt application profilingSmashing the bottleneck: Qt application profiling
Smashing the bottleneck: Qt application profilingDeveler S.r.l.
 
BeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOSBeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOSDeveler S.r.l.
 
Develer - Company Profile
Develer - Company ProfileDeveler - Company Profile
Develer - Company ProfileDeveler S.r.l.
 
Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer S.r.l.
 

Plus de Develer S.r.l. (13)

Sw libero rf
Sw libero rfSw libero rf
Sw libero rf
 
Engagement small
Engagement smallEngagement small
Engagement small
 
Farepipi
FarepipiFarepipi
Farepipi
 
Workshop su Android Kernel Hacking
Workshop su Android Kernel HackingWorkshop su Android Kernel Hacking
Workshop su Android Kernel Hacking
 
Qt Quick in depth
Qt Quick in depthQt Quick in depth
Qt Quick in depth
 
Qt Quick for dynamic UI development
Qt Quick for dynamic UI developmentQt Quick for dynamic UI development
Qt Quick for dynamic UI development
 
Qt licensing: making the right choice
Qt licensing: making the right choiceQt licensing: making the right choice
Qt licensing: making the right choice
 
Qt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmerQt Creator: the secret weapon of any c++ programmer
Qt Creator: the secret weapon of any c++ programmer
 
PyQt: rapid application development
PyQt: rapid application developmentPyQt: rapid application development
PyQt: rapid application development
 
Smashing the bottleneck: Qt application profiling
Smashing the bottleneck: Qt application profilingSmashing the bottleneck: Qt application profiling
Smashing the bottleneck: Qt application profiling
 
BeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOSBeRTOS: Free Embedded RTOS
BeRTOS: Free Embedded RTOS
 
Develer - Company Profile
Develer - Company ProfileDeveler - Company Profile
Develer - Company Profile
 
Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione Develer - Qt Embedded - Introduzione
Develer - Qt Embedded - Introduzione
 

Hybrid development using Qt webkit

  • 1. Hybrid development using Qt Webkit Gianni Valdambrini (aleister@develer.com)
  • 2. Webkit  Webkit è il motore di rendering utilizzato fra gli altri in Safari e Chrome (Chromium). E' composto da due componenti principali:  WebCore, il motore di rendering delle pagine web;  JavaScriptCore, l'engine JavaScript.  WebCore e JavaScriptCore sono rilasciati sotto licenza LGPL, il resto di Webkit sotto BSD.  Supporta gran parte dei più recenti standard per il web, risultando conforme agli acid test 2 e 3. 2
  • 3. QtWebkit  QtWebkit è un modulo di Qt con il quale è possibile interfacciarsi a Webkit per creare un browser o applicazioni miste.  QtWebkit Bridge: un meccanismo per accedere e modificare QObject da JavaScript.  I metodi e gli oggetti di questo modulo sono utilizzabili anche all'interno di QML, e si possono quindi integrare con le caratteristiche di quest'ultimo (ad esempio, gestures). 3
  • 4. Architettura QtWebKit QWebView QWebPage QWebPage QWebFrame QWebFrame QWebFrame QWebFrame QWebFrame QWebFrame
  • 5. Applicazioni miste: use cases 1. Web content in a Native Application  Gran parte dell'applicazione è scritta in C++, compresa la logica, e parti sono realizzate in HTML e mantenute da un server.  Esempio: un media client, composto da un player e da un file manager scritti in C++ e da un music store realizzato in HTML. 5
  • 6. Applicazioni miste: use cases 2. Thin Client  E' realizzato per gran parte, compresa la logica applicativa, in HTML. Il C++ viene utilizzato solo per sfruttare caratteristiche peculiari della piattaforma hardware.  Esempio: un client per lo streaming di contenuti TV on demand, nel quale l'intera UI è in HTML e l'unica parte in C++ è quella relativa a funzionalità avanzate di processing video. 6
  • 7. Applicazioni miste: vantaggi e svantaggi Vantaggi  Nessun problema di deploy e aggiornamenti “gratuiti”  Possibilità di sfruttare le risorse del cloud Svantaggi  Disponibilità della connessione internet.  Problemi di sicurezza  Minore integrazione con la piattaforma sottostante (look and feel) 7
  • 8. Applicazioni miste: un esempio pratico Obbiettivo: integrare google maps in un'applicazione Qt.
  • 10. GRAZIE ! Develer S.r.l. Via Mugellese 1/A 50013 Campi Bisenzio Firenze - Italia Contatti Mail: info@develer.com Phone: +39-055-3984627 Fax: +39 178 6003614 http://www.develer.com