Přeskočit na hlavní obsah

P8 — Vyhledávání

Screen IDP8
Typ Primární
FázeMVP
Odhad8 h
Účel obrazovky

Fullscreen search overlay s okamžitými výsledky. Uživatel hledá akce, pořadatele i místa konání. Důraz na rychlost (debounced search) a discovery (populární tagy, historie).


Content Priority

Empty state (před hledáním)

  1. Search input s auto-focus a klávesnicí, placeholder „Hledejte akce, pořadatele, místa…" Search Input
  2. Nedávná hledání — poslední 5–10 hledání jako chips, tap → spustit hledání Chip / Filter Button
  3. Populární tagy / akce — trendující hledání jako tag chips (festival, divadlo, Národní divadlo…) Chip / Filter Button
  4. Tipy redakce — 2–3 doporučené akce jako mini karty Event Card (small)

Výsledky (po zadání 2+ znaků)

  1. Search input s query textem a „×" clear button Search Input
  2. Sekce „Akce" (N) — event karty (kompaktní) s highlighted matchem v názvu Section HeaderEvent Card (small)
  3. Sekce „Pořadatelé" (N) — mini karty s logem a názvem, highlighted match Section HeaderOrganizer Card
  4. Sekce „Místa" (N) — venue karty s názvem a městem Section HeaderVenue Card
  5. Quick preview — zkrácená event karta s hlavní info (thumbnail, název, datum, cena) Event Card (small)

Interakce

TriggerAkceCíl
Typing (2+ znaků)Debounced search (300ms)Real-time výsledky pod inputem
Tap na event výsledekNavigace na detailP3 — Detail akce
Tap na pořadateleNavigace na profilS13 — Profil pořadatele
Tap na místoNavigace na venueS12 — Detail místa
Tap na recent search chipVyplnit query, spustit hledáníZobrazí výsledky pro daný query
Tap na populární tagVyplnit query + hledáníVýsledky pro tag
Tap „×" u search inputClear queryNávrat na empty state
Tap „×" (zavřít) nebo backZavřít search overlayNávrat na P1
Keyboard „Search"Spustit searchNavigace na P2 — Seznam akcí s full výsledky

Stavy

StavPopisVizuální chování
EmptyPřed hledánímHistorie, populární tagy, tipy
TypingUživatel píše, < 2 znakyStále empty state, čeká na 2+ znaky
SearchingDebounce period / API callSubtle spinner vedle search inputu
ResultsNalezeny výsledkySekce Akce / Pořadatelé / Místa
No results0 výsledkůX6 — Empty state hledání
ErrorAPI selhala„Vyhledávání je dočasně nedostupné" + retry
OfflineBez připojení„Pro vyhledávání potřebujete připojení" + cached recent searches

Edge Cases a Error States

ScénářŘešení
Query 1 znakNespouštět search, zobrazit hint „Zadejte alespoň 2 znaky"
Velmi rychlé psaníDebounce 300ms — odeslat jen poslední stav
Žádná historie hledání (nový uživatel)Skrýt „Nedávná hledání", zobrazit jen populární tagy
Výsledky obsahují speciální znaky v názvechSprávný rendering diakritiků a HTML entities
Extrémně mnoho výsledků (500+)Zobrazit top 5 per kategorie + „Zobrazit vše (N)" odkaz na P2
Pomalé APIZobrazit skeleton výsledky po 500ms, timeout po 10s → error

Mobilní patterny a odlišení od webu

Co děláme jinak

  • Fullscreen overlay místo inline search — web má search bar v header, na mobilu potřebujeme víc prostoru pro klávesnici a výsledky
  • Auto-focus + klávesnice — okamžitý focus na input, uživatel může začít psát ihned
  • Text highlighting — matchované části v názvech výsledků tučně
  • Dual výsledky — web hledá jen akce, MA hledá akce + pořadatele + místa najednou

Aplikované patterny

  • iOS: UISearchController pattern, searchable() modifier v SwiftUI, debounced Publisher
  • Android: SearchBar (Material 3), Debounce v Kotlin Flow, SearchView s suggestions

Reference — Aktuální web

SCR-WEB-41: Empty state — 'Our tips' karty, recent searches, popular tagy
Web ColosseumSCR-WEB-41Empty state — 'Our tips' karty, recent searches, popular tagy
SCR-WEB-42: Výsledky — 'Show 258 events' + 'Show 27 organizers', highlighted matche
Web ColosseumSCR-WEB-42Výsledky — 'Show 258 events' + 'Show 27 organizers', highlighted matche