Developer Information
Please note: This is an early draft, and the authoring person is not a developer, so take the following with a grain of salt. Feedback and MRs are most welcome.
Tutorials
Plasma Mobile ecosystem
- dimitris.cc: Linux applications with Python and QML
Phosh/GNOME on Mobile ecosystem
- Phosh.mobi: Developing for Mobile Linux with Phosh - Part 0: Running nested
- TuxPhones.com: Building responsive Linux mobile apps with libhandy 1.0 and Gtk3
- Radu Zaharia for devgenius.com: Using the libadwaita Leaflet widget for a responsive GTK4 UI in Rust
- Lupyuen: Build a PinePhone App with Zig and zgt
Generic Linux app development resources
Templates (as a starting point for app development)
GTK3/GTK4 apps
- sadiq: my-gtemplate
QtQuick/Kirigami apps
- templates/kirigamiaddons6 · master · Libraries / Kirigami Add-ons · GitLab
- SDK / KAppTemplate · GitLab
- Jonah Brüchert / plasma-mobile-app-template · GitLab
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:
Phone | Pixels | Points1 |
---|---|---|
PinePhone (Pro) | 720 × 1440 | 360 × 720 |
Librem 5 | 720 × 1440 | 360 × 720 |
Moto G4 Play | 720 × 1280 | 360 × 640 |
Google Pixel 3a | 1080 x 2220 | 360 x 740 |
OnePlus 6 | 1080 × 2280 | 360 × 760 |
Xiaomi Poco F1 | 1080 × 2246 | 360 × 752 |
Shift 6mq | 1080 × 2160 | 360 × 720 |
Fairphone 5 | 1224 × 2700 | 408 × 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, you can check how your app fits a mobile screen without owning or having to use a mobile device.
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 it you have something that works and want others to use or try it
Don't forget to add appstream metadata! The Appstream MetaInfo Creator makes this easy! For extra credit, check the Appstream docs.
Tag a release! Otherwise, your app is unlikely to land in distributions (beyond, maybe, the AUR or NixOS).
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 putting a working flatpak manifest in your repository.
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
Points at default scaling of 2x on low-end devices, and 3x on Snapdragon 845 devices. Fortunately, all phones with good mobile Linux support default to a width of 360 points.i
Assuming 300% scaling, the Fairphone 5 unfortunately does not fit the 'standard' 360 point/pixels schema. At 340% scaling, it would come in at 360 × 794 points - at the price of the issues fractional scaling brings.
That said, few of our 5/5 rated apps actually fulfill the landscape criterion.