(01-22-2021, 07:45 AM)rkveale Wrote: I am interested in doing some app development for Linux phones. I have developed some Android apps using Android Studio but I am not that familiar with Linux except for some tinkering with Python for the Raspberry Pi and the Jetson Nano. I need some big picture instruction of the tools and methods I need to develop apps for the Pine Phone. This newbie needs some help.
Hello,
I am pretty much in the same situation as you, though I have had my pinephone for a few months now. What I have understood so far is that basically, pinephone development is not that much different from regular linux development (actually if your app is well written it will work on the phone and the linux desktop just as well).
What that entails however is that you have lots of possible options and choices to make:
- The most impacting is the desktop environment you want to target: gnome, KDE, lorimi, other...
- Then you have the distribution itself: are you going to target a specific distribution or try a more portable approach like flatpak (not all desktops are available on all distributions)
- Finally, there is the question of your programming skills and what kind of app you want to develop. Again, a wealth of choices here: C (like the gnome calls app), Rust (like the Fractal client or the keyboard in phosh), Javascript (like the gnome sound recorder) Vala (like the gnome contacts application or chatty), python, C++ ...
The most complete tutorial I have found so far is for gnome + flatpak, available here:
https://developer.puri.sm/Librem5/
It is made for the librem5 phone but almost everything applies to the pinephone just as well. It covers build tools, several sample apps, compilation / packaging, phone app design and specific libraries, and a lot of other stuff.
Once you understand this stuff, you ought to be able to participate to a lot of open-source phone app projects and write your own apps.
Being more of a KDE user originally, I wanted to explore that first but I have not been able to find a KDE-based tutorial equivalent in scope, depth and phone-orientation to the librem5 tutorial, if someone knows of such a resource I would be very interested.
Anyway, for my personal project, I have chosen gnome + flatpak + rust/gtk-rs (I find a lot of inspiration in the Fractal client app).
Good luck to you. The learning curve is steep but there are so many opportunities and interesting stuff to do.
Lukas