SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
Xwt
A cross-desktop UI toolkit


      Jérémie Laval




     @jeremie_laval
Quickie about me




     A Xamarin-ista

     Mono Contributor (classlib, Pfx, PLinq, …)

     MonoDevelop team (these days)
Xwt: WAT?




            X-platform Widget Toolkit
            One UI toolkit to rule them all
Why Xwt?

     Pushing native UI feature with minimal cost

     Goals:
          Long-term → Xwt-based MonoDevelop
          Short-term → share UI features between VS and MD

     Create a nicer (hopefully!) API in the process
Xwt all the things




                 Xamarin Android Designer
Where we stand




     2 main approaches: WxWidgets and Qt

     WxWidgets → native widgets, limited to common denominator

     Qt → fully emulated, look&feel through theming
        *
            : Xwt strikes a balance of both


                                 *
                                     (   = Lluis Sanchez, Xwt creator, as Dogbert)
Design goals

      Not general purpose, solving a problem at hand

      Architecture:
           MVC
           Gtk box model
           Cairo-like drawing API

      Can be easily integrated with existing UI code
Relationship with Gtk




      NIH, we borrow heavily from Gtk+ API

         : We love Gtk but…

      Simpler widget hierarchy

      No (Gtk,Gdk)Window dichotomy

      No container class
Where we differ




    Miguel on WPF (2004): “The implementation details transpire everywhere”
General architecture
What it looks like?
Demo




       Let's make a new widget: awesometacular arrow
Demo



       Let's integrate Xwt with Gtk
Demo



       Let's spicy up Xwt.Gtk with Xwt.Mac
The Future




      Sort out the WPF backend (layout, drawing, …)

      Animation support (CoreAnimation, Clutter, …)

      More widgets
The Good Stuff




      https://github.com/mono/xwt
      https://github.com/mono/xwt/wiki/Coding-Guidelines
      http://group.google.com/group/xwt-list
The End




          Questions?

Contenu connexe

Tendances

Quick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using JavascriptQuick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using Javascript
Robert Ellen
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
rmitc
 

Tendances (19)

Finding the Balance between Pedagogy and Technology
Finding the Balance between Pedagogy and TechnologyFinding the Balance between Pedagogy and Technology
Finding the Balance between Pedagogy and Technology
 
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
What's new with JavaScript in GNOME: The 2020 edition (GUADEC 2020)
 
The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)The WebKit project (LinuxCon North America 2012)
The WebKit project (LinuxCon North America 2012)
 
Migrating from Photon to Qt
Migrating from Photon to QtMigrating from Photon to Qt
Migrating from Photon to Qt
 
Knowit study group örnsköldsvik - introduction to qt & qt creator
Knowit   study group örnsköldsvik - introduction to qt & qt creatorKnowit   study group örnsköldsvik - introduction to qt & qt creator
Knowit study group örnsköldsvik - introduction to qt & qt creator
 
GWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO ToolsGWT - Building Rich Internet Applications Using OO Tools
GWT - Building Rich Internet Applications Using OO Tools
 
Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!Qt Creator, l'arma segreta!
Qt Creator, l'arma segreta!
 
SqueakGTK
SqueakGTKSqueakGTK
SqueakGTK
 
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive  3D graphics for web with three.js, Andrey Vedilin, DataArtInteractive  3D graphics for web with three.js, Andrey Vedilin, DataArt
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
 
Minecraft in 500 lines of Python with Pyglet
Minecraft in 500 lines of Python with PygletMinecraft in 500 lines of Python with Pyglet
Minecraft in 500 lines of Python with Pyglet
 
Minecraft in 500 lines with Pyglet - PyCon UK
Minecraft in 500 lines with Pyglet - PyCon UKMinecraft in 500 lines with Pyglet - PyCon UK
Minecraft in 500 lines with Pyglet - PyCon UK
 
Quick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using JavascriptQuick Review of Desktop and Native Apps using Javascript
Quick Review of Desktop and Native Apps using Javascript
 
Unity’s Artist Workflow Level Up | Liz Mercuri
Unity’s Artist Workflow Level Up | Liz MercuriUnity’s Artist Workflow Level Up | Liz Mercuri
Unity’s Artist Workflow Level Up | Liz Mercuri
 
Software Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business LogicSoftware Development Best Practices: Separating UI from Business Logic
Software Development Best Practices: Separating UI from Business Logic
 
Qt Tutorial - Part 1
Qt Tutorial - Part 1Qt Tutorial - Part 1
Qt Tutorial - Part 1
 
Virtual Reality in Android
Virtual Reality in AndroidVirtual Reality in Android
Virtual Reality in Android
 
2016 NEMO-UX Introduction
2016 NEMO-UX Introduction2016 NEMO-UX Introduction
2016 NEMO-UX Introduction
 
Chromium Ozone
Chromium OzoneChromium Ozone
Chromium Ozone
 
ExactTarget - Node On The Road
ExactTarget - Node On The RoadExactTarget - Node On The Road
ExactTarget - Node On The Road
 

Similaire à Xwt, a cross-desktop UI library

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
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007
lucclaes
 
A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010
Rex Tsai
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
Igalia
 
Node.js an introduction
Node.js   an introductionNode.js   an introduction
Node.js an introduction
Meraj Khattak
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
Francesca Tosi
 

Similaire à Xwt, a cross-desktop UI library (20)

Qt
QtQt
Qt
 
The WebKit project
The WebKit projectThe WebKit project
The WebKit project
 
Rapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWTRapid and Reliable Developing with HTML5 & GWT
Rapid and Reliable Developing with HTML5 & GWT
 
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
 
Qtframework
QtframeworkQtframework
Qtframework
 
Intro to gui, cross platform and qt
Intro to gui, cross platform and qtIntro to gui, cross platform and qt
Intro to gui, cross platform and qt
 
Google Dev Day2007
Google Dev Day2007Google Dev Day2007
Google Dev Day2007
 
SWT - Technical Deep Dive
SWT - Technical Deep DiveSWT - Technical Deep Dive
SWT - Technical Deep Dive
 
Andreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith QtAndreas Jakl Software Development on Nokia Deviceswith Qt
Andreas Jakl Software Development on Nokia Deviceswith Qt
 
Developing and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with XgxperfDeveloping and Benchmarking Qt applications on Hawkboard with Xgxperf
Developing and Benchmarking Qt applications on Hawkboard with Xgxperf
 
Qt introduction
Qt introductionQt introduction
Qt introduction
 
A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010A Study of SVG-based Application Development @ OSDC 2010
A Study of SVG-based Application Development @ OSDC 2010
 
Building End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPEBuilding End-user Applications on Embedded Devices with WPE
Building End-user Applications on Embedded Devices with WPE
 
Node.js an introduction
Node.js   an introductionNode.js   an introduction
Node.js an introduction
 
Flutter
FlutterFlutter
Flutter
 
Cross Platform Qt
Cross Platform QtCross Platform Qt
Cross Platform Qt
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
 
DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.DIY: Computer Vision with GWT.
DIY: Computer Vision with GWT.
 
DIY- computer vision with GWT
DIY- computer vision with GWTDIY- computer vision with GWT
DIY- computer vision with GWT
 
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009Next Generation Hybrid Applications with Qt - presentation for SEE 2009
Next Generation Hybrid Applications with Qt - presentation for SEE 2009
 

Dernier

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Dernier (20)

What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 

Xwt, a cross-desktop UI library

  • 1. Xwt A cross-desktop UI toolkit Jérémie Laval @jeremie_laval
  • 2. Quickie about me A Xamarin-ista Mono Contributor (classlib, Pfx, PLinq, …) MonoDevelop team (these days)
  • 3. Xwt: WAT? X-platform Widget Toolkit One UI toolkit to rule them all
  • 4. Why Xwt? Pushing native UI feature with minimal cost Goals: Long-term → Xwt-based MonoDevelop Short-term → share UI features between VS and MD Create a nicer (hopefully!) API in the process
  • 5. Xwt all the things Xamarin Android Designer
  • 6. Where we stand 2 main approaches: WxWidgets and Qt WxWidgets → native widgets, limited to common denominator Qt → fully emulated, look&feel through theming * : Xwt strikes a balance of both * ( = Lluis Sanchez, Xwt creator, as Dogbert)
  • 7. Design goals Not general purpose, solving a problem at hand Architecture: MVC Gtk box model Cairo-like drawing API Can be easily integrated with existing UI code
  • 8. Relationship with Gtk NIH, we borrow heavily from Gtk+ API : We love Gtk but… Simpler widget hierarchy No (Gtk,Gdk)Window dichotomy No container class
  • 9. Where we differ Miguel on WPF (2004): “The implementation details transpire everywhere”
  • 11. What it looks like?
  • 12. Demo Let's make a new widget: awesometacular arrow
  • 13. Demo Let's integrate Xwt with Gtk
  • 14. Demo Let's spicy up Xwt.Gtk with Xwt.Mac
  • 15. The Future Sort out the WPF backend (layout, drawing, …) Animation support (CoreAnimation, Clutter, …) More widgets
  • 16. The Good Stuff https://github.com/mono/xwt https://github.com/mono/xwt/wiki/Coding-Guidelines http://group.google.com/group/xwt-list
  • 17. The End Questions?