Hacker News new | ask | show | jobs
by BoysenberryPi 1587 days ago
If I wanted to get into linux phone development, what's a good entry point into this?
5 comments

Create a new virtual machine and set the window size to 720x1440 with 2x scaling (or just 360x720) which is what the Pinephone uses. Everything else is the same as desktop Linux, just compiled for ARM.
A touchscreen is probably needed for this. Human fingers are huge and you need to design for that in mind.
GTK (and presumably KDE as well) supports touch emulation.
1. Buy a device, https://wiki.postmarketos.org/wiki/Devices#Main . I suggest the PinePhone if you want something with decent power management in the next few months, or PinePhone Pro if you're willing to wait a few months for decent power management.

2. Find good programs on https://linmobapps.frama.io/

3. Figure out what functionality you're missing. Contribute improvements.

Keep in touch with the community at https://linmob.net/

I would ask, what is it you want to do?

Linux phone development is more or less the same as linux development, just with a computer that has a smaller screen and a modem.

That's not quite accurate. What about power management, signal stability and coverage? Those need to be accounted for too.
I mean...that's why I said "more or less". There are of course differences, but a lot of app development can be done on a linux system and a cross compiler.
Signal and power management make or break a phone. My Nokia N900 makes for an excellent Linux phone (I have been unironically using it as my daily driver for communication, and the battery has been replaced recently too), but what really kills it is that its battery life is very unpredictable.

Sometimes it lasts 36h on a single charge when in standby, and sometimes a fraction of that. I cannot trust it to last me a whole day without a charger.

Other older phones that I tried last year (ranging from very old Nokia's to Blackberries with 3G) all had issues with call quality and even with random signal loss. I couldn't reliably stay connected with my family, which frustrated everyone.

Your application/mobile OS likely uses mobile data in some fashion, definitely uses up some CPU cycles (in foreground or background), may trigger high-powered modes in the cell radio through its usage patterns, or might miss incoming messages entirely. Testing on real untethered hardware, even as a final check, is needed to see that what you built isn't a frustrating paperweight that cannot fulfill the function of a phone.

If you want some examples to start from, check out https://mauikit.org/apps/

It's a UI Framework being used to make the basic OS apps in a fully scalable form. They're currently used in Plasma Mobile.