SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
Hildon 2.2:
the Hildon toolkit for Fremantle
Maemo Summit 2009 – Westergasfabriek Amsterdam

Alberto Garcia
agarcia@igalia.com
Claudio Saavedra
csaavedra@igalia.com
Introduction
Hildon widgets library
●   Set of widgets built on top of GTK+

●   Created for Nokia devices based on the Maemo platform:

     – Nokia 770
     – Nokia N800
     – Nokia N810
     – Nokia N900

●   Released under the GNU LGPL

●   Used also in other projects (e.g Ubuntu Mobile)
Maemo 5 - Fremantle

●   Maemo release for the Nokia N900

●   Modern, usable and finger-friendly UI

●   Completely revamped user interface, very different from all
    previous versions

●   Hildon 2.2.0 released on 24 September 2009
Hildon 2.0: Modest




http://www.flickr.com/photos/yerga/ / CC BY-NC 2.0
Hildon 2.0: Modest




http://www.flickr.com/photos/yerga/ / CC BY-NC 2.0
Hildon 2.2: Modest
Hildon 2.2: Modest
Hildon source lines of code



●   Hildon 1.0 (16 Apr 2007): 23,026

●   Hildon 2.0 (10 Oct 2007): 23,690

●   Hildon 2.2.0 (24 Sep 2009): 36,291
Hildon 2.2: the Fremantle release


●   Applications as window stacked views

●   Buttons as central UI part

●   Scrollable widgets are touchable-friendly

●   Kinetic scrolling (HildonPannableArea)
Other goals


●   New and old-style applications can coexist

●   Maintain backward compatibility

     – No API breakage
     – UI style preserved   (where possible)
MathJinni in Fremantle
New UI concepts
Window stacks

●   Hierarchical organization of windows

●   Applications have a main view from which different
    subviews can be opened

●   Views: implemented with HildonStackableWindow

●   Stacks: implemented with HildonWindowStack
Demo
HildonButton: title/value button
HildonPannableArea

●   Pannable scrollable window

●   Configurable kinetic scrolling

●   Gesture detection support

●   Easy to port from GtkScrolledWindow

●   Based on the OpenMoko finger-scroll widget
Demo
HildonTouchSelector and HildonPickerDialog

   ●   Finger-friendly, pannable, multicolumn selector

   ●   Allows single or multiple selections

   ●   Uses GtkTreeView internally

   ●   Exposes GtkTreeModel and GtkCellLayout for ease of use

   ●   HildonTouchSelectorEntry: enter non predefined items
HildonPickerButton


●   Standard picker button based on HildonTouchSelector

●   Inspired by GtkFontButton, GtkFileChooserButton, …

●   Finger-friendly replacement for GtkComboBox and
    GtKComboBoxEntry
HildonDateButton and HildonTimeButton


 ●   Buttons for time and date selection

 ●   Derived from HildonPickerButton

 ●   Specialized HildonTouchSelector (HildonDateSelector and
     HildonTimeSelector)
Demo
HildonAppMenu



●   Simple and finger-friendly menu for applications

●   Replacement for the unsuitable Diablo menu

●   Standard UI for data filtering/organization through "filters"
Demo
Other important improvements


●   HildonBanner and HildonNote theming improved

●   New progress indicator as window manager decoration

●   Text entries with hints

●   Action area in GtkTreeView
Development
Massive clean up and deprecation
●   There were many (highly) specialized widgets from Chinook
    and before

●   Decided to deprecate them

●   Examples:

     – Code dialog
     – Password dialogs
     – Login dialog
     – HildonVolumebar deprecated   in favor of GtkScale
Problems using standard GTK+ widgets
 ●   Theming limitations (e.g. HildonCheckButton)

 ●   Hard to make changes work with legacy applications:

      – Maemo 4 and earlier: designed for stylus
      – Fremantle: designed for fingers, that is, bigger widgets
      – If we supersize all old widgets we can break legacy
       applications layout

 ●   New API and helper functions to provide Fremantle style
     widgets
Maemo GTK+
●   Maemo GTK+ is a branch with changes specific to the
    platform

●   We try to keep Maemo GTK+ maintainable and close to
    upstream, having only stuff that

     –    It's on its way to be accepted upstream
     –    It can only be achieved by modifying GTK+ widgets
         internally

●   Other widget changes are implemented by subclassing
    GTK+ widgets in Hildon
Developing for Fremantle

●   Fremantle apps: quite different from traditional GNOME
    apps

●   Compiling a GNOME app for Fremantle and getting a
    Fremantle style is just impossible

●   Extra effort and knowledge is necessary to achieve the
    Fremantle style (but it's worth it)
Things to do
●   Make the toolkit more independent from hildon-
    desktop/maemo

●   Analyze which features could be moved/adapted to GTK+

●   Provide frequent releases for the community

●   Work in new and interesting widgets together with the
    maemo developers community (hint: BOF later today!)

●   Color picker? Font picker? Circular touch selector? (hint:
    BOF later today!)
Contributing


Mailing list:
     https://garage.maemo.org/mailman/listinfo/hildon-devel

Code:
     Very soon in http://maemo.gitorious.org!

Bugzilla:
     http://bugs.maemo.org
Questions?
Thank You

Contenu connexe

Similaire à Hildon 2.2: the Hildon toolkit for Fremantle

Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Niklas Heidloff
 
The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)
Igalia
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Bala Subra
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
Johan Thelin
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
Chauvin Mariot
 

Similaire à Hildon 2.2: the Hildon toolkit for Fremantle (20)

Dolibarr - What's new in 12.0 - Webinare 2020
Dolibarr - What's new in 12.0 - Webinare 2020Dolibarr - What's new in 12.0 - Webinare 2020
Dolibarr - What's new in 12.0 - Webinare 2020
 
MeeGo on OMAP4 PandaBoard
MeeGo on OMAP4 PandaBoardMeeGo on OMAP4 PandaBoard
MeeGo on OMAP4 PandaBoard
 
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
Mobile Controls for IBM Lotus Domino XPages on OpenNTF 09/10
 
The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)The Chromium project's Way to Wayland (FOSDEM 2018)
The Chromium project's Way to Wayland (FOSDEM 2018)
 
Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)Update on the open source browser space (16th GENIVI AMM)
Update on the open source browser space (16th GENIVI AMM)
 
Modest Maemo Summit 09
Modest Maemo Summit 09Modest Maemo Summit 09
Modest Maemo Summit 09
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC Europe
 
Contributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium projectContributions to an open source project: Igalia and the Chromium project
Contributions to an open source project: Igalia and the Chromium project
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugc
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013
 
Android Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part IAndroid Jumpstart ESC SV 2012 Part I
Android Jumpstart ESC SV 2012 Part I
 
Guadec 2012 lt - web application stores in gnome
Guadec 2012   lt - web application stores in gnomeGuadec 2012   lt - web application stores in gnome
Guadec 2012 lt - web application stores in gnome
 
Web application stores in GNOME (GUADEC 2012)
Web application stores in GNOME (GUADEC 2012)Web application stores in GNOME (GUADEC 2012)
Web application stores in GNOME (GUADEC 2012)
 
LibreOffice Conference 2020 Native GTK Widgets
LibreOffice Conference 2020 Native GTK WidgetsLibreOffice Conference 2020 Native GTK Widgets
LibreOffice Conference 2020 Native GTK Widgets
 
Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013Embedded Android Workshop at Embedded World Conference 2013
Embedded Android Workshop at Embedded World Conference 2013
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo Quickstart
 
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
Mobile Development Architecture Ppt with Slides, Book Notes on using Web Silv...
 
Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011Necessitas - Qt on Android - from FSCONS 2011
Necessitas - Qt on Android - from FSCONS 2011
 
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11EEF : Sexy Properties, Wizards and Views - EclipseCon 11
EEF : Sexy Properties, Wizards and Views - EclipseCon 11
 
gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!
 

Dernier

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
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
 
+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@
 

Dernier (20)

Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
"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 ...
 
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...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
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
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
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...
 
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
 
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
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
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, ...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
+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...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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
 

Hildon 2.2: the Hildon toolkit for Fremantle

  • 1. Hildon 2.2: the Hildon toolkit for Fremantle Maemo Summit 2009 – Westergasfabriek Amsterdam Alberto Garcia agarcia@igalia.com Claudio Saavedra csaavedra@igalia.com
  • 3. Hildon widgets library ● Set of widgets built on top of GTK+ ● Created for Nokia devices based on the Maemo platform: – Nokia 770 – Nokia N800 – Nokia N810 – Nokia N900 ● Released under the GNU LGPL ● Used also in other projects (e.g Ubuntu Mobile)
  • 4. Maemo 5 - Fremantle ● Maemo release for the Nokia N900 ● Modern, usable and finger-friendly UI ● Completely revamped user interface, very different from all previous versions ● Hildon 2.2.0 released on 24 September 2009
  • 9. Hildon source lines of code ● Hildon 1.0 (16 Apr 2007): 23,026 ● Hildon 2.0 (10 Oct 2007): 23,690 ● Hildon 2.2.0 (24 Sep 2009): 36,291
  • 10. Hildon 2.2: the Fremantle release ● Applications as window stacked views ● Buttons as central UI part ● Scrollable widgets are touchable-friendly ● Kinetic scrolling (HildonPannableArea)
  • 11. Other goals ● New and old-style applications can coexist ● Maintain backward compatibility – No API breakage – UI style preserved (where possible)
  • 14. Window stacks ● Hierarchical organization of windows ● Applications have a main view from which different subviews can be opened ● Views: implemented with HildonStackableWindow ● Stacks: implemented with HildonWindowStack
  • 15. Demo
  • 17. HildonPannableArea ● Pannable scrollable window ● Configurable kinetic scrolling ● Gesture detection support ● Easy to port from GtkScrolledWindow ● Based on the OpenMoko finger-scroll widget
  • 18. Demo
  • 19. HildonTouchSelector and HildonPickerDialog ● Finger-friendly, pannable, multicolumn selector ● Allows single or multiple selections ● Uses GtkTreeView internally ● Exposes GtkTreeModel and GtkCellLayout for ease of use ● HildonTouchSelectorEntry: enter non predefined items
  • 20. HildonPickerButton ● Standard picker button based on HildonTouchSelector ● Inspired by GtkFontButton, GtkFileChooserButton, … ● Finger-friendly replacement for GtkComboBox and GtKComboBoxEntry
  • 21. HildonDateButton and HildonTimeButton ● Buttons for time and date selection ● Derived from HildonPickerButton ● Specialized HildonTouchSelector (HildonDateSelector and HildonTimeSelector)
  • 22. Demo
  • 23. HildonAppMenu ● Simple and finger-friendly menu for applications ● Replacement for the unsuitable Diablo menu ● Standard UI for data filtering/organization through "filters"
  • 24. Demo
  • 25. Other important improvements ● HildonBanner and HildonNote theming improved ● New progress indicator as window manager decoration ● Text entries with hints ● Action area in GtkTreeView
  • 27. Massive clean up and deprecation ● There were many (highly) specialized widgets from Chinook and before ● Decided to deprecate them ● Examples: – Code dialog – Password dialogs – Login dialog – HildonVolumebar deprecated in favor of GtkScale
  • 28. Problems using standard GTK+ widgets ● Theming limitations (e.g. HildonCheckButton) ● Hard to make changes work with legacy applications: – Maemo 4 and earlier: designed for stylus – Fremantle: designed for fingers, that is, bigger widgets – If we supersize all old widgets we can break legacy applications layout ● New API and helper functions to provide Fremantle style widgets
  • 29. Maemo GTK+ ● Maemo GTK+ is a branch with changes specific to the platform ● We try to keep Maemo GTK+ maintainable and close to upstream, having only stuff that – It's on its way to be accepted upstream – It can only be achieved by modifying GTK+ widgets internally ● Other widget changes are implemented by subclassing GTK+ widgets in Hildon
  • 30. Developing for Fremantle ● Fremantle apps: quite different from traditional GNOME apps ● Compiling a GNOME app for Fremantle and getting a Fremantle style is just impossible ● Extra effort and knowledge is necessary to achieve the Fremantle style (but it's worth it)
  • 31. Things to do ● Make the toolkit more independent from hildon- desktop/maemo ● Analyze which features could be moved/adapted to GTK+ ● Provide frequent releases for the community ● Work in new and interesting widgets together with the maemo developers community (hint: BOF later today!) ● Color picker? Font picker? Circular touch selector? (hint: BOF later today!)
  • 32. Contributing Mailing list: https://garage.maemo.org/mailman/listinfo/hildon-devel Code: Very soon in http://maemo.gitorious.org! Bugzilla: http://bugs.maemo.org