openfoodfacts / openfoodfacts-ios

Native (Swift) version of Open Food Facts for iOS. Coders & Decoders welcome šŸ¤³šŸ„« šŸ˜Š
https://ios.openfoodfacts.org
Apache License 2.0
360 stars 159 forks source link

Save button #402

Open aleene opened 4 years ago

aleene commented 4 years ago

Summary: The the add/edit viewController the save button is now on multiple places in the view. Normally Save buttons (if at all) are in the NavigationController at the top.

The user can then either Save his changes or cancel them.

bredowmax commented 4 years ago

Visualization: "Done" in top right position of the sheet. Inactive state and .systemGray if no changes have been made. Turns into .systemBlue once a change has been made and changes can be saved. Untitled-1

https://openfoodfacts.slack.com/archives/C02SSQ02N/p1571483509132600

teolemon commented 4 years ago

That is by design. That enables granular saving and instant gratification.

teolemon commented 4 years ago

image image

aleene commented 4 years ago

Yep it is in more places.

teolemon commented 4 years ago

And removing them would destroy the result. I would almost rename them "Save to get the Nutri-Score" and "Save to get the level of food processing"

aleene commented 4 years ago

In the first case an alert panel is needed as you want the user to react on the recognition. Not very nice as the recognition is happening without the users consent and interrupts his flow. Better let the user initiate the process (o that is quick) and then ask him in an alert panel.

PS what is the squary thing before "ingredients lus..." A vending machine?

bredowmax commented 4 years ago

I must say I am with @aleene on this one. There were a couple occasions as an editor when I missed to press the ā€˜saveā€™ button and my changes were gone. iOS users are used to the dialog ā€˜Doneā€™ at the right on the NavBar. Also, I only learned what info is necessary to calculate NutriScore and Nova Score by asking in Slack. I wouldnā€™t have figured it out through the app.

If you want to maintain that ā€˜instant gratificationā€™, you could add a popup once ā€˜congrats! By adding category and nutrients you helped us calculate the NutriScore!ā€™

teolemon commented 4 years ago

My take on this:

  1. Popups are disruptive
  2. Most people will never input the nutrients and the ingredients voluntarily. I designed effort/reward loops, until we can fully automate using machine learning.
    • Promising a reward ("Check OCR to get NOVA")
    • VERY Small effort (user checks and save)
    • Visible reward (NOVA logo)
    • Next step
    • Promising a reward ("Type nutrients to get NutriScore")
    • (Less) Small effort (user does type)
    • Visible reward (Nutri-Score logo)
  3. Apple guidelines areā€¦guidelines, not absolute rules.
teolemon commented 4 years ago

@aleene The floppy disk icon doesn't mean anything anymore, except to you and me. šŸ‘ We should indeed replace it by a checkbox :-)

bredowmax commented 4 years ago

Agree that guidelines are a suggestion, not more. Perhaps a bit of user testing wouldnā€™t hurt? Iā€™m sure Iā€™m not the only one who filled in everything I could find to only then find out that if I only clicked the last ā€˜saveā€™ and return, I will lose all other edits above (the other ā€˜saveā€™ buttons that I didnā€™t click)

aleene commented 4 years ago

For the reward one could add a text "NutriScore requires nutrients", etc.

bredowmax commented 4 years ago

I like the idea of showing a neutral greyed-out NutriScore and Nova Score label and below ā€œadd Nutrients to calculate NutriScoreā€

bredowmax commented 4 years ago

If you do user testing with people new with the app, often you learn that they just skip completely whatever written instructions they were given. You canā€™t assume users actually read the instructions. Hints must be visual

bredowmax commented 4 years ago

Actually, on iOS this button is either done or add, depending on if it's a new product to be added or an existing product that is changed.

Also, if no changes have been made yet, this button is to be set in an inactive state, indicating exactly that: currently, nothing can be saved as there are no changes

https://openfoodfacts.slack.com/archives/C02SSQ02N/p1572093769177400