Dario Codipietro

Case study · 2024 · Lead Product Designer

Samsung Food: Swap Meals in the Tailored Plan

As Lead Product Designer at Samsung Food, I ran the meal swap workstream for the Tailored Plan: a Beta-feedback brief taken across thirteen sprints, from combo and food swaps at every entry point down to a randomised swap in place, free for all users.

Role
Lead Product Designer
Team
PO, dev
Shape
Thirteen sprints, one DR with prototypes, one handover
The delivered swap, add and remove journeys on the Tailored Plan page: the swap in place with its loading state and the Meal swapped toast, a meal added to the plan, and a meal removed, each with its toast.

Context

Tailored Plan v1 was in Beta: the Tailored for you page, a week of recommended meals matched to the user’s nutrition goals, three rows in view and the rest behind the freemium gate. It sat between the casual planner, released that spring, and the prepopulated planner that later generated the week from it. Beta users asked for the one thing the plan did not do, which was to change a meal they did not want. The brief read “enable meal swapping in TP v1, randomised swap”: show premium users recipe alternatives first, then scale depending on user interaction.

The workstream ran as numbered sprints, one Figma page per sprint with a sprint overview at the top: the brief, the pair on it, the link to the Notion brief and what changed since the last one. Thirteen sprints from Sprint 0 to Sprint 12, a design review at Sprint 10 with its own prototypes page, and a components page kept alongside.

Mapping the brief

Sprint 0 mapped the swap onto the existing Tailored for you carousel on Home and Explore, for the two shapes a meal can take. A single recipe swaps for another recipe. A combo, a recipe with sides, had three options: swap the whole combo for another, swap it component by component from a tabbed sheet, or search for a replacement by name. The entry point was Swap meal in the card’s overflow menu, beside Add to, Send recipe and Save recipe.

Sprint 1 built the journeys out: the candidate list with search, a no options found state that hands over to search all recipes, a Meal swapped toast with Undo, and the same flow for foods, an apple swapped for a pear with the recent foods search behind it. The PO’s note on the quick view asked for nutrition as percent of daily target rather than grams per serving, which is how the plan’s own nutrition goals later read.

Sprint 0, the combo options. Three ways to swap a recipe with sides: the whole combo for another, component by component from a tabbed sheet, or by search.

Open in Figma Get password →

Sprint 1, the journeys. Recipe swap, food swap, the no options found state and the Meal swapped toast with Undo, each from the tailored carousel. The PO note asks for nutrition as percent of daily target.

Open in Figma Get password →

01Round one

Journeys for review

Sprints 2 and 3 were the same journeys tidied for an RFC: the recipe swap from the tailored carousel, the food swap, the quick view with a cleaner nutrition module, and entry points from the Recipes for your oven and Breakfast ideas collections. Sprint 3 is stamped 99% late stage on its overview, “minor updates on iteration 2, ready to share on RFC”.

Sprint 3, the cleaner nutrition module. The quick view carries the daily nutrition goal as percentages, the note from Sprint 1 answered, with Swap and Add to plan beneath it.

Open in Figma Get password →

Descoping to single recipes

Dev feedback at Sprint 4 removed two of the three cases: no combos, no foods. The swap became single recipes only, with the rule on the board that Swap meal shows only when candidates are available. Sprint 5 added the freemium journey: a free user tapping the entry point lands on the Samsung Food+ paywall, with a note that a Plus tag on the menu item itself might reduce conversion, so it stayed off. The confirm dialog, “Add meal to your plan?”, appears here for the first time, because the swap is technically an add to plan.

Sprint 4, swapping a single recipe. The overflow menu, the candidate grid and the Meal swapped toast. The note keeps Swap meal hidden when there are no candidates.

Open in Figma Get password →

Sprint 5, basic and freemium journeys. The Add meal to your plan dialog on the left; on the right the Samsung Food+ paywall, with the Plus tag held back because it might reduce conversion.

Open in Figma Get password →

Splitting the entry points

Sprint 6 renamed the action. Because the flow adds a meal to the plan, the label became More like this, more comprehensive than Swap meal. The entry points were split into three cases, each a different tech effort so that each could be delivered separately: the tailored carousel on Home and Explore, the Tailored Plan page, and the Meal Planner’s tailored row. Sprint 7 folded in dev and A&A feedback after a call with the engineers. Sprint 8 integrated the latest DR round and aligned the meal cards with updates from Explore and Home: button sizes, the backgroundRaised token on food item buttons, and the plus icon deprecated in favour of the add to plan icon so the experience stayed consistent across the app. A No candidates available case covered all users.

Sprint 6, three entry points. The tailored carousel, the Meal Planner row and the Tailored Plan page, split so each could be delivered on its own.

Open in Figma Get password →

Sprint 8, entry points for Plus users. The cards aligned with Explore and Home: new button sizes, the add to plan icon in place of the plus.

Open in Figma Get password →

Sprint 8, no candidates available. The state every user can hit: the menu loses its swap item and the recipe page is the fallback.

Open in Figma Get password →

02Design review

Card and experience variants

Sprint 9 put four card variants for the Tailored Plan page to the team and asked for a ranked preference: modified search cards, a new portrait card extended from the search cards, modified meal plan cards, and a larger meal plan card. Sprint 10 was the DR itself, and its overview is candid: “there had been some miscommunication previous sprints, but I think we are fully aligned now”. The scope narrowed to the Tailored Plan page; the other entry points left this workstream. Three card variants and two experience variants went to the review with a prototype each and two questions, which is the best interface and why, and which is the best experience and why. Experience variant 1 opened a list of alternatives to choose from. Variant 2 swapped the meal directly in place, with a note to engineering: they had said a swap was not possible without adding to plan, and how difficult would it be to support this instead.

Sprint 10, card variants. Modified search cards, a portrait version of the current meal cards, and a fully new portrait card, each with a prototype.

Open in Figma Get password →

Sprint 10, experience variants. A list of alternatives to choose from, or the meal swapped directly in the plan, with the dev constraint written beside it.

Open in Figma Get password →

Swapping in place

Sprint 11 integrated the review feedback and focused on the Tailored Plan page only. Sprint 12 recorded the agreement with product and tech on the final card and the experience.

The recommendation was the simplest option, swap in place: simpler to release, it lets users review every item where it is, and it is free for all users, because the Tailored Plan already limits the view to three rows, soon one, so there is no need to limit the swap as well.

The rules on the board: each meal cycles through a maximum of ten candidates, then starts again. Once a meal is added to the plan it cannot be swapped, not ideal but easier to build, and it can be swapped again if removed. Swapped meals persist while moving in and out of the Tailored Plan, while the app stays active, and always once added to the plan; they reset when the app does.

Sprint 11, swapping in place. The cycle through ten candidates, the swapped state, the meal added to plan and swapped back, with the toasts for each.

Open in Figma Get password →

03Handover

Cards, states and animations

The Sprint 12 UX and UI section carries the delivered surface: the new Tailored Plan card with a swap control and an add to plan control, states for one meal or more added to the plan and one or more removed, the toasts for each, and the loading state between swaps. The animations section runs the swap through its loading state frame by frame for dev. The card set, recipe and food variants in their default and added states, sits on the components page.

Sprint 12, the delivered UX and UI. The card, the swap in place, and the one or more meals added and removed states with their toasts.

Open in Figma Get password →

Sprint 12, the swap animation. Frame by frame through the loading state, for dev.

Open in Figma Get password →

Sprint 11, the card set. Recipe and food cards, single and combo, default and added to plan.

Open in Figma Get password →

Cut

  • Combo swaps
  • Food swaps
  • Search for a replacement
  • Swap from Home, Explore and the Meal Planner (out of this workstream)
  • The paywall on the swap

Shipped

  • A randomised swap in place on the Tailored Plan page
  • A cycle of ten candidates per meal
  • Swap and add to plan controls on the card
  • Added and removed toasts
  • Persistence rules
  • Free for all users

Each cut sits on a sprint overview with its reason beside it: dev feedback for the first three, scope for the fourth, the three-row limit for the last.

Outcome

Meal swapping went live in the Tailored Plan and is still in the app. No usage figure reached design before I left, so none is quoted here.

Thirteen sprints for a feature that ends as one control on a card is the honest shape of scope negotiation with engineering. Each cut, from combos to foods to entry points to the paywall, was recorded on the sprint overview where the next review could see it. What shipped is the smallest version that answered the Beta feedback, on the surface that already had the users.

Get the Figma password

Enter your work email to get the password.

Contact

Get in touch

Product design lead across research, design systems and handover, with coding agents in the loop. Contract, outside IR35, or a permanent lead role.

Available
Now
Location
London, remote or hybrid, UK and EU
Right to work
UK settled status, EU citizen

Send a message

The role, the team, the timing. It reaches me directly.