That should change. I really need to keep a record of my endeavors, at least for my own amusement.
So let's begin.
I have been working pretty heavily on a cross-platform application called the Model File Manager. Simply put, it is a simple utility to manage the model files of a DeviationTX RC transmitter. Here are a couple of screenshots of the app...
Anyway, I wrote the app originally in Visual Studio with C# as the language. While this was fine for some, others kept asking for a cross-platform version. So I looked closer at the Mono project and specifically MonoDevelop... the IDE of choice for Mono. I can honestly say that in hind-sight I should have looked at Mono earlier. They have done a great job of building a highly usable IDE, which is a tall task. I'm a professional Visual Studio user, so I am exposed to some of the best tools available... but at some point features just become bells and whistles. It's like C#. Sometimes language features boil down to just syntactic sugar. But I digress.
MonoDevelop turned out to be a very capable IDE for building the application. But there is no free lunch and I still had to learn GTK or GTK# the .NET binding for GTK. This is where most of my learning turned out to be. Translating WinForm knowledge into a workable GTK interface was tough. There are a lot of conceptual differences between the two.
- GTK is actually more modern in its approach to layout of UIs. What I mean by modern is that it takes flexible display sizes into account. Right from the get-go you have to think about laying out your UI with flexible containers that shrink and grow as the window is re-sized. Very much like the way Android and WPF approach UI design.
WinForms is solidly in the "Fixed" realm, with the default layout building done with a fixed, absolute positioning of controls and elements. - ListBoxes, ComboBoxes, etc... use the MVC pattern in GTK and that is taking some getting used to. It will be a while before I can fully utilize the versatility of this approach.
- GTK uses barely any formatting properties... instead relying on the Window Manager to dictate the look of the controls. Any formatting available though is done through a small style language called Pango. An interesting approach to look and feel options.
Anyway, I finish up this post with the actual source files. You will have to look at the readme.txt to learn how to build the app.
No comments:
Post a Comment