So expanding on one of the points from my previous blog, my application is planned to be both cross-platform and as consistent across platforms as possible, while not looking alien on any of them.
There is more to that statement than there may at first seem. There is a plethora of GUI libraries that work across platforms (both GTK and QT come immediately to mind). However, from what I have seen, few of them blend in with native GUI widgets, and they end up looking out-of-place on the platform (GTK is the worst offender of this, from what I have seen).
So, having looked at a number of choices available to me, I have resolved to write this program in wxWidgets. These libraries have a number of properties that appeal to me; for one, their native working language of choice is C++, which is also my preferred language to work in (I've never had much experience with pure C). Furthermore, wxWidgets is not so much a GUI library to itself, as it is a wrapper around platform-native GUI libraries (Win32 for Windows, GTK+ for Linux, Cocoa for MacOS X, etc ). I do this because, while it maintains consistancy in widget placement across platforms, it always uses the appropriate spacing and graphics for the platform it was compiled for.
Speaking of wrappers, I have also decided to apply the same logic behind my choice of API to my choice of build system, and am now working with CMake. CMake itself isn't a build process, so much as a config file that you use to generate platform-appropriate native build processes. On Linux, for example, it generates Makefiles and uses GCC, whereas on Windows I have it generating Visual Studio solutions and using that compiler. In my opinion this will work out for the better; I prefer to use the native build tools on a given platform, for performance and ease-of-use reasons. I could also have used MinGW to compile on Windows, but I decided I preferred to use the native tools over a port.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment