5 tips and 4 and ½ tricks for
porting GNOME applications
to Maemo platform
Eduardo Lima (Etrunko)
8th
GUADEC, Birmingham, ...
About INdT
● Instituto Nokia de Tecnologia
● Founded by Nokia do Brasil
● R&D for mobile devices
● About 200 employees
● P...
About INdT – Recife Site
● About 40 employees
● Focused on OSS for mobile devices
– Nokia Internet Tablets (770 and N800)
...
Why Porting Applications?
● GNOME is mobile as well
Other Reasons
● Bring new experiences to Maemo devices
● Replacement of built-in applications
● All advantages of FOSS
– N...
Some Restrictions
● Small screen (Good resolution)
– Reduced usable area
● Processor power
– 220 MHz (770)
– 320 MHz (N800...
Some (more) Restrictions
● Limited storage (JFFS2 helps)
– 128 MB (770)
– 256 MB (N800)
● No FPU in 770
● Power consumptio...
First Steps
● Install scratchbox environment
● Install Maemo SDK (i386 and armel)
– Bora for N800
– Gregale for 770
● Find...
Feasibility Of The Port
● Check the dependencies
– libbonobo/libbonoboui
– libgnomeprint/libgnomeprintui
– libgnome/libgno...
Getting Rid Of GNOME Stuff
● Some things can just be replaced
– Help
– Icon lookup
● Other things must go within #ifdef bl...
Example: Gnumeric
It Works!
Brief Analysis Of The Screen
Great Resolution
Reduced Usable Area
Using The Virtual Keyboard
Using The Virtual Keyboard
Toolbar
Toolbar
Virtual Keyboard + Toolbar
Virtual Keyboard + Toolbar
And so on...
And so on...
Summary
● Use hildon stuff
– Program/Window
– Menu
– Toolbars
– Tap and hold
– Dialogs (Open, Save, Fonts, Colors, etc)
● ...
Hildonization
● Replace the toplevel GtkWindow by a
HildonWindow
● Get a HildonProgram instance
● Add the HildonWindow to ...
How does it look like?
Other tips
● Set application name
– g_set_application_name()
● Unset HildonWindow settings properties
– gtk-button-images ...
Almost finished
● Build packages for everything
– Both i386 and armel targets
● Test the packages in the device
– Scratchb...
Challenges
● Dialogs usually are not developed taking
small screens into account
● Reduce installation size
– Documentatio...
Other ports (Abiword)
Other ports (Evince)
Other ports (Gconf Editor)
Other ports (Rhythmbox)
Other ports (Leafpad)
Other ports (Xournal)
Thank You!
eduardo.lima@indt.org.br
http://etrunko.blogspot.com
5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform
Upcoming SlideShare
Loading in …5
×

5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform

690 views

Published on

Presention at 8th GUADEC, held in Birmingham, UK in 2007

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
690
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

5 Tips and 4 and 1⁄2 Tricks for Porting GNOME Applications to Maemo Platform

  1. 1. 5 tips and 4 and ½ tricks for porting GNOME applications to Maemo platform Eduardo Lima (Etrunko) 8th GUADEC, Birmingham, UK
  2. 2. About INdT ● Instituto Nokia de Tecnologia ● Founded by Nokia do Brasil ● R&D for mobile devices ● About 200 employees ● Partnership with universities ● Three main sites: – Manaus – Brasilia – Recife
  3. 3. About INdT – Recife Site ● About 40 employees ● Focused on OSS for mobile devices – Nokia Internet Tablets (770 and N800) – S60 smartphones ● Some projects – Canola – Python for Maemo – Tapioca – Maemo Games – Maemo SDK VMWare/Qemu Appliances – Carman – Mamona – Gmyth – Evas optimization
  4. 4. Why Porting Applications? ● GNOME is mobile as well
  5. 5. Other Reasons ● Bring new experiences to Maemo devices ● Replacement of built-in applications ● All advantages of FOSS – New features implemented – Bug fixes and improvements – Community of users testing and reporting bugs ● Yet another way to contribute to projects ● “Don't reinvent the wheel!”
  6. 6. Some Restrictions ● Small screen (Good resolution) – Reduced usable area ● Processor power – 220 MHz (770) – 320 MHz (N800) ● RAM – 64 MB (770) – 128 MB (N800) – No swap (can be activated) ● DSP
  7. 7. Some (more) Restrictions ● Limited storage (JFFS2 helps) – 128 MB (770) – 256 MB (N800) ● No FPU in 770 ● Power consumption ● Maemo patched libraries – Old versions – Can't just be upgraded ● Scratchbox environment
  8. 8. First Steps ● Install scratchbox environment ● Install Maemo SDK (i386 and armel) – Bora for N800 – Gregale for 770 ● Find yourself a device (if possible) ● Pick an application – Study the code – Find the libraries it depends on
  9. 9. Feasibility Of The Port ● Check the dependencies – libbonobo/libbonoboui – libgnomeprint/libgnomeprintui – libgnome/libgnomeui – libgnomecanvas – gnomekeyring ● Processor power required ● Storage required ● Memory consumption
  10. 10. Getting Rid Of GNOME Stuff ● Some things can just be replaced – Help – Icon lookup ● Other things must go within #ifdef blocks – GnomeProgram – Session management – Synchronize accelerators ● Add configure checks for specific bits
  11. 11. Example: Gnumeric
  12. 12. It Works!
  13. 13. Brief Analysis Of The Screen
  14. 14. Great Resolution
  15. 15. Reduced Usable Area
  16. 16. Using The Virtual Keyboard
  17. 17. Using The Virtual Keyboard
  18. 18. Toolbar
  19. 19. Toolbar
  20. 20. Virtual Keyboard + Toolbar
  21. 21. Virtual Keyboard + Toolbar
  22. 22. And so on...
  23. 23. And so on...
  24. 24. Summary ● Use hildon stuff – Program/Window – Menu – Toolbars – Tap and hold – Dialogs (Open, Save, Fonts, Colors, etc) ● Hide anything else – Status bars – Other widgets ● Focus on the purpose of the application
  25. 25. Hildonization ● Replace the toplevel GtkWindow by a HildonWindow ● Get a HildonProgram instance ● Add the HildonWindow to HildonProgram ● Change GtkMenuBar to a regular GtkMenu ● Add GtkMenu to HildonWindow ● Add GtkToolbar objects to HildonWindow ● Add configure checks for Hildon libraries
  26. 26. How does it look like?
  27. 27. Other tips ● Set application name – g_set_application_name() ● Unset HildonWindow settings properties – gtk-button-images and gtk-menu-images ● Register the application with libosso – osso_initialize() and osso_deinitialize() – D-Bus service file (/usr/share/dbus-1/services) ● .desktop files go to another location – /usr/share/applications/hildon
  28. 28. Almost finished ● Build packages for everything – Both i386 and armel targets ● Test the packages in the device – Scratchbox armel emulation does not work ● Publish the packages, preferably by apt ● Submit patches!
  29. 29. Challenges ● Dialogs usually are not developed taking small screens into account ● Reduce installation size – Documentation – Translations ● Debian packaging is boring ● Acceptable performance
  30. 30. Other ports (Abiword)
  31. 31. Other ports (Evince)
  32. 32. Other ports (Gconf Editor)
  33. 33. Other ports (Rhythmbox)
  34. 34. Other ports (Leafpad)
  35. 35. Other ports (Xournal)
  36. 36. Thank You! eduardo.lima@indt.org.br http://etrunko.blogspot.com

×