Natural input
Let people describe the recipient in their own words, not just filters.
Case Study · Android · Kotlin
A Kotlin/Jetpack Compose app that helps people find thoughtful gift ideas through guided prompts and personalized suggestions, instead of endless scrolling through generic lists.
Buying gifts is hard because it’s completely open-ended. People bounce between tabs, search “gift ideas,” and scroll through generic lists that rarely match the person they’re shopping for.
Gift Guide flips that by asking a few natural questions about the recipient and turning that into a small, focused set of suggestions that feel made for that person.
Let people describe the recipient in their own words, not just filters.
Make each suggestion clearly connected to the description they gave.
Support saving and revisiting ideas instead of a one-time search.
Keep the UI quiet and readable, not noisy or “salesy.”
The app is built around three simple pieces: describing the person, getting ideas, and saving what resonates.
The entry screen asks a few short prompts:
Inputs use flexible text areas and microcopy like “How would you describe them to a friend?” to keep things casual.
After submitting, Gift Guide turns the description into a curated set of ideas. Each card shows:
The layout is a vertical list of cards—no clutter, clear spacing, easy to scan.
Tapping “Save” adds the idea to a local list on the device. Users can:
There’s no account or sync on purpose—the app behaves more like a planning notebook than a store.
The app uses a simple “New Ideas / Saved” tab layout so people always know where live results and long-term planning live. No hidden drawers or deep menus.
Suggestions are designed like small index cards: clear title, one or two lines of explanation, and consistent spacing. The focus is the content, not decorative UI.
When there are no saved ideas yet, the app explains what will show up there and gives a direct call to action: “Create your first gift search.” This teaches the feature instead of leaving it blank.
Saving an item uses a subtle confirmation instead of a modal. The user stays in the flow of exploring ideas instead of being interrupted.
Keeping logic in ViewModels and using a single recommendation endpoint means the UI stays mostly declarative: each screen just renders its current state.
Local persistence is intentionally simple—no auth, no accounts—so the app is easy to install, try, and keep as a lightweight tool during holidays or big events.