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

Viewers also liked

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
 

Viewers also liked (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
 

Similar to 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 (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Writing multimedia applications with Grilo (GUADEC 2013)
Writing multimedia applications with Grilo (GUADEC 2013)Igalia
 
Writing multimedia applications with Grilo
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with GriloJuan A. Suárez Romero
 
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
 

Similar to 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 (GUADEC 2013)
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
Writing multimedia applications with GriloWriting multimedia applications with Grilo
Writing multimedia applications with Grilo
 
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
 

More from Joaquim Rocha

More from 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
 

Recently uploaded

9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1DianaGray10
 
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
 
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
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
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
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfDianaGray10
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdfPedro Manuel
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
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
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureEric D. Schabell
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPathCommunity
 
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
 
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
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-pyJamie (Taka) Wang
 

Recently uploaded (20)

9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1Secure your environment with UiPath and CyberArk technologies - Session 1
Secure your environment with UiPath and CyberArk technologies - Session 1
 
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
 
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
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
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
 
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdfUiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
UiPath Solutions Management Preview - Northern CA Chapter - March 22.pdf
 
Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Nanopower In Semiconductor Industry.pdf
Nanopower  In Semiconductor Industry.pdfNanopower  In Semiconductor Industry.pdf
Nanopower In Semiconductor Industry.pdf
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
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)
 
OpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability AdventureOpenShift Commons Paris - Choose Your Own Observability Adventure
OpenShift Commons Paris - Choose Your Own Observability Adventure
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
UiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation DevelopersUiPath Community: AI for UiPath Automation Developers
UiPath Community: AI for UiPath Automation Developers
 
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 )
 
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
 
20230202 - Introduction to tis-py
20230202 - Introduction to tis-py20230202 - Introduction to tis-py
20230202 - Introduction to tis-py
 

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>
  • 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>
  • 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>
  • 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>