Development Prep

I’m a C# developer for work but I’d like to start prepping to do some app development for the Librem 5 once I receive mine. I’d like to get any idea of what toolkits and languages I would need to learn in order to develop for the Librem. Can anybody point me in the right direction?

1 Like

Does this help?


Generally speaking, you would want to use GTK(4) in order to develop beatiful, native, fast, and adaptive apps for the Librem 5. There are also other toolkits but GTK offers the best outcome on GNOME/Phosh. There are many programming languages you could use. E.g.:


When starting new application projects I would use generally use a modern language e.g. Scala.
More specific the L5 can be seen as a embedded device. It has limited resources. Hence we could tend to more efficient languages like C/C++.

We could try to find a sweet spot between efficiency and modernism. Candidates could be Rust, Ocaml, Scala native or converting JVM bytecode binaries to native binaries with the native-image to of GraalVM.

Opinions will vary. I tend to avoid dynamic typed languages.

If you want to work on existing projects and systems software I guess most are written in C/C++.

When chosen a language you can look at build tools etc… Git looks like the defacto SCM industry standard today and is independent from programming language.


Ah, yes GTK. I am unaware of any up-to-date bindings for JVM languages. That might be a reason against them. IIRC the recently published JDK 17 got a new foreign function interface (FFI) for incubation. I would like to try it to call GTK. Not sure if and when I’ll actually do it.

1 Like

Yes, I’d also not recommend using Java or something like that.

Thanks Amarok!

Thanks for the links! I appreciate the help.

Thanks prolog!