Week 12: Final Project Progress

This week I focused on getting the mobile app and API to communicate with each other.  In order to access the input fields from the user I made unique cells in the collection view for each question.  I then used a Singleton class to store the current work session based on the inputs from all of the view controllers.  Once I had this working I added a post request to the API when the user clicks the submit button at the end of their work session.  I then turned my attention to some of the background variables that I wanted to save in the API for each work session.  First I added a location variables so that, with permission, each work session stores the latitude and longitude of the users location.  Then I added a sound variable.  With permission, the app will record the sound level of location when you start a work session and send that value to the API. Figure 1 shows the current state of the app.

I also conducted some user testing and got some great feedback on my UI that I would like to address in the coming week (Figure 2).

Figure 2

Figure 2

It was most apparent that there are some issues with the collection view.  Users did not know to scroll to answer the remaining questions.  I added a “swipe to the right to continue” label on the first screen of each questionnaire section to fix this problem.  Also, the scroll feature is too sensitive.  Users swipe to the right too aggressively and end up scrolling past some of the questions and having to scroll backwards.  I am now thinking that a button instead of a scroll feature is a better solution. I also got some great feedback about the colors and the design.  Users said that the screens were too similar.  I plan to use color to differentiate between the begin work session questionnaire and the end work session questionnaire.  I also plan to make the colors a bit more bright and vibrant. 

I also added a weather variable to the API that collects the weathers from the dark sky API.  

This coming week I plan to make these small UI adjustments and add some animations to the app to improve the user experience.