Vala Development

I’m in the process of porting a single-pane outliner app I developed in C#/Mono to Vala and was wondering if there’s anyone here who is knowledgeable in Vala development who might be able to answer questions, give advice, etc.? Vala/Gnome Builder makes for a fantastic development platform; however, the docs are a bit thin in places – especially for an old school developer like myself. When done, I’d like to make the app available for use in Ubuntu Budgie but I know that there will be lots of things that need to be done to make it acceptable for use. I just don’t know what all these things might be. Is there a desktop Vala app that can be used as a template, or perhaps a set of docs (like in elementary OS) that explains what all is expected, or would this be something I should search for in the Solus community? Thanks!

This seems a good source imo, In our github repo, a lot is in Vala. Not sure what your application is about specifically, but feel free to ask.

Thanks vlijm. Yeah, valadoc.org is an absolute requirement for anyone doing Vala dev. I keep at least one browser tab open on that site as it’s such a great resource. I’ve also collected a list of other useful documentation resources on the web having to do with Vala, including at least one book in PDF form and others that exist online only. I’m glad to know that I can ask Vala development questions here as I suspect there are lots of Vala “gotchas” just laying in wait for their next juicy victim, lol. I’d also very much appreciate any general advice that others could provide but I’ll need to get the code on GitHub first… Anyway, regarding the app itself, it’s a little like OmniOutliner on the Mac though far more modest in features. Whereas Omni likely shoots for solving every problem under the Sun, the plan is for Hiero to provide nothing more than simply text-based outlining. For example, it will allow you to record notes as though you were entering them into a regular text editor, but with the added feature of your being able to indent the text so that it forms a logical, more easily managed hierarchy. It’s no longer just a mass of text but a foldable hierarchy of text “nodes” (incidentally, the main internal structure is based on the Gtk.TreeView control). Although having a “foldable” text editor is justification enough, an additional reason for having such an app is to enable you to more easily draft academic papers, blog posts, articles, etc. Granted, the app isn’t intended to produce a perfectly formatted, ready to print document. Instead, it’s intended to help you gather and organize your thoughts into a draft. In other words, it helps you manage what to include in your document and not so much how to render it (for that, you still need a word processor like LibreOffice Writer). Of course, a working outline can contain a lot more than just your document’s hierarchy. It can also contain everything you need to work on the document including notes, text scraps, links to pertinent web pages, links to other outlines, etc. I see an app of this sort as kind of a critical gap in Linux software as almost certainly a lot of folks using other computing platforms would consider using Linux if only it had a decent single-pane outliner to support writing. The LibreOffice team has incorporated an outliner into Writer but not only is it not a single-pane outliner, it leaves other things to be desired as well, Incidentally, by “single-pane” I’m referring to outlining software that doesn’t incorporate multiple panes; for example, one pane on the left side having a tree structure and another on the right side for displaying the contents of the selected node on the left (another example is the app, CherryTree). In a single-pane outliner, everything is in just one pane. Many folks – especially those engaged in writing – would likely prefer using a single-pane outliner but such apps are more of a challenge to develop which is likely part of the reason why they’re not as commonly found.