SlideShare a Scribd company logo
1 of 34
Download to read offline
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

More Related Content

Similar to Hildon 2.2: the Hildon toolkit for Fremantle

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 2020Laurent Destailleur
 
MeeGo on OMAP4 PandaBoard
MeeGo on OMAP4 PandaBoardMeeGo on OMAP4 PandaBoard
MeeGo on OMAP4 PandaBoardNishanth Menon
 
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/10Niklas 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
 
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)Igalia
 
Embedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeEmbedded Android Workshop at ELC Europe
Embedded Android Workshop at ELC EuropeOpersys inc.
 
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 projectIgalia
 
Basics of gtk_ilugc
Basics of gtk_ilugcBasics of gtk_ilugc
Basics of gtk_ilugcilugc
 
Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Embedded Android Workshop / ELC 2013
Embedded Android Workshop / ELC 2013Opersys inc.
 
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 IOpersys inc.
 
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 gnomeJosé Dapena Paz
 
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)Igalia
 
LibreOffice Conference 2020 Native GTK Widgets
LibreOffice Conference 2020 Native GTK WidgetsLibreOffice Conference 2020 Native GTK Widgets
LibreOffice Conference 2020 Native GTK WidgetsCaolán McNamara
 
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 2013Opersys inc.
 
Andreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartAndreas Jakl, Qt Symbian Maemo Quickstart
Andreas Jakl, Qt Symbian Maemo QuickstartNokiaAppForum
 
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 2011Johan 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 11Chauvin Mariot
 
gtkgst video in your widgets!
gtkgst video in your widgets!gtkgst video in your widgets!
gtkgst video in your widgets!ystreet00
 

Similar to 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!
 

Recently uploaded

Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024D Cloud Solutions
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfAijun Zhang
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024SkyPlanner
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 

Recently uploaded (20)

Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024Artificial Intelligence & SEO Trends for 2024
Artificial Intelligence & SEO Trends for 2024
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Machine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdfMachine Learning Model Validation (Aijun Zhang 2024).pdf
Machine Learning Model Validation (Aijun Zhang 2024).pdf
 
Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024Salesforce Miami User Group Event - 1st Quarter 2024
Salesforce Miami User Group Event - 1st Quarter 2024
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).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