Grateful: milestone two

Milestone Two Requirements:

  • Partially functional prototype or mockup
  • The flow and interactivity of your app must be either demonstrated in your prototype or described separately.
  • The logic and algorithms for your project’s functionality must either be evident in your prototype or described in pseudocode.
  • Include any content needed for your app.
  • Asset design including images, icons, launch screen, etc.
  • Document the process so far including iterations of your visual design, problems or roadblocks you encountered and how you resolved them (or not).

Iterations of Visual Design, Simplification of App

After feedback from milestone one, I realized I should cut back on the goals of my app. I have now decided to only focus on making a gratitude journal app. Incorporating the calendar aspect would have been too challenging for me, especially with saving data between the app being active / inactive / not running. Now, users can input what they are grateful for that day, and their entry will be saved in an array that will max out at 30 entries. Then, when they tap the sunshine on the bottom, they will see see their past 30 entries in a scroll-able picker view. (Tapping the entries in the picker won’t trigger any actions, they are just to view and reflect on). I understand this may be confusing based on other iOS apps usage of picker menus, so I am open to feedback on this as well.

Here is my revised design for the app interface:

Screen Shot 2019-09-30 at 11.55.29 PM

Flow, Interactivity, & Prototype

Upon opening the app, the user will be drawn to a text entry box where they can enter what they are grateful for that day. A keyboard will pop up, which they can type in their entry or quit out of it by tapping outside of the keyboard. If they click the “save” button or the (what will be) the “done” button on the keyboard, their answer will be added to the array of past entries and displayed in the big yellow text on the bottom of the screen. That big yellow entry will stay the same until a new entry is added.

If the user wants to scroll through their last 30 entries, they can tap the text / sunshine on the bottom of the screen

Click this link to see my simple Invision prototype and get a sense of how the app will flow.

Logic & Algorithm

I can get the current date to display on top of the screen. This tutorial looks very helpful.

I believe that implementing NSCoding will help me prevent entries from getting lost. This tutorial seems like it is accomplishing what I want to do with my gratitude journal entries.

Here is my basic pseudocode for my app:

// actions and outlets:
// outlets: scrolling picker list, big yellow label on bottom
// actions: tapping in text field, tapping outside keyboard, 
   save button, tapping bottom bar to view array

// overall function:
// user opens app
// (in viewDidLoad ?) update current date
// user taps text field to add entry in gratitude journal
// save their entry --> updates the big yellow label on bottom of screen
// add their entry to array in scrollable picker list
// if that entry causes array size to exceed 30, remove oldest entry
// otherwise, just append array (make sure array won't be deleted upon quitting)

Content Needed for App

Since this app will be saving user inputed gratitude journal entries, the content to fill my array will be contributed by the user. I suppose the technical help I will need will be updating today’s date at the top of the screen, and saving my array entries so they will be saved across quitting.

Asset Design

The two fonts I’m using are called Vidaloka and Raleway, both downloaded from Google fonts.

Here are my updated designs for app logo and launch screens:

Screen Shot 2019-10-01 at 12.28.53 AM