Looking through the documentation on Houston and other questions here, it is a hard requirement that all apps be a native GTK application for hosting on the store. Does that extend to GTK# due to the native binding? I'm a C# guy through and through and Visual Studio has some pretty great design tools for GTK# to help a poor "bad at UI" guy like me out.

I think the answer is yes but I don't want to be the "well actually" person trying to fight with app review on App Center if I write the app and I get denied due to using the Mono platform.



The short answer is yes, a GTK# application would be accepted into the AppCenter repositories assuming it met the rest of the review process (basically that it doesn't do anything questionably legal or mess with the system).

The other thing to be aware of is that it must be a GTK 3 interface, not GTK 2. I'm pretty sure that'll be the case by default with GTK# though.

However, the part where you're possibly making life more difficult for yourself is the fact that I don't think I've seen any C#/Mono/GTK# apps in the AppCenter yet, so there won't be any handy examples of how to set up your build tools and packaging files so that Houston (the build/testing server for AppCenter) can automatically build, test and publish your app.

It's not an insurmountable problem, I'm sure someone somewhere has packaged a GTK# application for debian based distros before, but you're less likely to get quick help and support as it's something that the elementary team will be more unfamiliar with.

Have you had a look at Vala (the language used for elementary OS itself and the included apps)? The syntax is incredibly similar to C# and you could consider tools like Glade or the nightly builds of GNOME builder via flatpak (that now include built in Glade) to design UIs. That said, I'd recommend at least trying to build UIs in code without a designer as it teaches you how things interact much quicker.

Hope that helps! Good luck with your app development, I hope to see some of your apps in the store in the future!

  • Hey David! Thanks for your answer! I looked through Vala and found it to be a great language that I really actually enjoyed. My biggest hurdle was GTK. Since I know C# well and MonoDevelop has a UI designer, I turned there first. I had tried GNOME Builder but was surprised it didn't have a visual UI builder. Since you mentioned it now has Glade built in for the nightly builds (another tool I didn't know about), I definitely want to give that a shot! I'd rather stay native if I can, GTK just hurt my head a lot to learn all at once in such an abstract way. Thanks!
    – Erik A
    Jul 4 '19 at 19:11
  • @ErikA give it a crack would be my advice. I jumped in both legs first myself, and have found it to be a very good experience. It takes a bit of time, but it's worth it. GTK 3 is really great
    – rasmus91
    Dec 2 '19 at 7:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.