Thursday, March 12, 2009

iPhone Journal (asc(Q)-63)

I only have one day of my uninterrupted programming experience left. Today, I planned to complete the views of my application and to begin working on saving data. I started out by filling the New Game screen, without which the application would be basically useless. Then, I met several people who fall within the target age group and asked them to test the application. It was very useful to observe their interactions with the menu systems and controls, and I was then able to change the interface to more closely match what people expect. For example, none of my test subjects was able to locate the way to view the instructions without searching for several seconds. Instead of using the arrows on the screen to move on, they clicked on the white section of the screen where the word "Instructions" appears. I thus placed an invisible button on this section and moved all of the arrows away from the toolbar onto the individual instruction pages.
I also caused the change appearance view to function mechanically (it still needs some aesthetic improvements such as a piece and board appearance browser) and started to rearrange my code for ease of saving key variables. In the process, I was able to fix large amounts of memory leaks and managed to discover that the >100 unused variable messages that I had been receiving were due to some variable declarations that were being imported into almost every file in my project. Finally, I began implementing data persistence itself by creating an object meant to house the data for one of the views and to save half of my data to it. The important steps now are to create a new object for storing the rest of my data and to actually save to/load from the hard drive on the iPhone.

(Note the red background squares. These result from a board appearance setting - the only one other than the default so far)

(This message is displayed when New Game is pressed and a game is in progress. Yes, I realized I misspelled "want." I fixed it in the latest Debug Build)

(The switch in this view is for controlling whether the controls are described in the game view once Begin Game is pressed. I noticed that none of my test subjects pressed the help button purposefully. The default setting is ON to make sure people know how to use the controls.)

Quick Update (12:22):

Just wanted to finish this view really quickly. Goodnight!