Native iOS product case study

Care,
in order.

Skinny turns a scattered mix of skincare, medicines, supplements, and self-care into one calm, private daily timeline.

Product strategyUX and UISwiftUI buildLocal-first privacy
9:41● ● ●
Sunday, September 21Good morning
M15
T16
W17
T18
F19
S20
S21
TODAY’S CARE2 / 5

One step
at a time.

Morning

✦Morning skincare7:30 · Cleanser, serum, moisturizer, SPF
+Prescription medicine8:00 · 14 remaining
♧Daily supplement8:15 · Saved amount

Afternoon

♡Pause and hydrate13:00 · A gentle midday reset
TodayRoutinesProgressProfile
The product question

How can care feel less clinical and more doable?

01Instructions live everywhere

Labels, bathroom shelves, alarms, and memory compete for attention.

02More tracking can create pressure

The experience needed to encourage consistency without turning a missed day into failure.

03Health-adjacent products need restraint

Skinny organizes existing instructions. It never diagnoses, recommends doses, or advises on missed medication.

Experience model

One timeline.
Four kinds of care.

Filter the reconstructed routine to see how different care categories keep their meaning while sharing one predictable interaction.

Interactive reconstruction from the shipped SwiftUI views and seed data. No stock photography or invented screen captures.

Today · chronological orderLocal on iPhone
✦Morning skincareCleanser · serum · moisturizer · SPF
+Prescription medicineSaved label directions · refill at 4
♧Daily supplementYour saved amount
♡Pause and hydrateA gentle midday reset
✦Evening skincareCleanser · treatment · moisturizer
Product system

Useful every day.
Quiet when it should be.

Four connected surfaces support the full loop from planning to reflection.

☼

Today

A chronological plan, one-tap completion, ten-minute snooze, and medicine refill awareness. The next action stays obvious.

☷

Routines

Reusable morning and evening skincare sequences sit beside a complete care library with ordering and edit controls.

◔

Progress

Seven-day consistency and category filters reveal patterns without grading the person. A missed day is information, not failure.

◉

Discreet reminders

Notification text hides care names by default. People can opt in to named previews, and failed updates fall back to the private setting.

Trust architecture

Local by design.
Clear by language.

Care data and check-ins live on the device with SwiftData. The product makes its limits visible where they matter, not only in legal copy.

Private by default
Local storage, discreet notifications, no advertising SDKs.
Medicine stays essential
Reminders, dose logging, and refill fields remain free.
No false clinical authority
No diagnosis, interaction checking, dosing, or missed-dose advice.
Choice 01Timeline before dashboard

People arrive to act, so today’s sequence appears before analytics or configuration.

Choice 02Calm over gamified

Completion feedback is warm and tactile, without streak anxiety or punitive red states.

Choice 03Free medicine core

Paid depth can support the business, but essential medication behavior is not held behind Plus.

Build evidence

Designed as a product.
Built as a system.

The native prototype connects the product decisions to working data, scheduling, notifications, privacy behavior, and domain checks.

SwiftUISwiftDataLocal notificationsStoreKit boundaryAccessibility
4care categories in one model
7 daysof gentle consistency context
Localcare data and check-ins
Privatenotification copy by default
Back to Portfolio