SlideShare ist ein Scribd-Unternehmen logo
1 von 31
KDE Plasma Mobile workspaces




         Marco Martin
What is Plasma?
What is Plasma?

●   A primary user interface:
    ●   For desktops
    ●   Netbooks
    ●   Smartphones
    ●   Tablets
    ●   Media centers
●   A framework:
    ●   For data visualization and editing
    ●   A touch friendly, QGraphicsView based widget library
    ●   Useful to write sandboxed, simple web oriented applications
History
History

●   Before Plasma: in KDE 2 and 3
    ●   Window manager: Kwin
    ●
        Desktop: Kdesktop: desop icons, no 3rd party
        extensibility
    ●   Panels: Kicker: components such as taskbar are
        plugins, simple api, but limited to panels
    ●   Superkaramba: desktop widget system, plugins
        written in Python, not compatible with Kicker
KDE Workspace 4
KDE Workspace 4.0



●   Qt4
●   QGraphicsView
●   Single API: no more 3 incompatible applications
Plasma

●   Everything is a plugin
●   Same widgets can run on panel and desktop:
    the concept of formfactors
●   Unified framework with strong model/view
    emphasis
Plasma Desktop

●   Even desktop icons become an optional plugin
●   You can have multiple “desktop” folders in
    different areas -> easy to work on different
    projects
●   The concept of “activities”: depending on “what
    you are doing right now”
    ●   completely different content in the desktop
    ●   Different set of windows shown
    ●   Different behaviour of individual applications
Plasma library

●   The library that makes this possible has several
    components
●   Visual: facilities for data visualization, such as a
    widget set and the management/layouting of
    visual plugins
●   Data: fetching and editing of any kind of data
    trough plugins with a simple and unified api
Visualization

●   Plasma::Applet: is a QGraphicsWidget basic visual component: all
    visualization plugins inherit from it
●   Containment: is an Applet: contains other applets, manages their position,
    size, formfactor and lifetime
●   Corona: it's a QGraphicsScene: only contaiments are directly inserted into
    it, manages the association between containments and Viewports
●   View: It's a QGraphicsView, it has an association 1:1 with a Containment,
    their geometries are syncronized
●   Widget set: set of standard (QGraphics) widgets, from pushbuttons to
    flickable views, themed with an SVG engine
Data

●   DataEngine and DataContainer: all data providing
    plugins are instances of DataEngine
    ●   Shared between applets
    ●   A data item will be represented by an unique (in the
        DataEngine context) identifier string and will be wrapped
        in a DataContainer
    ●   An applet can use more than one dataengine and
        mash-up the resulting data
●   Service: the way to write data
    ●   If i want to post a twitter update i'll get the service
        associated with the source that represents my account
Other features

●   Package: an Applet can be packaged and distributed
    around: it's called plasmoid and is managed by the
    Package class, that can install and uninstall them per
    user. They should be written with a scripted binding,
    preferably Javascript
●   Remote applets: A system can export its running
    Applets trough the network, the Package will be sent
    across o the client machine and the
    dataengines/services will run on the sharing one:
    ●   Remote control
Netbook: differences

●   Not only power and screen size: different use
    case from notebooks
●   A “desktop” doesn't make sense
●   The desktop is an “application”
●   No border maximized windows
●   Present windows is the taskbar
●   Some other different default settings
Netbook: Search and launch
Netbook: Search and launch




   ●   Search more intuitive than browsing categories
   ●   Reuses runners
   ●   Simple menu, no trees
   ●   Use of flicking and drag and drop
Netbook: newspaper
Netbook: newspaper




●   Touchscreen friendly
●   Primary place for widgets
●   Biggest use case: PIM and webservice client
    widgets
Plasma Mobile


●   Can KDE technologies provided an unified, yet
    different experience across diffrent devices?
●   Part of the libraries and the look and feel are
    preserved
●   Here we want a different workspace and
    applications UI, while maintaining the logic
    behind
Challenges



●   Smaller physical screen size
●   Limited hardware resources
●   Different user interaction flow
Mobile profiles

●   Different slimmed down profiles
●   KDE libraries modules become optional
    ●   Solid
    ●   Kioslave
    ●   KnewStuff
●   Smaller packages
●   Smaller memory footprint
Plasma Mobile


●   Devices are eterogeneous
●   Need for flexibility
●   Configuration
●   Ease of development
●   Test bench for the integration of QtQUICK in
    Plasma
Plasma Mobile


●   Smartphones today: grid of icons, sometimes a
    space for “widgets”
●   Difficult organization
●   Plasma Mobile: “context aware”, who i am,
    where i am, what i'm doing
●   Set of “activities” like work, messaging, social,
    games
Plasma Mobile
Plasma Mobile
Plasma Mobile
Plasma Mobile
Tablet
Tablet
Tablet



●   Plasma mobile shell
●   Custom QML files
●   Plasma Netbook Newspaper and
    Search and Launch
Questions?

Weitere ähnliche Inhalte

Ähnlich wie KDE Plasma Mobile workspaces at Cybercom Developer Day 2010 by Marco Martin 7.9.2010

Akademy 2010 presentation
Akademy 2010 presentationAkademy 2010 presentation
Akademy 2010 presentationMarco Martin
 
Tokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma NetbookTokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma NetbookMarco Martin
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...OW2
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDoku
 
Google Dev Fest Presentation
Google Dev Fest PresentationGoogle Dev Fest Presentation
Google Dev Fest PresentationAndrew Mackenzie
 
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012Andrew Mackenzie
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadKarthik Murugesan
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...Databricks
 
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Dan Farrelly
 
Full stack development
Full stack developmentFull stack development
Full stack developmentArnav Gupta
 
Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Daker Fernandes
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native EnvironmentsWSO2
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJSJITENDRA KUMAR PATEL
 
Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Tomáš Kypta
 
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Tomáš Kypta
 
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQTJerlyn Manohar
 
Collaborative environment with data science notebook
Collaborative environment with data science notebook Collaborative environment with data science notebook
Collaborative environment with data science notebook Moon Soo Lee
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartConFoo
 

Ähnlich wie KDE Plasma Mobile workspaces at Cybercom Developer Day 2010 by Marco Martin 7.9.2010 (20)

Akademy 2010 presentation
Akademy 2010 presentationAkademy 2010 presentation
Akademy 2010 presentation
 
Tokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma NetbookTokamak 4: KDE Plasma Netbook
Tokamak 4: KDE Plasma Netbook
 
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...DocDoku: Using web technologies in a desktop application. OW2con'15, November...
DocDoku: Using web technologies in a desktop application. OW2con'15, November...
 
DocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winnerDocDokuPLM presentation - OW2Con 2015 Community Award winner
DocDokuPLM presentation - OW2Con 2015 Community Award winner
 
Google Dev Fest Presentation
Google Dev Fest PresentationGoogle Dev Fest Presentation
Google Dev Fest Presentation
 
Google DevFest 2012 Presentation
Google DevFest 2012 PresentationGoogle DevFest 2012 Presentation
Google DevFest 2012 Presentation
 
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
Developing TouchActive with GAE and GWT - Google DevFest Barcelona 2012
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHead
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
Building a Pluggable, Cloud-native Event-driven Serverless Architecture - Rea...
 
Full stack development
Full stack developmentFull stack development
Full stack development
 
Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13Plasmaquick Workshop - FISL 13
Plasmaquick Workshop - FISL 13
 
[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments[WSO2Con Asia 2018] Architecting for Container-native Environments
[WSO2Con Asia 2018] Architecting for Container-native Environments
 
Introduction to node.js aka NodeJS
Introduction to node.js aka NodeJSIntroduction to node.js aka NodeJS
Introduction to node.js aka NodeJS
 
Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012Android development - the basics, FI MUNI, 2012
Android development - the basics, FI MUNI, 2012
 
GCP overview
GCP overviewGCP overview
GCP overview
 
Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012Android development - the basics, MFF UK, 2012
Android development - the basics, MFF UK, 2012
 
How to approach building GUIs using PyQT
How to approach building GUIs using PyQTHow to approach building GUIs using PyQT
How to approach building GUIs using PyQT
 
Collaborative environment with data science notebook
Collaborative environment with data science notebook Collaborative environment with data science notebook
Collaborative environment with data science notebook
 
Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 

KDE Plasma Mobile workspaces at Cybercom Developer Day 2010 by Marco Martin 7.9.2010

  • 1. KDE Plasma Mobile workspaces Marco Martin
  • 3. What is Plasma? ● A primary user interface: ● For desktops ● Netbooks ● Smartphones ● Tablets ● Media centers ● A framework: ● For data visualization and editing ● A touch friendly, QGraphicsView based widget library ● Useful to write sandboxed, simple web oriented applications
  • 5. History ● Before Plasma: in KDE 2 and 3 ● Window manager: Kwin ● Desktop: Kdesktop: desop icons, no 3rd party extensibility ● Panels: Kicker: components such as taskbar are plugins, simple api, but limited to panels ● Superkaramba: desktop widget system, plugins written in Python, not compatible with Kicker
  • 7. KDE Workspace 4.0 ● Qt4 ● QGraphicsView ● Single API: no more 3 incompatible applications
  • 8. Plasma ● Everything is a plugin ● Same widgets can run on panel and desktop: the concept of formfactors ● Unified framework with strong model/view emphasis
  • 9. Plasma Desktop ● Even desktop icons become an optional plugin ● You can have multiple “desktop” folders in different areas -> easy to work on different projects ● The concept of “activities”: depending on “what you are doing right now” ● completely different content in the desktop ● Different set of windows shown ● Different behaviour of individual applications
  • 10. Plasma library ● The library that makes this possible has several components ● Visual: facilities for data visualization, such as a widget set and the management/layouting of visual plugins ● Data: fetching and editing of any kind of data trough plugins with a simple and unified api
  • 11. Visualization ● Plasma::Applet: is a QGraphicsWidget basic visual component: all visualization plugins inherit from it ● Containment: is an Applet: contains other applets, manages their position, size, formfactor and lifetime ● Corona: it's a QGraphicsScene: only contaiments are directly inserted into it, manages the association between containments and Viewports ● View: It's a QGraphicsView, it has an association 1:1 with a Containment, their geometries are syncronized ● Widget set: set of standard (QGraphics) widgets, from pushbuttons to flickable views, themed with an SVG engine
  • 12. Data ● DataEngine and DataContainer: all data providing plugins are instances of DataEngine ● Shared between applets ● A data item will be represented by an unique (in the DataEngine context) identifier string and will be wrapped in a DataContainer ● An applet can use more than one dataengine and mash-up the resulting data ● Service: the way to write data ● If i want to post a twitter update i'll get the service associated with the source that represents my account
  • 13. Other features ● Package: an Applet can be packaged and distributed around: it's called plasmoid and is managed by the Package class, that can install and uninstall them per user. They should be written with a scripted binding, preferably Javascript ● Remote applets: A system can export its running Applets trough the network, the Package will be sent across o the client machine and the dataengines/services will run on the sharing one: ● Remote control
  • 14. Netbook: differences ● Not only power and screen size: different use case from notebooks ● A “desktop” doesn't make sense ● The desktop is an “application” ● No border maximized windows ● Present windows is the taskbar ● Some other different default settings
  • 16. Netbook: Search and launch ● Search more intuitive than browsing categories ● Reuses runners ● Simple menu, no trees ● Use of flicking and drag and drop
  • 18. Netbook: newspaper ● Touchscreen friendly ● Primary place for widgets ● Biggest use case: PIM and webservice client widgets
  • 19. Plasma Mobile ● Can KDE technologies provided an unified, yet different experience across diffrent devices? ● Part of the libraries and the look and feel are preserved ● Here we want a different workspace and applications UI, while maintaining the logic behind
  • 20. Challenges ● Smaller physical screen size ● Limited hardware resources ● Different user interaction flow
  • 21. Mobile profiles ● Different slimmed down profiles ● KDE libraries modules become optional ● Solid ● Kioslave ● KnewStuff ● Smaller packages ● Smaller memory footprint
  • 22. Plasma Mobile ● Devices are eterogeneous ● Need for flexibility ● Configuration ● Ease of development ● Test bench for the integration of QtQUICK in Plasma
  • 23. Plasma Mobile ● Smartphones today: grid of icons, sometimes a space for “widgets” ● Difficult organization ● Plasma Mobile: “context aware”, who i am, where i am, what i'm doing ● Set of “activities” like work, messaging, social, games
  • 30. Tablet ● Plasma mobile shell ● Custom QML files ● Plasma Netbook Newspaper and Search and Launch