The view from the top
We have the fuel for our application; the data will bring life to the coding engine we're about to build. We now need to establish controllers that will constitute this engine and views that will give us a user interface to control and visualize it. Consider the following screenshot:
For the outer area marked as 1, we have a main view that provides a container for other views. This will have a corresponding view controller that will manage any cross-application concerns from the main's subcomponents.
For the inner section marked as 2, we have the dashboard view, a container for four charts. Its view controller will manage the live updates of the top two charts.
Each subpage will add an additional view (see 3), for example, a Web view and an associated view controller. It will present and control the historical log chart, the statistics grid, and user input to the filtering date fields and button, as shown here:
Here's how all our classes interact:
We've got the general picture...