Přeskočit na hlavní obsah

P2 — Seznam akcí / Kategorie

Screen IDP2
Typ Primární
FázeMVP
Účel obrazovky

Zobrazuje výsledky browsingu — buď obsah kategorie, výsledky vyhledávání, nebo filtrovaný seznam akcí. Hlavní úkol: umožnit uživateli efektivně procházet větší množství akcí a najít tu pravou. Při vstupu z hlavní navigace je na spodní liště aktivní záložka Prozkoumat (ne záložka vyhledávání).


Content Priority

  1. Header — název kontextu a počet výsledků v jednom řádku (např. „Hudba (374)", „Výsledky hledání (42)"), back navigace; bez samostatného řádku „Nalezeno N akcí" App Bar / Top NavigationBack Button
  2. Date ribbon (sticky) — horizontální pás rychlých dat: Dnes | Zítra | Víkend | Tento týden | Tento měsíc | Vlastní. Při Vlastní se otevře date picker (výběr rozsahu / konkrétního dne dle domluvy se S3).
  3. Vizuální mřížka kategorií — ikonová mřížka pro rychlý přechod do podkategorií: Hudba, Divadlo, Opera, Balet, Musical, Festival, Výstavy, Pro děti (tap → přefiltrovaný seznam / P2 v dané kategorii).
  4. Active filter chips — dismissible chips aktivních filtrů (žánr, datum, město…), tap na chip → otevření S3 Chip / Filter Button
  5. Sort chips — přepínač řazení jako chipy (ne dropdown): Datum | Cena | Oblíbenost. Aktivní chip = vyplněný (filled), ostatní outlined. Chip / Filter Button
  6. Event list — vertikální seznam rozšířených event karet Event Card (large)
  7. Event karta (rozšířená): thumbnail (větší než na P1), název, pořadatel, datum/rozsah dat, místo konání, cena od, status badge (dostupné / málo míst / vyprodáno), žánr tag chips (max 2); v pravém horním rohu karty ikona srdce (oblíbené / toggle podle stavu přihlášení) Event Card (large)Badge / TagChip / Filter Button
  8. Loading indicator — spinner na konci seznamu při infinite scroll Loading / Skeleton
  9. Filtrovat CTA — floating button nebo chip pro otevření filtrů (pokud žádné aktivní) Primary Button

Interakce

TriggerAkceCíl
Tap na položku date ribbonuFiltr data / rozsahu podle výběru; Vlastní → date pickerAktualizace dotazu, refresh seznamu
Tap na kategorii v mřížcePřechod do vybrané kategorie / filtruP2 s novým kontextem v hlavičce
Tap na ♡ na kartěPřidání / odebrání z oblíbených (nebo login prompt)Aktualizace stavu srdce
Tap na event kartuNavigace na detail akceP3 — Detail akce
Tap na filter chip / „Filtrovat"Otevření filter overlayS3 — Filtrování
Tap na „×" u aktivního filter chipOdebrání filtru, refresh seznamuReload s méně filtry
Tap na sort chipPřepnutí řazení (Datum / Cena / Oblíbenost)Scroll na top, nové řazení
Scroll na konec seznamuInfinite scroll — načtení další stránkyLoading spinner + append dalších karet
Pull-to-refreshRefresh seznamuNová data z API
Back buttonNávratPředchozí obrazovka (P1 nebo P8)

Stavy

StavPopisVizuální chování
Loading / skeletonPrvní načteníSkeleton: záhlaví, ribbon, mřížka kategorií (volitelně), 3+ placeholder karet v řadě
LoadedData dostupnáSeznam event karet, ribbon a sort chips v defaultním stavu
Date selectedUživatel vybral preset nebo vlastní datum v ribbonuZvýrazněná položka v ribbonu; v hlavičce nebo chips odráží aktivní časové okno
Sort activeZvolené řazení není výchozí DatumAktivní sort chip filled, ostatní outlined; seznam přeřazen
Loading moreInfinite scroll paginationSpinner pod posledním itemem
Empty / no results0 výsledků (filtry, kategorie, ribbon)Proaktivní chování: automaticky rozšířit / zvýraznit filtry (navigace nebo inline odkaz na S3), copy „Žádné výsledky" + sekce „Podobné akce" (doporučení mimo přesný dotaz, pokud data existují) + „Resetovat filtry" kde dává smysl
Empty — kategorieKategorie nemá žádné akceStejná logika kde relevantní: podobné akce + úprava filtrů
ErrorAPI selhalaRetry CTA
OfflineBez připojení„Jste offline" banner, cached data pokud existují

Edge Cases a Error States

ScénářŘešení
Velmi dlouhý seznam (1000+ akcí)Infinite scroll po 20 položkách, lazy loading obrázků
Uživatel mění řazení (sort chip) po scrolluScroll na top, plný re-fetch
Filtr / ribbon vrací 0 výsledkůEmpty state + auto-expand / odkaz na filtry + sekce „Podobné akce"
Pagination API timeoutToast „Nepodařilo se načíst další akce", retry button
Event karta bez obrázkuPlaceholder s barvou žánru
Extrémně dlouhý název akceTruncate na 2 řádky s „…"

Mobilní patterny a odlišení od webu

Co děláme jinak

  • Infinite scroll místo „Load More" button + pagination — plynulejší mobilní experience
  • Date ribbon + sort chips — rychlé časové presety a řazení bez dropdownu; Vlastní otevře date picker
  • Floating filter CTA — na webu jsou filtry odkaz nahoře, na mobilu je potřeba víc prominence
  • Dismissible filter chips — na webu je „Reset filters" v draweru, na mobilu viditelné inline chips s „×" pro quick reset
  • Větší touch targety — event karty mají min. 48dp touch area (Android Material 3 / iOS HIG)

Aplikované patterny

  • iOS: UICollectionView s DiffableDataSource pro smooth updates, prefetch pro infinite scroll
  • Android: LazyColumn s paging3 knihovnou, FilterChip (Material 3) pro aktivní filtry

Reference — Aktuální web

SCR-WEB-05: Kategorie Music — search, filter CTA, tag cloud, event karty
Web ColosseumSCR-WEB-05Kategorie Music — search, filter CTA, tag cloud, event karty
SCR-WEB-09: Filter drawer — chips, expandable sekce, 'Show Events' CTA
Web ColosseumSCR-WEB-09Filter drawer — chips, expandable sekce, 'Show Events' CTA
SCR-WEB-10: Full-width event karty v listu
Web ColosseumSCR-WEB-10Full-width event karty v listu
SCR-WEB-11: Load More + numerická pagination
Web ColosseumSCR-WEB-11Load More + numerická pagination

Reference — CineStar benchmark

SCR-CS-02: Program — location dropdown, horizontal day picker, movie karty s formát badges a showtime buttony
CineStar benchmarkSCR-CS-02Program — location dropdown, horizontal day picker, movie karty s formát badges a showtime buttony
Inspirace z CineStar

CineStar má horizontální day picker (pondělí–neděle) jako primární filtr — velmi rychlý přístup k „co dnes hrají". Date ribbon na P2 tuto roli přebírá s presety (Dnes, Víkend…) a Vlastní pro date picker.