User interfaces typically unite visual technology, data processing, and interactivity. Each of those broad facilities can coexist in a single code module or individual, focused defined modules. When defined as a monolithic unit, those facilities can be evolved in a manner that benefits the overall application. Eventually, it helps to have these functions implemented in individual components to better manage overall complexity. The latest C++ software code posted to GitHub contains no application level logic changes from yesterday’s update but the implementation is now spread across individual code modules.
The changes are most pronounced when the current version of the rss reader in the mainscreengenerator class is compared to previous versions.
Intricate User Interface Technology
User interface programming can become a fairly involved process. Solid modularity is a benefit when applying a graphics technology platform. This project use Allegro’s video game programming library (a C language library) that I have organized within a C++ wrapper. The C++ classes for this purpose are in the visualfunc::formulation namespace. The individual classes work together to invoke the right sequence of calls into the Allegro API to bring about a program window, graphics output, keyboard and mouse interactivity. This particular implementation strives for practical use in non-video game applications.
Test Each Module’s Build
Individual build scripts helps hone in on build errors in a particular module. At the same time, each script can be used in a higher level script. This approach actually sped up and focused the effort to split out the code into modules over the last 4 hours.
GNU C++ Build Scripts
The file system window shows the build scripts consolidated under a folder that represents the specific compiler the scripts invoke.
I actually preferred fewer implementation files for this project. You reach a point in some projects where there is too much code in one spot. A little more granularity in terms of refactoring the code into additional modules improves manageability.