Some questions that you have such as, “what is the latest publicized news?” may be best addressed through graphical software representations that allow you to interactively make such inquiries. Rather than type words and press the enter key, the methods of interactivity may involve using a stylus or a finger to tap a news heading to call up the news item’s details. You are now in the realm of interactive software.
Clarifying the Meaning of Interactivity
If you read part 2, you know that I advocate the creation of command-line programs to learn how to program. They appear distinct from what is normally called interactive software, but in actuality, they are interactive. Due to the basic nature of interactivity in a command-line program, they are not considered as having significant enough interactive capability to be termed, interactive software.
Interactivity usually denotes voice, touch, gesture, retina interpretation, and peripheral inputs other than qwerty keyboards. I say usually since these distinctions are often superficial but has become widely understood enough to become the meaning in the context of discussion. Regardless, the idea is any program that accepts input from people where the input is not directed towards a text-based command-line program.
Interactive Program Concepts
You generally create an interactive program by using a code library that provides the ability to output geometric shapes that can be accessed by peripheral inputs and sensors. Common names for things in such libraries are things like input fields, drop down lists, scroll lists, and views. Not limited to visual representations, interactive capabilities refer to the production and reception of sound, directional wands (joysticks for example), and other such devices directly harnessed by people and other output (vibrations and changes in light for example) for interpretation by people.
Designing an Interactive Representation
Encoding interactive capabilities into a program can produce a useful solution. It can also become a huge distraction and source of programming ineffectiveness if mishandled. That usually occurs when the interactive representation itself becomes the goal rather than the means for enabling the realization of a goal. That is simply a caution offered. Books and websites exist that covers that in more detail.
When you set out to create an interactive representation of a process encoded in software, the starting point is to produce a process flow and sketch out the visual representation. You can use tools like Microsoft PowerPoint, Adobe PhotoShop, Adobe Illustrator, Gimp, Inkscape, and host of other visual composition programs. Paper or digital equivalents with a digitizer pen are often the best tool overall.
The next step is to translate the visual concept into interactive software form. You will have to select an appropriate third-party code library. An immense number of such libraries exist. You will not run out of choices but the catch is each is different so you cannot just roll through them. You can save time, rework, and missed time windows by having a solid design, a firm commitment to programming language, and solid understanding of current and future requirements.
Building an Interactive Solution
The main thing you need at this point is a book or website that describes your chosen interactive technology solution. Specific guidance will often be in the form of books or websites that talks about how to build either an app, web front-end, or desktop program using the interactive technology you have selected such as Microsoft Universal Apps through Visual Studio; Apple App building using Swift through XCode; web development with PHP, Java, or Ruby. Those are not the only solutions but they will be among the more widely documented in books and website tutorials.
You will have to dedicate yourself to evaluating the use of your chosen interactive platform. That includes the idioms, conventions, gotchas, and usage requirements. The hard part is having your code library for your code mapped to the code library for the interactive code and the appropriate way to do that is through another code library you write that goes between the two. You do not have to do it that way, but I do recommend that.
Understand the possibilities for the interactive representation of software while remembering the real problem you are trying to solve. The best thing to do is design your interactive solution before you start in on it. That requires discipline, patience, and a systematic approach. Interactive capabilities in your program are often the result of integrating your program code with a third-party code library that provides those capabilities.
The information given so far results in computer programs represented in a various ways. This is not the complete list, but is a good starting point. We now turn away from the ability to make a program to general concerns managing one’s own ability to make programs.