SlideShare une entreprise Scribd logo
1  sur  23
Next Generation Hybrid Applications
Utilizing your Web Development Skills with Qt based Solutions


                     Pekka Kosonen
              Head Of Technology Development
                           Nokia
In the year 2010
 - Hybrid application?

  A mashup? A Widget? Thin/Thick client? A full blown
  application?

  Always connected?

  Utilizes web services?

  Differ in mobile vs. desktop context?

  Combines several technologies - web and native?
Ask google

  Mashup_(web_application_hybrid)
    A web page or application that combines data or functionality
    from two or more external sources to create a new service.
    Mashups and portals are both content aggregation technologies.




      Web pages -> Web sites -> Dynamic web sites -> Server-
    driven/Database driven Web Sites -> Web Applications
    Hybrid is the next logical step
    More program than web site
    Greater interaction with the end user's computer/OS
    The ability to operate without an internet connection present
    “best of both worlds"
Today
Adobe AIR
   Adobe AIR is a standalone runtime library

Web Runtimes
   Many vendors provide web runtimes
   Usually a sandbox environment where you can plugin web widgets
   Some amount of platform services offered

Microsoft Silverlight
   Web browser plug-in that follows along the lines of Flash
   Designed to be an application platform from day one


Developing Hybrid Applications for the iPhone
   Using HTML, CSS, and JavaScript
   to Build Dynamic Apps for the iPhone
Industry buzz?

    a hybrid app is everything that a web application is, but
    carries the concept of "more program than web site"




             …and a gazillion other widget runtimes
What are the good things to “steal”
from the web world?


  HTML5               Portability

                   Ease             Speed
  JavaScript
                      Resource pool

 WebKit             Innovation
…but the real world is still
fragmented and not complete


Device API access
       How easily can you extend it?


                Security Speed
                      UX
 Install base
           Discoverability
Continued googling...
Found out that there’s a presentation coming about hybrid applications.

  Need to go there!

  Then I noticed it’s mine…

http://www.see2009.org/page.cfm/action=Seminars/SeminarID=145

Next Generation Hybrid Applications
  – Utilizing your Web Development Skills
     with Qt based Solutions
Hybrid app seems to be something like

   A mashup? A Widget? Thin/Thick client? A full blown application?
      Seems like more than a mashup or a widget.

   Always connected?
      Doesn’t need to be connected.

   Utilizes web services?
      Most likely. At least needs to have the means to

   Combines several technologies - web and native?
      Seems so...

   Differ in mobile vs. desktop context?
      Different features that are important (like location on mobile)
Approachability of
                                                             Programming


Hybrid Development
                                                             Environment




                                                                                       Un
                                                                                         at Are
                                                                Easy




                                                                                           ta a
in Qt context




                                                                                             in
                                                                           WRT




                                                                                                ab
                                                                                                   le
Easily approachable web technologies                         Difficult
                                                                                    Qt C++


with powerful and scalable Qt C++
                                                                                                        Size of
                                                                                                        Project
                                                                       Small                Large

A rich selection of features for hybrid development             Hybrid Applications
   QtWebKit module:
   embed web content from servers,                                       Qt C++
   local files or application’s resources                                Application
   into Qt applications
   QtScript module:                                                            HTML, CSS,
                                                                               JavaScript
   make Qt applications scriptable
   QtXMLPatterns module:
   shape and mash up XML date yielding HTML output                       Browser/ Standalone
   QNetworkAccessManager:                                                Web runtime
                                                                         Application *)
   interact with server side URL APIs
                                                                          Widgets accessing
                                                                          platform services
                                                                          with JS


                    QWebView *view = new QWebView(parent);
                    view->load(QUrl("http://qt.nokia.com/"));
                    view->show();


    Public
Interact with Web Services
QtWebKit allows
  Intuitive use of network resources,
  Easy to embed web content into an application
  Exposing QWidget to HTML
  and QObject to JavaScript
  Calling JavaScript from Qt and vice versa
  Content may be enhanced with native controls



        JS


        Qt


     OS specific
        APIs
function setStatus() {
                 twit.updateStatus( statusupdate.text );
Javascript   }
             statusupdate.returnPressed.connect(this,setStatu
             s);



             QWebFrame *frame = view->currentFrame();
             //You can inject JavaScript to be executed
             frame->evaluateJavaScript(“myAmaging JS Stuff”);
             //You can expose any QObject to the web view
             MyQTwitter *twit = new MyQTwitter()
             frame->addToJavaScriptWindowObject(“twit”,twit);


             //do what ever you want with native APIs
             //that you can call directly from Qt
             CRRSensorApi::FindSensorsL(sensorList);
Swing both ways? Go hybrid!
  combining the best of both worlds
Run JS and HTML inside Qt application…
  WRT Widget                        Qt application
    Webkit                            QWebView running webkit
      Widgets HTML,
          CSS,                            Same HTML, CSS,
       JavaScript                           JavaScript



                 Platform
                 Services




  Native APIs
                    Platform
                    Services
                 implementation   Accessing Native APIs through JS
Download the core of the hybrid app

Stored locally -> easy to update
Webview Demo
Core app ready – install new JS in

   In the demo there’s BBC News, games like
   Rock-Paper-Scissors, Tic-Tac-Toe, Calculator and Bubble
   Anything from web can be pulled to the hybrid container

Statistics:
   300 lines of Qt code
   Size of .sis file: 20 kB
   Development time: approx. 5 hours

   Browser/ Standalone                 Qt C++ Hybrid
 Web runtime application *)              Application



                                        HTML, CSS,
                                        JavaScript


  Cool guys swing both ways
                    Go hybrid with Qt and Web!
Are we making a Web Runtime?

  1) Web developer injects JS+HTML+CSS to the framework.
  If it spits out an executable we’re not making a web runtime (I think).


  2) The framework is installed to device -> developer writes
  plugins (with JS/HTML/CSS) we are closer to making own WRT (I think)

What’s important in the FW
      Industry compliancy – especially in the APIs that are offered to JS
      developers

      Extendability – The features what are offered out of the box are
      NEVER enough. You want to extend and we’ll let you.

      UI libraries – easy to use nice looking stuff (TODO show flickr demo
      and refer to declarative UI)

      Security
Architecture - Yes we have some!
                                   Framework
                                                                From us
                                   QWebView running
                                   Webkit
                                                              From real
                                                              developers
         Qt script                    The hybrid app’s core
         generator                        – JS, html,..
      pushing stuff to                                          From Qt
       the web view


                         Accessing Native APIs through JS       Native –
                                                              already there
                         Service FW from Qt Mobility APIs
                             3rd party         Qt Mobility
                              plugins             APIs




                                   OS and native APIs

http://labs.trolltech.com/page/Projects/QtScript/Generator
As a hybrid app developer you…
...can use your web skills (HTML, CSS, …) to do the UI
   Or, since QWebView has NPAPI -> Flash
   Or, you can go nuts and even push native Qt components to webview

...write JS to access platform features
   If there’s a not a ready service provider implemented feel free to do it
   (and publish it for others please!)?

...get a Qt application – which is a native application!
   No runtime performance hits
   Sources are protected


And it works where ever Qt is supported!
   Distribute it to Ovi store and target 130 million smartphones with Qt 4.6!
   Remember to open the bank vault before the money trucks arrive!
The things to take home with you

Qt is available everywhere
  On desktops OSs as well as smartphones
  With Qt and Mobility APIs you can make full blown mobile applications

With Qt webkit web developers can create native applications
  No feature restrictions

We’re making this easier with a framework that
  Takes in pure web content : JS, HTML, CSS, …
  Spits out a native Qt application
  Provides the usual platform services out of the box
  Can be extended with your own service providers (Qt Service FW
  plugins)

Later on
  Provide a JS UI library
  Deeper tool integration (Qt Creator)
If you want to know what Qt is
    about ;)
    Come check tomorrow
       9:30 - 12:00 Qt fireworks - demonstrating the potential of Qt.
       13-14 Introducing Qt to Symbian Developers




http://www.slideshare.net/pkosonen
We’ll be making it really easy for you
    All you need is Qt Creator – no SDKs ;)




    Integrated with Remote Device Access (RDA) - you don’t
     even need a device ;)
       http://www.forum.nokia.com/rda
       No promises here about dates or months yet…

   Combine hybrid framework with this one
     – isn’t it creepy how easy we can make it for you?
http://www.youtube.com/watch?v=TmFn90Zx2oo
qt.nokia.com




     Thank you very
                    many!
                     Questions?
         pekka.kosonen@
                        nokia.com

24

http://www.slideshare.net/pkosonen

Contenu connexe

Tendances

How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+
Joone Hur
 
Meet Qt 6.0
Meet Qt 6.0 Meet Qt 6.0
Meet Qt 6.0
Qt
 
WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms
philn2
 

Tendances (19)

WebKit2 And You (GUADEC 2013)
WebKit2 And You (GUADEC 2013)WebKit2 And You (GUADEC 2013)
WebKit2 And You (GUADEC 2013)
 
Qt Programming on TI Processors
Qt Programming on TI ProcessorsQt Programming on TI Processors
Qt Programming on TI Processors
 
Qt for beginners part 1 overview and key concepts
Qt for beginners part 1   overview and key conceptsQt for beginners part 1   overview and key concepts
Qt for beginners part 1 overview and key concepts
 
Meet Qt Canada
Meet Qt CanadaMeet Qt Canada
Meet Qt Canada
 
Consumer driven contracts in java world
Consumer driven contracts in java worldConsumer driven contracts in java world
Consumer driven contracts in java world
 
How to use WebKitGtk+
How to use WebKitGtk+How to use WebKitGtk+
How to use WebKitGtk+
 
Meet Qt 6.0
Meet Qt 6.0 Meet Qt 6.0
Meet Qt 6.0
 
Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparisonQt 6.2 lts vs. qt 5.15 the big feature parity comparison
Qt 6.2 lts vs. qt 5.15 the big feature parity comparison
 
Qt for Beginners Part 3 - QML and Qt Quick
Qt for Beginners Part 3 - QML and Qt QuickQt for Beginners Part 3 - QML and Qt Quick
Qt for Beginners Part 3 - QML and Qt Quick
 
Development with Qt for Windows CE
Development with Qt for Windows CEDevelopment with Qt for Windows CE
Development with Qt for Windows CE
 
Paolo Kreth - Persistence layers for microservices – the converged database a...
Paolo Kreth - Persistence layers for microservices – the converged database a...Paolo Kreth - Persistence layers for microservices – the converged database a...
Paolo Kreth - Persistence layers for microservices – the converged database a...
 
GWT_Framework
GWT_FrameworkGWT_Framework
GWT_Framework
 
[Webinar] QtSerialBus: Using Modbus and CAN bus with Qt
[Webinar] QtSerialBus: Using Modbus and CAN bus with Qt[Webinar] QtSerialBus: Using Modbus and CAN bus with Qt
[Webinar] QtSerialBus: Using Modbus and CAN bus with Qt
 
So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?So I Downloaded Qt, Now What?
So I Downloaded Qt, Now What?
 
Building Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and QyotoBuilding Cross-Platform Apps using Qt and Qyoto
Building Cross-Platform Apps using Qt and Qyoto
 
WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms WebKit, HTML5 media and GStreamer on multiple platforms
WebKit, HTML5 media and GStreamer on multiple platforms
 
ClusterEurope2018 - Bootcamp Kubernetes - présentation
ClusterEurope2018 - Bootcamp Kubernetes - présentationClusterEurope2018 - Bootcamp Kubernetes - présentation
ClusterEurope2018 - Bootcamp Kubernetes - présentation
 
Qt for beginners part 4 doing more
Qt for beginners part 4   doing moreQt for beginners part 4   doing more
Qt for beginners part 4 doing more
 
Red Hat and kubernetes: awesome stuff coming your way
Red Hat and kubernetes:  awesome stuff coming your wayRed Hat and kubernetes:  awesome stuff coming your way
Red Hat and kubernetes: awesome stuff coming your way
 

En vedette

Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling
Mark Myers
 

En vedette (15)

Hybrid Cloud Computing - Seccurity Aspects and Challanges
Hybrid Cloud Computing - Seccurity Aspects and ChallangesHybrid Cloud Computing - Seccurity Aspects and Challanges
Hybrid Cloud Computing - Seccurity Aspects and Challanges
 
Cloud Computing Basics by Ravi Namboori Cisco Evangelist
Cloud Computing Basics by Ravi Namboori Cisco EvangelistCloud Computing Basics by Ravi Namboori Cisco Evangelist
Cloud Computing Basics by Ravi Namboori Cisco Evangelist
 
Design and implementation of hybrid cloud computing architecture based on clo...
Design and implementation of hybrid cloud computing architecture based on clo...Design and implementation of hybrid cloud computing architecture based on clo...
Design and implementation of hybrid cloud computing architecture based on clo...
 
Hybrid Cloud Enablement Technologies
Hybrid Cloud Enablement TechnologiesHybrid Cloud Enablement Technologies
Hybrid Cloud Enablement Technologies
 
What is hybrid cloud computing
What is hybrid cloud computingWhat is hybrid cloud computing
What is hybrid cloud computing
 
Hybrid Apps with Qt
Hybrid Apps with QtHybrid Apps with Qt
Hybrid Apps with Qt
 
Hybrid cloud computing explained
Hybrid cloud computing explainedHybrid cloud computing explained
Hybrid cloud computing explained
 
Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling Vertical vs Horizontal Scaling
Vertical vs Horizontal Scaling
 
Hybrid Application Development for Maemo N900 Device using Qt Webkit - Discov...
Hybrid Application Development for Maemo N900 Device using Qt Webkit - Discov...Hybrid Application Development for Maemo N900 Device using Qt Webkit - Discov...
Hybrid Application Development for Maemo N900 Device using Qt Webkit - Discov...
 
Practical Guide to Hybrid Cloud Computing
Practical Guide to Hybrid Cloud ComputingPractical Guide to Hybrid Cloud Computing
Practical Guide to Hybrid Cloud Computing
 
Hybrid Cloud Computing (IBM System z)
Hybrid Cloud Computing (IBM System z)Hybrid Cloud Computing (IBM System z)
Hybrid Cloud Computing (IBM System z)
 
5 BENEFITS OF HYBRID CLOUD
5 BENEFITS OF HYBRID CLOUD5 BENEFITS OF HYBRID CLOUD
5 BENEFITS OF HYBRID CLOUD
 
Cloud computing simple ppt
Cloud computing simple pptCloud computing simple ppt
Cloud computing simple ppt
 
cloud computing ppt
cloud computing pptcloud computing ppt
cloud computing ppt
 
Introduction of Cloud computing
Introduction of Cloud computingIntroduction of Cloud computing
Introduction of Cloud computing
 

Similaire à Next Generation Hybrid Applications with Qt - presentation for SEE 2009

Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
Christian Posta
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
Francesca Tosi
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
Igalia
 

Similaire à Next Generation Hybrid Applications with Qt - presentation for SEE 2009 (20)

Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009Cutest technology of them all - Forum Nokia Qt Webinar December 2009
Cutest technology of them all - Forum Nokia Qt Webinar December 2009
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
[Confoo Montreal 2020] Build Your Own Serverless with Knative - Alex Gervais
 
Steve Bennett .Net Architect/Developer Resume
Steve Bennett .Net Architect/Developer ResumeSteve Bennett .Net Architect/Developer Resume
Steve Bennett .Net Architect/Developer Resume
 
Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)Kubernetes Ingress to Service Mesh (and beyond!)
Kubernetes Ingress to Service Mesh (and beyond!)
 
Transforming the web into a real application platform
Transforming the web into a real application platformTransforming the web into a real application platform
Transforming the web into a real application platform
 
Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017Qt Automotive Suite - under the hood // Qt World Summit 2017
Qt Automotive Suite - under the hood // Qt World Summit 2017
 
Igalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plansIgalia and WebKit: Status update and plans
Igalia and WebKit: Status update and plans
 
The what, why and how of knative
The what, why and how of knativeThe what, why and how of knative
The what, why and how of knative
 
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
WebKit and Blink: Open Development Powering the HTML5 Revolution (LinuxCon No...
 
Google Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEAGoogle Web Toolkit Introduction - eXo Platform SEA
Google Web Toolkit Introduction - eXo Platform SEA
 
Kunal bhatia resume mass
Kunal bhatia   resume massKunal bhatia   resume mass
Kunal bhatia resume mass
 
Qt for S60
Qt for S60Qt for S60
Qt for S60
 
WebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolutionWebKit and Blink: open development powering the HTML5 revolution
WebKit and Blink: open development powering the HTML5 revolution
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 
DevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDKDevCon5 (July 2014) - Acision SDK
DevCon5 (July 2014) - Acision SDK
 
Http Services in Rust on Containers
Http Services in Rust on ContainersHttp Services in Rust on Containers
Http Services in Rust on Containers
 
Add the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKitAdd the power of the Web to your embedded devices with WPE WebKit
Add the power of the Web to your embedded devices with WPE WebKit
 
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
Developing for Industrial IoT with Linux OS on DragonBoard™ 410c: Session 3
 
Building Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and TektonBuilding Event-Driven Workflows with Knative and Tekton
Building Event-Driven Workflows with Knative and Tekton
 

Plus de Nokia

Zalando at Columbia Road_shared
Zalando at Columbia Road_sharedZalando at Columbia Road_shared
Zalando at Columbia Road_shared
Nokia
 
Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...
Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...
Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...
Nokia
 

Plus de Nokia (9)

Zalando at Columbia Road_shared
Zalando at Columbia Road_sharedZalando at Columbia Road_shared
Zalando at Columbia Road_shared
 
Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...
Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...
Radical Agility with Autonomous Teams and Microservices - Pekka Kosonen - 080...
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
 
Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009Qt in depth - presentation for Symbian expo 2009
Qt in depth - presentation for Symbian expo 2009
 
Qt - for stack overflow developer conference
Qt - for stack overflow developer conferenceQt - for stack overflow developer conference
Qt - for stack overflow developer conference
 
Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)Qt For Maemo - getting to the fast-lane (v2)
Qt For Maemo - getting to the fast-lane (v2)
 
Qt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn StrippedQt S60 Technical Presentation Fn Stripped
Qt S60 Technical Presentation Fn Stripped
 
Qt everywhere
Qt everywhereQt everywhere
Qt everywhere
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the air
 

Dernier

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 

Next Generation Hybrid Applications with Qt - presentation for SEE 2009

  • 1. Next Generation Hybrid Applications Utilizing your Web Development Skills with Qt based Solutions Pekka Kosonen Head Of Technology Development Nokia
  • 2.
  • 3. In the year 2010 - Hybrid application? A mashup? A Widget? Thin/Thick client? A full blown application? Always connected? Utilizes web services? Differ in mobile vs. desktop context? Combines several technologies - web and native?
  • 4. Ask google Mashup_(web_application_hybrid) A web page or application that combines data or functionality from two or more external sources to create a new service. Mashups and portals are both content aggregation technologies. Web pages -> Web sites -> Dynamic web sites -> Server- driven/Database driven Web Sites -> Web Applications Hybrid is the next logical step More program than web site Greater interaction with the end user's computer/OS The ability to operate without an internet connection present “best of both worlds"
  • 5. Today Adobe AIR Adobe AIR is a standalone runtime library Web Runtimes Many vendors provide web runtimes Usually a sandbox environment where you can plugin web widgets Some amount of platform services offered Microsoft Silverlight Web browser plug-in that follows along the lines of Flash Designed to be an application platform from day one Developing Hybrid Applications for the iPhone Using HTML, CSS, and JavaScript to Build Dynamic Apps for the iPhone
  • 6. Industry buzz? a hybrid app is everything that a web application is, but carries the concept of "more program than web site" …and a gazillion other widget runtimes
  • 7. What are the good things to “steal” from the web world? HTML5 Portability Ease Speed JavaScript Resource pool WebKit Innovation
  • 8. …but the real world is still fragmented and not complete Device API access How easily can you extend it? Security Speed UX Install base Discoverability
  • 9. Continued googling... Found out that there’s a presentation coming about hybrid applications. Need to go there! Then I noticed it’s mine… http://www.see2009.org/page.cfm/action=Seminars/SeminarID=145 Next Generation Hybrid Applications – Utilizing your Web Development Skills with Qt based Solutions
  • 10. Hybrid app seems to be something like A mashup? A Widget? Thin/Thick client? A full blown application? Seems like more than a mashup or a widget. Always connected? Doesn’t need to be connected. Utilizes web services? Most likely. At least needs to have the means to Combines several technologies - web and native? Seems so... Differ in mobile vs. desktop context? Different features that are important (like location on mobile)
  • 11. Approachability of Programming Hybrid Development Environment Un at Are Easy ta a in Qt context in WRT ab le Easily approachable web technologies Difficult Qt C++ with powerful and scalable Qt C++ Size of Project Small Large A rich selection of features for hybrid development Hybrid Applications QtWebKit module: embed web content from servers, Qt C++ local files or application’s resources Application into Qt applications QtScript module: HTML, CSS, JavaScript make Qt applications scriptable QtXMLPatterns module: shape and mash up XML date yielding HTML output Browser/ Standalone QNetworkAccessManager: Web runtime Application *) interact with server side URL APIs Widgets accessing platform services with JS QWebView *view = new QWebView(parent); view->load(QUrl("http://qt.nokia.com/")); view->show(); Public
  • 12. Interact with Web Services QtWebKit allows Intuitive use of network resources, Easy to embed web content into an application Exposing QWidget to HTML and QObject to JavaScript Calling JavaScript from Qt and vice versa Content may be enhanced with native controls JS Qt OS specific APIs
  • 13. function setStatus() { twit.updateStatus( statusupdate.text ); Javascript } statusupdate.returnPressed.connect(this,setStatu s); QWebFrame *frame = view->currentFrame(); //You can inject JavaScript to be executed frame->evaluateJavaScript(“myAmaging JS Stuff”); //You can expose any QObject to the web view MyQTwitter *twit = new MyQTwitter() frame->addToJavaScriptWindowObject(“twit”,twit); //do what ever you want with native APIs //that you can call directly from Qt CRRSensorApi::FindSensorsL(sensorList);
  • 14. Swing both ways? Go hybrid! combining the best of both worlds Run JS and HTML inside Qt application… WRT Widget Qt application Webkit QWebView running webkit Widgets HTML, CSS, Same HTML, CSS, JavaScript JavaScript Platform Services Native APIs Platform Services implementation Accessing Native APIs through JS
  • 15. Download the core of the hybrid app Stored locally -> easy to update
  • 16. Webview Demo Core app ready – install new JS in In the demo there’s BBC News, games like Rock-Paper-Scissors, Tic-Tac-Toe, Calculator and Bubble Anything from web can be pulled to the hybrid container Statistics: 300 lines of Qt code Size of .sis file: 20 kB Development time: approx. 5 hours Browser/ Standalone Qt C++ Hybrid Web runtime application *) Application HTML, CSS, JavaScript Cool guys swing both ways Go hybrid with Qt and Web!
  • 17. Are we making a Web Runtime? 1) Web developer injects JS+HTML+CSS to the framework. If it spits out an executable we’re not making a web runtime (I think). 2) The framework is installed to device -> developer writes plugins (with JS/HTML/CSS) we are closer to making own WRT (I think) What’s important in the FW Industry compliancy – especially in the APIs that are offered to JS developers Extendability – The features what are offered out of the box are NEVER enough. You want to extend and we’ll let you. UI libraries – easy to use nice looking stuff (TODO show flickr demo and refer to declarative UI) Security
  • 18. Architecture - Yes we have some! Framework From us QWebView running Webkit From real developers Qt script The hybrid app’s core generator – JS, html,.. pushing stuff to From Qt the web view Accessing Native APIs through JS Native – already there Service FW from Qt Mobility APIs 3rd party Qt Mobility plugins APIs OS and native APIs http://labs.trolltech.com/page/Projects/QtScript/Generator
  • 19. As a hybrid app developer you… ...can use your web skills (HTML, CSS, …) to do the UI Or, since QWebView has NPAPI -> Flash Or, you can go nuts and even push native Qt components to webview ...write JS to access platform features If there’s a not a ready service provider implemented feel free to do it (and publish it for others please!)? ...get a Qt application – which is a native application! No runtime performance hits Sources are protected And it works where ever Qt is supported! Distribute it to Ovi store and target 130 million smartphones with Qt 4.6! Remember to open the bank vault before the money trucks arrive!
  • 20. The things to take home with you Qt is available everywhere On desktops OSs as well as smartphones With Qt and Mobility APIs you can make full blown mobile applications With Qt webkit web developers can create native applications No feature restrictions We’re making this easier with a framework that Takes in pure web content : JS, HTML, CSS, … Spits out a native Qt application Provides the usual platform services out of the box Can be extended with your own service providers (Qt Service FW plugins) Later on Provide a JS UI library Deeper tool integration (Qt Creator)
  • 21. If you want to know what Qt is about ;) Come check tomorrow 9:30 - 12:00 Qt fireworks - demonstrating the potential of Qt. 13-14 Introducing Qt to Symbian Developers http://www.slideshare.net/pkosonen
  • 22. We’ll be making it really easy for you  All you need is Qt Creator – no SDKs ;)  Integrated with Remote Device Access (RDA) - you don’t even need a device ;)  http://www.forum.nokia.com/rda  No promises here about dates or months yet… Combine hybrid framework with this one – isn’t it creepy how easy we can make it for you? http://www.youtube.com/watch?v=TmFn90Zx2oo
  • 23. qt.nokia.com Thank you very many! Questions? pekka.kosonen@ nokia.com 24 http://www.slideshare.net/pkosonen