static void




Adapting GNOME
                                                 _f_do_barnacle_install_properties(GObjectClass
                                                                                 *gobject_class)
                                                                                                {
                                                                           GParamSpec *pspec;




Applications to
                                                                      /* Party code attribute */
                                      pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE,
                                                                             "Barnacle code.",
                                                                              "Barnacle code",
                                                                                             0,
                                                                              G_MAXUINT64,




Maemo Fremantle
                                                               G_MAXUINT64 /* default value
                                                                                             */,
                                                                     G_PARAM_READABLE |
                                                                     G_PARAM_WRITABLE |
                                                                       G_PARAM_PRIVATE);

                                                  g_object_class_install_property (gobject_class,

                                                             F_DO_BARNACLE_PROP_CODE,




Joaquim Rocha       (jrocha on IRC)
jrocha@igalia.com
whoami

●   GTK+ && Hildon && Python developer

●   Igalian since 2008

●   Part of Hildon Input Methods project


Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
What porting means?
What porting means
●   Before Fremantle:
    ●   Make an application RUN in Maemo


●   After Fremantle:
    ●   ADAPT an application to Maemo


Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Why bothering?

●   Your application gets better
●   Your users get happier
●   Your fingers too!




Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
GNOME Applications

●   Coding will be easier – it is GTK+!
●   Lots of interesting applications waiting to be ported!
●   If you're a GNOME user, you may have your common
    applications available to you.



Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Root view / Sub view
Root view / sub view philosophy
●   Applications are stacks of windows

●   The root window is the base
    ●   E.g.: List of emails

●   Actions that break the usage flow, will be sub views:
    ●   E.g.: Reading an email

Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Root View                                       Sub View




              This means: no GTKPaned!


Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Black Chapter
Adapting GNOME Applications to Maemo Fremantle
I L !
FA
Adapting GNOME Applications to Maemo Fremantle
Adapting GNOME Applications to Maemo Fremantle
What to do with this!?
Divide and Conquer
When a box is tapped,
                          a dialog appears...



Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Adapting GNOME Applications to Maemo Fremantle
Use a GtkToggle button or a
HildonPickerButton
Replaced the GtkSpinButtons by
HildonEntries and not by
HildonPickerButtons because the
changes are shown immediately in
the image.




                                   Assign the numeric GtkInputMode
Text is the focus here, so, instead of a
GtkNotebook, the style properties are in a
GtkDialog launched from the text properties
HildonAppMenu
GtkSpinButtons are replaced by
HildonPickerButtons with a
TouchSelectorEntry assigned
HildonAppMenu
HildonAppMenu
●   Really different from a GtkMenu!!

●   Do not stuff it: Keep a low number of items

●   Use filters to display HOW contents are shown, not
    WHICH contents are shown


Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
How to keep a low number of menu items?




                 DRY: Don't Repeat Yourself



Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Choose the most used/important menus and sub-
menus from the menu bar.

Pages can be chosen using gestures, so, no need for
Next/Previous menus.
The status bar and toolbar are not used in EOG
for Maemo, so, no menus are needed.

The Zoom In / Zoom Out functionalities are
accomplished by using the Increase / Decrease
hard-keys.
Following the Hildon Interface
                     Guidelines
●   HIG says: don't show menu items that are insensitive
●   Here's a helpful tip:
    ●   Connect a callback to the “show” signal of each
        HildonAppMenu item
    ●   The callback shows/hides the item according to its
        “sensitive” property



Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
EOG with no images loaded




EOG with an image loaded
Migrating Preferences Dialogs
Preferences Dialogs
●   Dialogs with a GtkNotebook to group different kinds of
    preferences

●   Tabs' labels define groups' names




                   Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
How to migrate it to Fremantle?
●   Use a HildonPannableArea

●   Add a GtkVBox with ALL the preferences groups and
    use a GtkLabel above each one, identifying it




                  Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Adapting GNOME Applications to Maemo Fremantle
Where to go from here?
●   Maemo 5 Developer Guide:

    http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide


●   Maemo 5 API Reference:

    http://maemo.org/api_refs/5.0/5.0-final/hildon/


                          Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
Questions?
Thank you!

More Related Content

PDF
Seriesfinale, a TV shows' tracker for Maemo 5
PDF
OCRFeeder, documents conversion on GNOME
PPTX
PDF
Publishing portfolio
PPT
Reparar Rifles de Madelman
PPTX
Sun pharma acquires stada arzneimittel ag
PDF
Drive Customer Loyalty, Advocacy and Smiles
Seriesfinale, a TV shows' tracker for Maemo 5
OCRFeeder, documents conversion on GNOME
Publishing portfolio
Reparar Rifles de Madelman
Sun pharma acquires stada arzneimittel ag
Drive Customer Loyalty, Advocacy and Smiles

Viewers also liked (14)

PDF
Brochure & order form central europe b2 c e-commerce report 2011_by ystats.com
DOCX
Dfcs docs important 04112015
PPTX
Commercial Properties
PDF
Periódico Cámara en Acción Agosto 2015
PDF
Campaña Miguel Ángel Mancera. ESCOMI
PPT
Dream Hotels Of The World Part 1
PDF
STATE WISE LIST OF ASSOCIATIONS WHO HAVE NOT FURNISHED MANDATORY ANNUAL RETUR...
PPTX
Mexico presentation3
PDF
Rust, el nuevo lenguaje de Mozilla
PPT
Business organization as a inforamtion system
PDF
Lodos de la empresa comestibles la rosa
PDF
Bf2dohijo2012
PDF
The scrum events athens agile meetup
PDF
Nivelacion, topografia
 
Brochure & order form central europe b2 c e-commerce report 2011_by ystats.com
Dfcs docs important 04112015
Commercial Properties
Periódico Cámara en Acción Agosto 2015
Campaña Miguel Ángel Mancera. ESCOMI
Dream Hotels Of The World Part 1
STATE WISE LIST OF ASSOCIATIONS WHO HAVE NOT FURNISHED MANDATORY ANNUAL RETUR...
Mexico presentation3
Rust, el nuevo lenguaje de Mozilla
Business organization as a inforamtion system
Lodos de la empresa comestibles la rosa
Bf2dohijo2012
The scrum events athens agile meetup
Nivelacion, topografia
 
Ad

Similar to Adapting GNOME Applications to Maemo Fremantle (20)

PDF
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
PDF
Meiga Guadec 2009 English
PDF
Hildon 2.2: the Hildon toolkit for Fremantle
PDF
Modest Maemo Summit 09
PDF
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
PPT
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
PPTX
Criando jogos para o windows 8
PDF
Iz Pack
PDF
An introduction to Gnome An introdu.pptx
PDF
Jaime Blasco & Pablo Rincón - Lost in translation: WTF is happening inside m...
PDF
Wtf is happening_inside_my_android_phone_public
PDF
Haiku OS Presentation
ODP
Grilo
PDF
Ultrabook Development Using Touch - Intel Ultrabook AppLab Berlin
PPTX
A Developer's View of Windows 8
ODP
ODP
Gnome Architecture
ODP
PPTX
Deep Dive into WinRT
PDF
Guadec2007 Gvfs
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Meiga Guadec 2009 English
Hildon 2.2: the Hildon toolkit for Fremantle
Modest Maemo Summit 09
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
Introduction to Application Development in Python and Gtk+ / Hildon @ Maemo 5
Criando jogos para o windows 8
Iz Pack
An introduction to Gnome An introdu.pptx
Jaime Blasco & Pablo Rincón - Lost in translation: WTF is happening inside m...
Wtf is happening_inside_my_android_phone_public
Haiku OS Presentation
Grilo
Ultrabook Development Using Touch - Intel Ultrabook AppLab Berlin
A Developer's View of Windows 8
Gnome Architecture
Deep Dive into WinRT
Guadec2007 Gvfs
Ad

More from Joaquim Rocha (8)

PDF
Introduction to Django
PDF
Introducción a Django
PDF
OCRFeeder LinuxTag 2011
PDF
Ocrfeeder
PDF
Django introduction
PDF
Python introduction
PDF
Hands On The New Hildon
PDF
Django Intro
Introduction to Django
Introducción a Django
OCRFeeder LinuxTag 2011
Ocrfeeder
Django introduction
Python introduction
Hands On The New Hildon
Django Intro

Recently uploaded (20)

PDF
Auditboard EB SOX Playbook 2023 edition.
PPTX
Internet of Everything -Basic concepts details
PDF
giants, standing on the shoulders of - by Daniel Stenberg
PDF
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
DOCX
Basics of Cloud Computing - Cloud Ecosystem
PPTX
Module 1 Introduction to Web Programming .pptx
PDF
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
PPTX
Configure Apache Mutual Authentication
DOCX
search engine optimization ppt fir known well about this
PDF
Rapid Prototyping: A lecture on prototyping techniques for interface design
PDF
Data Virtualization in Action: Scaling APIs and Apps with FME
PDF
Improvisation in detection of pomegranate leaf disease using transfer learni...
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PDF
Co-training pseudo-labeling for text classification with support vector machi...
PDF
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
PPTX
MuleSoft-Compete-Deck for midddleware integrations
PDF
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
PDF
Statistics on Ai - sourced from AIPRM.pdf
PDF
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
PDF
AI.gov: A Trojan Horse in the Age of Artificial Intelligence
Auditboard EB SOX Playbook 2023 edition.
Internet of Everything -Basic concepts details
giants, standing on the shoulders of - by Daniel Stenberg
5-Ways-AI-is-Revolutionizing-Telecom-Quality-Engineering.pdf
Basics of Cloud Computing - Cloud Ecosystem
Module 1 Introduction to Web Programming .pptx
Dell Pro Micro: Speed customer interactions, patient processing, and learning...
Configure Apache Mutual Authentication
search engine optimization ppt fir known well about this
Rapid Prototyping: A lecture on prototyping techniques for interface design
Data Virtualization in Action: Scaling APIs and Apps with FME
Improvisation in detection of pomegranate leaf disease using transfer learni...
Custom Battery Pack Design Considerations for Performance and Safety
Co-training pseudo-labeling for text classification with support vector machi...
Transform-Your-Supply-Chain-with-AI-Driven-Quality-Engineering.pdf
MuleSoft-Compete-Deck for midddleware integrations
Produktkatalog für HOBO Datenlogger, Wetterstationen, Sensoren, Software und ...
Statistics on Ai - sourced from AIPRM.pdf
Transform-Your-Factory-with-AI-Driven-Quality-Engineering.pdf
AI.gov: A Trojan Horse in the Age of Artificial Intelligence

Adapting GNOME Applications to Maemo Fremantle

  • 1. static void Adapting GNOME _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; Applications to /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, G_MAXUINT64, Maemo Fremantle G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, Joaquim Rocha (jrocha on IRC) [email protected]
  • 2. whoami ● GTK+ && Hildon && Python developer ● Igalian since 2008 ● Part of Hildon Input Methods project Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 4. What porting means ● Before Fremantle: ● Make an application RUN in Maemo ● After Fremantle: ● ADAPT an application to Maemo Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 5. Why bothering? ● Your application gets better ● Your users get happier ● Your fingers too! Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 6. GNOME Applications ● Coding will be easier – it is GTK+! ● Lots of interesting applications waiting to be ported! ● If you're a GNOME user, you may have your common applications available to you. Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 7. Root view / Sub view
  • 8. Root view / sub view philosophy ● Applications are stacks of windows ● The root window is the base ● E.g.: List of emails ● Actions that break the usage flow, will be sub views: ● E.g.: Reading an email Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 9. Root View Sub View This means: no GTKPaned! Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 15. What to do with this!?
  • 17. When a box is tapped, a dialog appears... Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 19. Use a GtkToggle button or a HildonPickerButton
  • 20. Replaced the GtkSpinButtons by HildonEntries and not by HildonPickerButtons because the changes are shown immediately in the image. Assign the numeric GtkInputMode
  • 21. Text is the focus here, so, instead of a GtkNotebook, the style properties are in a GtkDialog launched from the text properties HildonAppMenu
  • 22. GtkSpinButtons are replaced by HildonPickerButtons with a TouchSelectorEntry assigned
  • 24. HildonAppMenu ● Really different from a GtkMenu!! ● Do not stuff it: Keep a low number of items ● Use filters to display HOW contents are shown, not WHICH contents are shown Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 25. How to keep a low number of menu items? DRY: Don't Repeat Yourself Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 26. Choose the most used/important menus and sub- menus from the menu bar. Pages can be chosen using gestures, so, no need for Next/Previous menus.
  • 27. The status bar and toolbar are not used in EOG for Maemo, so, no menus are needed. The Zoom In / Zoom Out functionalities are accomplished by using the Increase / Decrease hard-keys.
  • 28. Following the Hildon Interface Guidelines ● HIG says: don't show menu items that are insensitive ● Here's a helpful tip: ● Connect a callback to the “show” signal of each HildonAppMenu item ● The callback shows/hides the item according to its “sensitive” property Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 29. EOG with no images loaded EOG with an image loaded
  • 31. Preferences Dialogs ● Dialogs with a GtkNotebook to group different kinds of preferences ● Tabs' labels define groups' names Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 32. How to migrate it to Fremantle? ● Use a HildonPannableArea ● Add a GtkVBox with ALL the preferences groups and use a GtkLabel above each one, identifying it Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>
  • 34. Where to go from here? ● Maemo 5 Developer Guide: http://wiki.maemo.org/Documentation/Maemo_5_Developer_Guide ● Maemo 5 API Reference: http://maemo.org/api_refs/5.0/5.0-final/hildon/ Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <[email protected]>