index.rst 2.05 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
.. _porting_gnome_apps_guide:

Porting GNOME Applications
==========================

.. note:: This guide will cover the tasks associated with porting GNOME
          applications to the Librem 5 phone, taking into account the different
          capabilities, form factor and other constraints that make application
          design different to that on laptops and desktop machines.

The Workflow
------------

A typical developer workflow for porting will involve something like this:

- Install ``flatpak`` and ``flatpak-builder``.
- Install GNOME Builder.
- Checkout a GNOME app to port, or start a new GNOME application project within
  GNOME Builder.
- Adjust dependencies for the project to pull in libhandy or other possible requirements.
- Adjust project code and/or XML files for UI changes to accommodate for mobile.
- Build a flatpak for the app from within GNOME Builder.
- Copy flatpak into the emulator, install and run it within the emulator.
- Debug any issues you encounter.
- Repeat until your app works well on the Librem 5 emulator.
- Test on a development board or Librem 5.
- Contribute the app or port.
28 29 30 31

Hints and Tips
--------------

32
There are some UI elements in GTK that are touch-friendly, and therefore ready to use on a phone, while others are not.
33

34 35 36
A collection of `application mock-ups`_ for GNOME applications should help to give an overview of the presentation and user interface paradigms that developers are using.

This page will explain how to make the currently non-touch-friendly parts of an app more touch-friendly. This page is still a work in progress. Until more is written, please take a look at these touch friendly applications as examples:
37 38 39 40 41 42 43 44 45

* `Photos <https://wiki.gnome.org/Apps/Photos>`_
* `Calendar <https://wiki.gnome.org/Apps/Calendar>`_
* `Contacts <https://wiki.gnome.org/Apps/Contacts>`_
* `Builder <https://wiki.gnome.org/Apps/Builder>`_
* `Recipes <https://wiki.gnome.org/Apps/Recipes>`_

Any touch friendly UI elements should be good for apps 
on the Librem5. 
46 47

.. _`application mock-ups`: https://gitlab.gnome.org/Teams/Design/app-mockups/