SlideShare a Scribd company logo
How to Customize the MeeGo Tablet UX Gail Rahn Frederick, Intel with contributions from Intel engineers Geoff Gustafson and James Ausmus and screenshots by Bob Spencer!
Agenda MeeGo Tablet UX Overview New APIs in MeeGo Tablet UX Panels API Content API Sharing API Theming a MeeGo Tablet Q&A
What Can be Customized? MeeGo Tablet UX APIs allow developers to: add and change panels publish new kinds of content into panels and search results share user-generated content to social networks and other Web targets Visually re-skin the user experience
MEEGO TABLET UX OVERVIEW
 
 
 
 
 
 
 
PANELS API
Panels API The Panels API adds and changes panels in the tablet home screen. You can: Add a new panel Re-order panels Change panel contents Remove panels See  meego-ux-panels  in MeeGo Gitorious.
Overview Panels are defined in a  .panel  file  in /usr/share/meego-ux-panels/panels/ sets panel properties points to a QML file with panel layout Use Panel UI widgets for consistent UX import MeeGo.Panels 0.1
Example .panel file [Panel] DisplayName=Example  #Used in Panels settings DisplayName[fi]=Esimerkki  #Example translation DefaultIndex=6  #Desired default ordering UniqueName=example  #Used for settings save/load Path=/usr/share/meego-ux-panels/example/examplepanel.qml #Path to actual panel QML
Example Panel import Qt 4.7 import MeeGo.Components 0.1 import MeeGo.Panels 0.1 FlipPanel { id: container Translator { catalog: "meego-ux-panels-example" } front: SimplePanel { panelTitle: qsTr("Example") panelComponent: PrimaryTile { text: "Hello world!“  } back: BackPanelStandard { panelTitle: qsTr("Example settings") subheaderText: qsTr("Example panel content") onClearHistClicked:{ console.log("Clear history clicked!"); } } }
CONTENT API
Content API The Content API integrates content services into the home screen and search: Publish a content feed to the Friends panel Make content available in search results See  meego-ux-content  in MeeGo Gitorious.
Content Properties The Content API supports these content item properties Title text Description text Icon (optional) Thumbnail (optional) Timestamp Default action (tap) Custom actions (context menu)
How to Write a MeeGo Content Plugin Derive plugin class from  McaFeedPlugin Implement  serviceModel()  to provide a list of the services whose content is published in this plugin Implement  createFeedModel()  to provide a live feed of data for Friends panel (optional) Implement  createSearchModel()  to provide search results (optional) Each implemented method returns a  QAbstractItemModel  with a list of items. Now let’s look at each kind of model…
Service Models Derive from  McaServiceModel Each list item describes one service or data source (i.e. social network, Web API, protocol, etc.) Use data roles defined in servicemodel.h Service name (unique to a plugin) Display name Icon Category (use “email”, “social” or “im” in Friends panel) Implement config error and actions to provide the user a quick way to configure the service
Feed Models Derive from  McaFeedModel Each list item is a  relevant  content item Provide content to be displayed Title, content, avatar, picture, timestamp Provide actions object Default action when user taps your content item E.g. open your application to detail view of content Custom actions for a context menu E.g. mark as spam, delete, … Provide  QAbstractItemModel  signals when new content items arrive
Search Models Similar to feed model. Also derive from  McaSearchableFeed Implement  setSearchText()  and provide relevant, matching results Return empty model when search text is empty
SHARING API
Sharing API The Sharing API allows sharing of media and application data to social networks and other Web services.  Sharing happens in panels and apps in the tablet UX. See the API in  meego-ux-sharing  and implementations in  meego-ux-sharing-socialweb  and  meego-ux-sharing-email  on MeeGo Gitorious.
Sharing API Overview Sharing API has two service-specific components: QML UI plugin for sharing UX Add comments, set privacy options, etc. C++ plugin to MeeGo Sharing Daemon Interacts with service to do the sharing operations
Sharing UX The Sharing UX is a QML file containing the service-specific UI. Loaded via a  Loader  component in a Modal Dialog interface MeeGo.Sharing.UI  contains widgets for consistent UX Must emit one of the following signals at the end of the UI flow: cancel()  if share operation was cancelled shareError(string errMsg)  if an error occurred errMsg  is a user-visible translated string shared(int shareid)  if share has started successfully shareid > 0 for tracking share progress shareid < 0 for a share operation that is “fire and forget”
Plugin Interface for MeeGo Sharing Daemon class MeeGoUXSharingServicePluginInterface: public Qobject { Q_OBJECT public: /* … removed some methods to fit slides …*/   virtual QHash<QString, QString>  metaData()  = 0; virtual QList<MeeGoUXSharingServiceInfo>  getServices()  = 0; virtual int  Share(QString serviceName, const QString &sharetype, ArrayOfShareItemStruct items, QString &errmessage)  = 0; virtual bool  CancelShare(QString serviceName, int opid)  = 0; signals: void  ShareProgress(const QString &service, int opid, int progress, const QString &message) ; };
THEMING THE MEEGO TABLET UX
MeeGo Tablet UX Theme A theme is a collection of visual assets and configuration that defines the visual skin of the tablet UX. Theme contents are icons, graphics, backgrounds, fonts, colors and margins. The default MeeGo Tablet theme is open source. meego- ux-theme  project in MeeGo Gitorious
Changing the MeeGo Tablet UX Theme Read  Contributing.txt  and  Icon  naming.txt  to get started. Clone  meego-ux-theme  project locally. Update visual assets and  theme.ini  for your target resolution. (Here’s the visual design magic.) Test your assets on a MeeGo tablet by overwriting the contents of  /usr/share/themes/RESOLUTION with new assets and rebooting. Package updated theme and release upstream or in your product.
Q&A
Thank You MeeGo Tablet UX APIs and Theme are in the  meego-ux  project in MeeGo Gitorious. My Contact Info [email_address] Contact Info for Contributing Engineers Content API [email_address] Panels API, Sharing API [email_address] Freenode #meego channel: jausmus

More Related Content

PDF
MeeGo Mobile OS
PPT
MeeGo linux os
PPTX
Meego Mobile OS
PDF
MeeGo战略及产业动态
PPT
Meego presentation
PDF
MeeGo Presentation
PDF
上午6 4tiitoo stephan.odoerfer_20110406 we_tab slides idf
PDF
Meego Italian Day 2011 – Andrea Grandi
MeeGo Mobile OS
MeeGo linux os
Meego Mobile OS
MeeGo战略及产业动态
Meego presentation
MeeGo Presentation
上午6 4tiitoo stephan.odoerfer_20110406 we_tab slides idf
Meego Italian Day 2011 – Andrea Grandi

What's hot (20)

PPT
A Glimpse On MeeGo
PDF
Tizen Overview and Architecture - Seokjae Jeong (Samsung) - Korea Linux Forum...
PPTX
Latest Development Of MeeGo
PDF
Developing Tizen Operating System Based Solutions - IDF2013 Beijing
PPT
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
PDF
Meego Italian Day 2011 - Dr. Luca Roffia
DOCX
Tizen os seminar report
PPT
Android 1
PDF
A first look_at_google_android
PDF
[Ajou unib.] Tizen v2.4 z3 practice
PPTX
Tizen operating system by srisailam
PDF
Webinar Roadmap TotalCross 2020
PDF
ALP_E_2009_01
PDF
Nokia Developer Offering 2011
PPTX
Tizen Operating System
PPTX
Know all about android development
PPTX
Tizen OS
PPTX
Android Technology
PPTX
Seminar on Tizen OS
A Glimpse On MeeGo
Tizen Overview and Architecture - Seokjae Jeong (Samsung) - Korea Linux Forum...
Latest Development Of MeeGo
Developing Tizen Operating System Based Solutions - IDF2013 Beijing
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Meego Italian Day 2011 - Dr. Luca Roffia
Tizen os seminar report
Android 1
A first look_at_google_android
[Ajou unib.] Tizen v2.4 z3 practice
Tizen operating system by srisailam
Webinar Roadmap TotalCross 2020
ALP_E_2009_01
Nokia Developer Offering 2011
Tizen Operating System
Know all about android development
Tizen OS
Android Technology
Seminar on Tizen OS
Ad

Similar to How to Customize the MeeGo Tablet UX (20)

PPTX
Model View Presenter (MVP) In Aspnet
PDF
100 actionable steps to create a simple HTML-based Single Page App.pdf
PPTX
Use Eclipse technologies to build a modern embedded IDE
PPTX
Workshop Android for Java Developers
PDF
Swift
PPT
Multimedia Authoring Tools.ppt
PPTX
Share point 2010-uiimprovements
PDF
Unlock the Power of Mui Breakpoints and Make Great Projects.pdf
PPTX
BCAVIMultimediaunhgghghghghghghgit2.pptx
PPTX
Code camp 2011 Getting Started with IOS, Una Daly
PDF
Faites évoluer votre accès aux données avec MongoDB Stitch
PPTX
ITE 1122_ AWT and SWING.pptx
PDF
PPT
Chapter 2 multimedia authoring and tools
PDF
chapter2multimediaauthoringandtools-160131194415.pdf
PPTX
Introduction to Shiny for building web apps in R
PDF
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
PPT
Introduction to the INTEGRAL FRAMEWORK
PPT
Introduction to the integral framework
PDF
What is Angular and some of the terms used
Model View Presenter (MVP) In Aspnet
100 actionable steps to create a simple HTML-based Single Page App.pdf
Use Eclipse technologies to build a modern embedded IDE
Workshop Android for Java Developers
Swift
Multimedia Authoring Tools.ppt
Share point 2010-uiimprovements
Unlock the Power of Mui Breakpoints and Make Great Projects.pdf
BCAVIMultimediaunhgghghghghghghgit2.pptx
Code camp 2011 Getting Started with IOS, Una Daly
Faites évoluer votre accès aux données avec MongoDB Stitch
ITE 1122_ AWT and SWING.pptx
Chapter 2 multimedia authoring and tools
chapter2multimediaauthoringandtools-160131194415.pdf
Introduction to Shiny for building web apps in R
Desktop Developer’s Guide to Mobile with Visual Studio Tools for Xamarin
Introduction to the INTEGRAL FRAMEWORK
Introduction to the integral framework
What is Angular and some of the terms used
Ad

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
Encapsulation theory and applications.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Network Security Unit 5.pdf for BCA BBA.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Encapsulation theory and applications.pdf
Encapsulation_ Review paper, used for researhc scholars
Network Security Unit 5.pdf for BCA BBA.
“AI and Expert System Decision Support & Business Intelligence Systems”
Dropbox Q2 2025 Financial Results & Investor Presentation
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
The Rise and Fall of 3GPP – Time for a Sabbatical?
Digital-Transformation-Roadmap-for-Companies.pptx
Assigned Numbers - 2025 - Bluetooth® Document
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The AUB Centre for AI in Media Proposal.docx
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
A comparative analysis of optical character recognition models for extracting...
Reach Out and Touch Someone: Haptics and Empathic Computing
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

How to Customize the MeeGo Tablet UX

  • 1. How to Customize the MeeGo Tablet UX Gail Rahn Frederick, Intel with contributions from Intel engineers Geoff Gustafson and James Ausmus and screenshots by Bob Spencer!
  • 2. Agenda MeeGo Tablet UX Overview New APIs in MeeGo Tablet UX Panels API Content API Sharing API Theming a MeeGo Tablet Q&A
  • 3. What Can be Customized? MeeGo Tablet UX APIs allow developers to: add and change panels publish new kinds of content into panels and search results share user-generated content to social networks and other Web targets Visually re-skin the user experience
  • 4. MEEGO TABLET UX OVERVIEW
  • 5.  
  • 6.  
  • 7.  
  • 8.  
  • 9.  
  • 10.  
  • 11.  
  • 13. Panels API The Panels API adds and changes panels in the tablet home screen. You can: Add a new panel Re-order panels Change panel contents Remove panels See meego-ux-panels in MeeGo Gitorious.
  • 14. Overview Panels are defined in a .panel file in /usr/share/meego-ux-panels/panels/ sets panel properties points to a QML file with panel layout Use Panel UI widgets for consistent UX import MeeGo.Panels 0.1
  • 15. Example .panel file [Panel] DisplayName=Example #Used in Panels settings DisplayName[fi]=Esimerkki #Example translation DefaultIndex=6 #Desired default ordering UniqueName=example #Used for settings save/load Path=/usr/share/meego-ux-panels/example/examplepanel.qml #Path to actual panel QML
  • 16. Example Panel import Qt 4.7 import MeeGo.Components 0.1 import MeeGo.Panels 0.1 FlipPanel { id: container Translator { catalog: &quot;meego-ux-panels-example&quot; } front: SimplePanel { panelTitle: qsTr(&quot;Example&quot;) panelComponent: PrimaryTile { text: &quot;Hello world!“ } back: BackPanelStandard { panelTitle: qsTr(&quot;Example settings&quot;) subheaderText: qsTr(&quot;Example panel content&quot;) onClearHistClicked:{ console.log(&quot;Clear history clicked!&quot;); } } }
  • 18. Content API The Content API integrates content services into the home screen and search: Publish a content feed to the Friends panel Make content available in search results See meego-ux-content in MeeGo Gitorious.
  • 19. Content Properties The Content API supports these content item properties Title text Description text Icon (optional) Thumbnail (optional) Timestamp Default action (tap) Custom actions (context menu)
  • 20. How to Write a MeeGo Content Plugin Derive plugin class from McaFeedPlugin Implement serviceModel() to provide a list of the services whose content is published in this plugin Implement createFeedModel() to provide a live feed of data for Friends panel (optional) Implement createSearchModel() to provide search results (optional) Each implemented method returns a QAbstractItemModel with a list of items. Now let’s look at each kind of model…
  • 21. Service Models Derive from McaServiceModel Each list item describes one service or data source (i.e. social network, Web API, protocol, etc.) Use data roles defined in servicemodel.h Service name (unique to a plugin) Display name Icon Category (use “email”, “social” or “im” in Friends panel) Implement config error and actions to provide the user a quick way to configure the service
  • 22. Feed Models Derive from McaFeedModel Each list item is a relevant content item Provide content to be displayed Title, content, avatar, picture, timestamp Provide actions object Default action when user taps your content item E.g. open your application to detail view of content Custom actions for a context menu E.g. mark as spam, delete, … Provide QAbstractItemModel signals when new content items arrive
  • 23. Search Models Similar to feed model. Also derive from McaSearchableFeed Implement setSearchText() and provide relevant, matching results Return empty model when search text is empty
  • 25. Sharing API The Sharing API allows sharing of media and application data to social networks and other Web services. Sharing happens in panels and apps in the tablet UX. See the API in meego-ux-sharing and implementations in meego-ux-sharing-socialweb and meego-ux-sharing-email on MeeGo Gitorious.
  • 26. Sharing API Overview Sharing API has two service-specific components: QML UI plugin for sharing UX Add comments, set privacy options, etc. C++ plugin to MeeGo Sharing Daemon Interacts with service to do the sharing operations
  • 27. Sharing UX The Sharing UX is a QML file containing the service-specific UI. Loaded via a Loader component in a Modal Dialog interface MeeGo.Sharing.UI contains widgets for consistent UX Must emit one of the following signals at the end of the UI flow: cancel() if share operation was cancelled shareError(string errMsg) if an error occurred errMsg is a user-visible translated string shared(int shareid) if share has started successfully shareid > 0 for tracking share progress shareid < 0 for a share operation that is “fire and forget”
  • 28. Plugin Interface for MeeGo Sharing Daemon class MeeGoUXSharingServicePluginInterface: public Qobject { Q_OBJECT public: /* … removed some methods to fit slides …*/ virtual QHash<QString, QString> metaData() = 0; virtual QList<MeeGoUXSharingServiceInfo> getServices() = 0; virtual int Share(QString serviceName, const QString &sharetype, ArrayOfShareItemStruct items, QString &errmessage) = 0; virtual bool CancelShare(QString serviceName, int opid) = 0; signals: void ShareProgress(const QString &service, int opid, int progress, const QString &message) ; };
  • 29. THEMING THE MEEGO TABLET UX
  • 30. MeeGo Tablet UX Theme A theme is a collection of visual assets and configuration that defines the visual skin of the tablet UX. Theme contents are icons, graphics, backgrounds, fonts, colors and margins. The default MeeGo Tablet theme is open source. meego- ux-theme project in MeeGo Gitorious
  • 31. Changing the MeeGo Tablet UX Theme Read Contributing.txt and Icon naming.txt to get started. Clone meego-ux-theme project locally. Update visual assets and theme.ini for your target resolution. (Here’s the visual design magic.) Test your assets on a MeeGo tablet by overwriting the contents of /usr/share/themes/RESOLUTION with new assets and rebooting. Package updated theme and release upstream or in your product.
  • 32. Q&A
  • 33. Thank You MeeGo Tablet UX APIs and Theme are in the meego-ux project in MeeGo Gitorious. My Contact Info [email_address] Contact Info for Contributing Engineers Content API [email_address] Panels API, Sharing API [email_address] Freenode #meego channel: jausmus

Editor's Notes

  • #2: Welcome again to MeeGo conference. Today, we’ll learn how to customize the MeeGo Tablet UX using APIs and themes. My name is Gail Frederick and I work at Intel. This presentation is a business and technical collaboration between myself and two key Intel engineers developing the tablet UX, Geoff Gustafson and James Ausmus. They aren’t here today, but they are available via email to answer technical questions about the APIs we will discuss today.
  • #3: This session discusses three new APIs in the MeeGo Tablet UX and how they are used to change the look-and-feel and behavior of a MeeGo Tablet. Then, we will explore the default MeeGo tablet theme and describe how to achieve visual differentiation by re-theming the UX. We’ll save time for a short Q&amp;A session. The Panels API allows you to add and change the home screen panels. The Content API allows you to publish content to the Friends panel and to a search application. The Sharing API allows you to integrate media and status sharing targets (i.e. social networks) into the UX. The theme is the place where visual assets and configuration (fonts, colors, whitespace, etc.) are modified.
  • #5: First, let’s start with a quick overview of the MeeGo Tablet user experience. This will highlight where in the UX developers can use tablet APIs to change the experience.
  • #13: Now let’s talk about the three new APIs in the MeeGo Tablet UX
  • #14: The Panels API modifies existing panels and adds new content into the panels in the tablet home screen. More convention than API, it allows you to customize the home screen in any way.
  • #15: .panel file has a similar in format to a .desktop file
  • #18: Now let’s talk about the Content API
  • #19: The content API is a publishing API for making third-party content items available in the home screen and search results of the tablet UX. Search in MeeGo Tablet UX today is available as an API only. No built-in app or UX is available.
  • #20: A content item in the API can specify these properties and actions for a content item
  • #21: How do you use the content API? Write a content plugin and convey service content through lists of items in QAbstractItemModel
  • #22: The Service Model describes the data source for the plugin - meaning the Web app or social network (i.e. Facebook, Last.fm, etc.) that you are integrating into the tablet UX.
  • #23: The Feed model provides a feed of content items (i.e. social status updates, received IMs, etc) to be integrated into the Friends panel. The model defines content item properties and actions to perform when the user interacts with the content item.
  • #25: Now let’s talk about the Sharing API
  • #26: The Share API allows sharing of media and other kinds of application data with others across social networks and other Web services. Sharing happens in panels and applications in the tablet UX.
  • #27: The front-end of the Sharing API is a QML wizard that walks the user through the sharing process (which is service-specific).
  • #29: The back-end of the Sharing API is a C++ plugin for MeeGo Sharing Daemon that performs the sharing mechanics.
  • #30: Now let’s talk about how to change the visual design of the tablet UX.
  • #31: Another way to differentiate a MeeGo Tablet product is by re-theming the UX. The MeeGo Tablet UX theme is a collection of visual assets that