Devlog·SEP 15, 2026·7 MIN READ
Travel App UX: Why Mood-First Discovery Beats Filter Forms
Designing a travel app that starts with how you want to feel, not where you want to go — and the card-swipe interaction that made it work.
Dismissible(
onDismissed: (direction) {
if (direction == DismissDirection.endToStart) {
HapticFeedback.mediumImpact();
savedDestinations.add(destination);
}
},
child: DestinationCard(destination: destination),
)
Most travel apps start with a form: destination, dates, travelers. But people don't plan trips that way — they start with a feeling.
The mood-first approach
Instead of filters, the Travel App shows a visual feed of destinations. Users swipe through cards and save what resonates.
// Card swipe with haptic feedback on save
Dismissible(
onDismissed: (direction) {
if (direction == DismissDirection.endToStart) {
HapticFeedback.mediumImpact();
savedDestinations.add(destination);
}
},
child: DestinationCard(destination: destination),
)
Why it works
The cognitive load of "pick from 50 countries" is replaced with "do you like this photo?" — a much easier decision.
The itinerary builder
Saved cards drag into a timeline:
ReorderableListView(
onReorder: (oldIndex, newIndex) {
setState(() => itinerary.reorder(oldIndex, newIndex));
},
children: itinerary.map((d) => ItineraryTile(d: d)).toList(),
)
The takeaway
The best UX matches how users actually think, not how the database is structured.
FLUTTERUXMOBILEDART