AI Companion•Emotional Reflection•iOS Product
UNIMO
An AI emotional companion that helps users turn meaningful conversations into collectible Emotion Cards.



An AI emotional companion that helps users keep the moments that matter.
UNIMO identifies meaningful moments from a conversation and transforms them into visual cards that users can save and revisit.
I contributed to the product from experience design to production implementation, including the card creation flow, SwiftUI design system, API integration, and system states.
Role
Design Engineer
Skills
Product Strategy
Interaction Design
Design System
SwiftUI Development
API Integration
Duration
Jun 2025 to Present
Tools
Figma
SwiftUI
Turn one meaningful moment from a conversation into something users can keep.
Most AI companions bury important moments inside endless chat logs.
We designed a highly visual experience that captures single meaningful interactions and turns them into collectible Emotion Cards.
Chat History
AI Extraction
Visual Format
Meaningful Moment
Emotion Card
We made reflection feel like a game of chance.
Our original assumption was that randomness would make Emotion Cards feel more collectible. After a conversation, some users received an unexpected opportunity to roll the dice. The result determined whether they could enter a card lottery, and the system then decided which part of the conversation became the card.
Testing showed that the surprise was masking the product's core value.
Users did not know when or how to create a card. Even after unlocking one, they could not understand why the system chose a particular moment. A long loading state then left them waiting without feedback.
Initial Flow
Chat
Random Dice
Card Lottery
AI Selected
Wait
Card
Results in four metrics.
442
Beta Users
18%
Higher Completion
800+
Cards Created
26
SwiftUI Components
More than 267 users created at least one Emotion Card.
Give users control over what becomes a card.
The original experience treated Emotion Cards as random rewards.
After chatting with UNIMO, users occasionally received an opportunity to roll the dice. The result gave them a chance to enter a lottery and unlock a card. Only then could the card be generated.
Initial Flow
A random reward loop with little user control
Users had to wait for a random chance before they could create a card.
01

Chat
Users shared meaningful moments in conversation.
02

Random chance
Card creation depended on an unexpected dice event.
03

Unlock
The system randomly decided what the card would become.
04

Wait
A long loading state gave users no sense of progress.
Unclear
Users did not know how to create a card.
Random
The system chose the content without user input.
Passive
Users waited without knowing what was happening.
Final Flow
A guided flow built around user intent
Users choose what matters, while clear system states make generation easy to follow.
01

Choose
AI surfaces meaningful moments for the user to review.
02

Confirm
The user decides which moment becomes a card.
03

Generate
Visible states explain what the system is doing.
04

Ready
The completed card returns with a clear ready state.
Make a 30-second AI process feel transparent and recoverable.
Card generation could take up to 30 seconds. I designed the full response lifecycle so users could understand the system's progress, recover from failures, and keep their selected moment.
Define the Full Response Flow
Before designing the interface, I mapped out the complete AI response lifecycle, accounting for both the happy path and edge cases.
Card Generation State Flow
Communicate Progress
I divided generation into four visible stages so users always knew what the system was doing.
Identifying
Finding meaningful moments
Identifying
Analyzing
Understanding emotional context
Analyzing
Formatting
Building the card summary
Formatting
Ready
Your Emotion Card is complete
Ready
Protect User Progress
If a request times out or fails, the selected moment stays saved. Users can retry without returning to the conversation.
Generation paused
A clear status replaces a dead end.
Moment saved
The selected context stays preserved.
Try again
Generation resumes from the saved moment.
Build a scalable SwiftUI design system.
As UNIMO added more conversational and card based features, we needed a reusable system that could support both design and development.
I translated the visual language from Figma into 26 production SwiftUI components.
The system includes conversation patterns, card components, selection controls, loading states, error messages, and recovery actions.
It also defines how the interface communicates during different AI states.
The component system helped the team maintain consistency and ship approximately one new feature each week.
Opportunities I see.
A Richer Card Collection
Help users organize, compare, and revisit cards as their emotional history grows.
The collection could make emotional patterns easier to recognize over time.
More Personalization
Use saved cards and emotional patterns to make future reflections more relevant to each user.
Faster Generation Feedback
Continue improving the connection between backend progress and frontend states so the waiting experience feels more accurate and responsive.
More Projects