Developer Information

Please note: This is a draft, and the authoring person is not an app developer, so take the following with a grain of salt. Feedback and MRs are most welcome!

Hardware specs to consider

In order to reach a good rating it‘s important to consider the screen size and resolution when designing the app UI:

PhonePixelsPoints1
FuriLabs FLX 1s720 x 1600360 x 800
PinePhone (Pro)720 × 1440360 × 720
Librem 5720 × 1440360 × 720
Moto G4 Play720 × 1280360 × 640
FuriLabs FLX 11080 x 2412360 x 804
Google Pixel 3a1080 x 2220360 x 740
OnePlus 61080 × 2280360 × 760
Xiaomi Poco F11080 × 2246360 × 752
Shift 6mq1080 × 2160360 × 720
Fairphone 51224 × 2700408 × 900 2

When landscape use and the mobile shell's own UI are also considered, this leads to a recommended dimension of 360×294px in GNOME's HIG for a fully mobile compliant app.3

By using nested Phosh for app development or using an app like Length, you can check how your app fits a mobile screen without owning or having to use a mobile device.

Tutorials

Plasma Mobile ecosystem

Phosh/GNOME on Mobile ecosystem

Generic Linux app development resources

Templates (as a starting point for app development)

GTK3/GTK4 apps

QtQuick/Kirigami apps

Flutter

Finding a project

If you have time on your hands, but don't have an idea (and looking through the app list has not helped you with coming up with what is not there nor inspired you to help out a listed project), you could do the following:

  • Pick up an existing project that's

    and go ahead and revive it!

  • Make adjustments to an app that mostly works, but does not really fit the screen and thus has a mobile compatibility rating of

If you rather want to start your own project, maybe the Wishlist on the Mobian Wiki can be a source of inspiration. If that's not it, maybe go through related subreddits, or the PINE64 or Purism forums to find out what people are longing for.

When you have something that works and want others to use or try it

Tag a release

Tag a release! Otherwise, your app is unlikely to land in distributions (beyond, maybe, the AUR or NixOS unstable).

(Or, if you have forked another project and improved on it, submit your patches upstream.)

Add a flatpak manifest

Make it easy to try - by publishing it, e.g., on flathub.org, or, if you don't feel ready for that, by fulfilling parts of the requirements by including a working flatpak manifest in your repository to enable users and potential contributors to easily build and try the app (see also).

Add Metadata

Don't forget to add appstream metadata! It tells the story of your app and is commonly used as a source of information for nice, descriptive app listings in Linux software centers like GNOME Software, KDE Discover, or Bazaar.

The Appstream MetaInfo Creator helps with getting started. For extra credit, check the Appstream docs. Sometimes the Appstream docs may be hard to grasp - that's where the Flathub MetaInfo guidelines can come in handy.

Mobile specific-metadata

To advertise your app as 'this works on mobile', first make sure that it actually works when it is 360 logical pixels wide and with touch - any Linux Computer with a touch screen combined with a measuring app like Length should be enough to do so.

For Appstream Metainfo, the Flathub Metainfo guidelines sections on Mobile only apps and Desktop and mobile apps are the fastest path to correct metadata that lets people know that your app works on mobile. Technically though, especially with the latter, be aware that if, e.g., your app is also still useful at a width of 300 logical pixels, the specification wants you to put that width of 300px into your metainfo.

Desktop file in Phosh

Phosh is a popular mobile shell, and users can select to have non-mobile friendly apps filtered out of its app drawer (the app would then still show up, when an external screen is connected to the phone, which some phones support). Some distributions default to this behavior in Phosh. Especially if you are developing your app with GTK, you should thus add the line

X-Purism-FormFactor=Workstation;Mobile;

to your mobile-friendly apps .desktop file to make sure its launcher shows up after installation. See this blog post for more information on the topic.

Mobile App Testing

If you don't have a device, get in touch by opening an issue or sending an email to our discuss list: https://lists.sr.ht/~linuxphoneapps/linuxphoneapps.org-discuss

1

Logical pixels at default scaling of 2x on low-end devices, and 3x on Snapdragon 845 devices. Fortunately, almost all phones with good mobile Linux support default to a width of 360 logical pixels.

2

Assuming 300% scaling, the Fairphone 5 unfortunately does not fit the 'standard' 360 logical pixels schema. At 340% scaling, it would come in at 360 × 794 logical pixels - at the price of the issues fractional scaling brings.

3

That said, few of our 5/5 rated apps actually fulfill the landscape criterion.

Edit this page on Framagit