SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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
I L !
FA
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>
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>
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!

Weitere ähnliche Inhalte

Andere mochten auch

Brochure & order form central europe b2 c e-commerce report 2011_by ystats.com
Brochure & order form central europe b2 c e-commerce report 2011_by ystats.comBrochure & order form central europe b2 c e-commerce report 2011_by ystats.com
Brochure & order form central europe b2 c e-commerce report 2011_by ystats.comyStats.com
 
Dfcs docs important 04112015
Dfcs docs important 04112015Dfcs docs important 04112015
Dfcs docs important 04112015screaminc
 
Commercial Properties
Commercial PropertiesCommercial Properties
Commercial Propertiesmarktaglieber
 
Campaña Miguel Ángel Mancera. ESCOMI
Campaña Miguel Ángel Mancera. ESCOMI Campaña Miguel Ángel Mancera. ESCOMI
Campaña Miguel Ángel Mancera. ESCOMI Melissa Jiménez
 
Dream Hotels Of The World Part 1
Dream Hotels Of The World Part 1Dream Hotels Of The World Part 1
Dream Hotels Of The World Part 1OH TEIK BIN
 
STATE WISE LIST OF ASSOCIATIONS WHO HAVE NOT FURNISHED MANDATORY ANNUAL RETUR...
STATE WISE LIST OF ASSOCIATIONS WHO HAVE NOT FURNISHED MANDATORY ANNUAL RETUR...STATE WISE LIST OF ASSOCIATIONS WHO HAVE NOT FURNISHED MANDATORY ANNUAL RETUR...
STATE WISE LIST OF ASSOCIATIONS WHO HAVE NOT FURNISHED MANDATORY ANNUAL RETUR...GK Dutta
 
Mexico presentation3
Mexico presentation3Mexico presentation3
Mexico presentation3Tami Binger
 
Rust, el nuevo lenguaje de Mozilla
Rust, el nuevo lenguaje de MozillaRust, el nuevo lenguaje de Mozilla
Rust, el nuevo lenguaje de MozillaWilly Aguirre
 
Lodos de la empresa comestibles la rosa
Lodos de la empresa comestibles la rosaLodos de la empresa comestibles la rosa
Lodos de la empresa comestibles la rosakaren Hernandez
 
Bf2dohijo2012
Bf2dohijo2012Bf2dohijo2012
Bf2dohijo2012otepsn
 
The scrum events athens agile meetup
The scrum events athens agile meetupThe scrum events athens agile meetup
The scrum events athens agile meetupymavra
 
Nivelacion, topografia
Nivelacion, topografiaNivelacion, topografia
Nivelacion, topografiaUdC
 

Andere mochten auch (14)

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

Ähnlich wie Adapting GNOME Applications to Maemo Fremantle

Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...AEGIS-ACCESSIBLE Projects
 
Grilo: Feeding applications with multimedia content (GUADEC 2010)
Grilo: Feeding applications with multimedia content (GUADEC 2010)Grilo: Feeding applications with multimedia content (GUADEC 2010)
Grilo: Feeding applications with multimedia content (GUADEC 2010)Igalia
 
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)Igalia
 
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Igalia
 
OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011Joaquim Rocha
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Igalia
 
Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)Igalia
 
Hildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for FremantleHildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for FremantleAlberto Garcia
 
State of WebKit/Safari (This.JavaScript - State of Browsers 2018)
State of WebKit/Safari (This.JavaScript - State of Browsers 2018)State of WebKit/Safari (This.JavaScript - State of Browsers 2018)
State of WebKit/Safari (This.JavaScript - State of Browsers 2018)Igalia
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)Igalia
 
Writing multimedia applications with Grilo
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with GriloJuan A. Suárez Romero
 
Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Igalia
 
BSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With Xposed
BSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With XposedBSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With Xposed
BSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With XposedBSidesROC
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using GolangSeongJae Park
 

Ähnlich wie Adapting GNOME Applications to Maemo Fremantle (20)

Modest Maemo Summit 09
Modest Maemo Summit 09Modest Maemo Summit 09
Modest Maemo Summit 09
 
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...
 
Grilo: Feeding applications with multimedia content (GUADEC 2010)
Grilo: Feeding applications with multimedia content (GUADEC 2010)Grilo: Feeding applications with multimedia content (GUADEC 2010)
Grilo: Feeding applications with multimedia content (GUADEC 2010)
 
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
Grilo: Integrating Multimedia Content in Applications (ELCE 2010)
 
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)
 
OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011OCRFeeder LinuxTag 2011
OCRFeeder LinuxTag 2011
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
 
Grilo
GriloGrilo
Grilo
 
Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)Servo and GStreamer (GStreamer Conference 2018)
Servo and GStreamer (GStreamer Conference 2018)
 
Hildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for FremantleHildon 2.2: the Hildon toolkit for Fremantle
Hildon 2.2: the Hildon toolkit for Fremantle
 
State of WebKit/Safari (This.JavaScript - State of Browsers 2018)
State of WebKit/Safari (This.JavaScript - State of Browsers 2018)State of WebKit/Safari (This.JavaScript - State of Browsers 2018)
State of WebKit/Safari (This.JavaScript - State of Browsers 2018)
 
WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)WPE: Current Status and Future (Web Engines Hackfest 2018)
WPE: Current Status and Future (Web Engines Hackfest 2018)
 
Writing multimedia applications with Grilo
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with Grilo
 
Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)
 
Day4
Day4Day4
Day4
 
Day4
Day4Day4
Day4
 
Eugenia
EugeniaEugenia
Eugenia
 
BSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With Xposed
BSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With XposedBSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With Xposed
BSidesROC 2016 - Jaime Geiger - Android Application Function Hooking With Xposed
 
Develop Android app using Golang
Develop Android app using GolangDevelop Android app using Golang
Develop Android app using Golang
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
 

Mehr von Joaquim Rocha

Mehr von Joaquim Rocha (7)

Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
Introducción a Django
Introducción a DjangoIntroducción a Django
Introducción a Django
 
Ocrfeeder
OcrfeederOcrfeeder
Ocrfeeder
 
Django introduction
Django introductionDjango introduction
Django introduction
 
Python introduction
Python introductionPython introduction
Python introduction
 
Hands On The New Hildon
Hands On The New HildonHands On The New Hildon
Hands On The New Hildon
 
Django Intro
Django IntroDjango Intro
Django Intro
 

Kürzlich hochgeladen

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 

Kürzlich hochgeladen (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

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) jrocha@igalia.com
  • 2. 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>
  • 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 <jrocha@igalia.com>
  • 5. Why bothering? ● Your application gets better ● Your users get happier ● Your fingers too! Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
  • 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 <jrocha@igalia.com>
  • 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 <jrocha@igalia.com>
  • 9. Root View Sub View This means: no GTKPaned! Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
  • 11.
  • 13.
  • 14.
  • 15. What to do with this!?
  • 17. When a box is tapped, a dialog appears... Adapting GNOME Applications to Maemo Fremantle · Joaquim Rocha <jrocha@igalia.com>
  • 18.
  • 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 <jrocha@igalia.com>
  • 25. 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>
  • 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 <jrocha@igalia.com>
  • 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 <jrocha@igalia.com>
  • 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 <jrocha@igalia.com>
  • 33.
  • 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 <jrocha@igalia.com>