Přeskočit na hlavní obsah

P1 — Home / Feed

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

Hlavní vstupní bod aplikace. Uživatel sem přichází po otevření app — musí okamžitě vidět relevantní akce a mít jasnou cestu k nákupu. Funkčně jde o discovery feed kombinující personalizované a editorské sekce, jeden promo hero, výběr města a rychlý přístup k vyhledávání přes ikonu v headeru.


Content Priority

Seřazeno od nejdůležitějšího — co uživatel vidí první:

  1. Hero promo banner (statický) — jedna promo položka na session; rotace obsahu z CMS je per session (ne carousel). Maximální výška 240 px. Žádné auto-scroll, žádné swipe gesto. Pokud CMS vrátí 0 položek, hero se neskytuje a feed začíná první sekcí. Hero Banner
  2. Výběr města (city chip) — v headeru chip ve tvaru „Praha ▼“ (aktuální město + chevron). Tap otevře bottom sheet se seznamem měst. Při prvním spuštění aplikace nabídnout automatickou lokaci (permission) a předvyplnit město podle GPS; fallback manuální výběr ze seznamu. Chip / Filter ButtonBottom Sheet
  3. Sekce „Doporučujeme" — editorský výběr; velké karty 280×200 px, horizontální scroll v režimu 1 karta + peek další, odkaz „Zobrazit vše". Section HeaderEvent Card (large)Carousel / Horizontal Scroll
  4. Sekce „Bestsellery" — top prodejní akce; stejný horizontální pattern jako ostatní sekce, ale na kartách číslo pořadí #1–#5 jako overlay (ranking). Section HeaderEvent Card (small)Carousel / Horizontal ScrollBadge / Tag
  5. Sekce „Nedávno prohlížené"kompaktní karty 100×130 px, 3 viditelné v řádku (horizontální scroll); data z local storage; sekci zobrazit jen pokud uživatel prohlédl ≥ 2 akce. Section HeaderEvent Card (small)Carousel / Horizontal Scroll
  6. Sekce „Nová představení"kompaktní vertikální karty 140×180 px, horizontální scroll; badge „Premiéra" kde platí. Section HeaderEvent Card (small)Carousel / Horizontal ScrollBadge / Tag
  7. Sekce „Předplatné a abonmá" — karty předplatného s logem pořadatele, cenou a CTA; horizontální layout konzistentní s feedem. Section HeaderSubscription CardCarousel / Horizontal Scroll
  8. Sekce „Z magazínu" — karty článků / blog ([F2+] — zobrazit jen pokud je obsah dostupný z CMS). Section HeaderArticle CardCarousel / Horizontal Scroll
  9. Event karta (opakovaná komponenta): thumbnail, název akce, datum nebo rozsah dat, místo konání, cena od, status badge (dostupné / málo míst / vyprodáno). V pravém horním rohu ikona (oblíbené): tap přepne stav favorite se scale animací (bez navigace na detail). Event Card (small)Badge / TagIcon Button
  10. Header bar — logo Colosseum, city chip, search ikona. Notifikační zvoneček není v [MVP] — přibude [F1] v rámci notifikačního centra.
App Bar / Top NavigationChip / Filter ButtonIcon Button
  1. Spodní tab barPROGRAM | PROZKOUMAT | VSTUPENKY | PROFIL (položka discovery není pojmenovaná „Hledat").
Bottom Tab Bar

Interakce

TriggerAkceCíl
Tap na event kartu (mimo ♡)Navigace na detailP3 — Detail akce
Tap na ♡ na kartěToggle oblíbené + scale animaceLokální / API stav favorite
Tap na „Zobrazit vše" u sekceSeznam s příslušným filtremP2 — Seznam akcí
Tap na search ikonu v headerFullscreen search overlayP8 — Vyhledávání
Tap na city chip „Město ▼"Bottom sheet — výběr městaPřepnutí města, reload sekcí
Výběr města v sheetuZavření sheetu + refresh feeduNová data pro lokalitu
Tap na statický hero / CTA na heroDeep link na detail akce nebo kampaňP3 nebo promo landing
Pull-to-refreshAktualizace feeduNová data z API, scroll na top
Scroll dolůLazy loading dalších sekcíPostupné načítání sekcí
Tap „Pokračovat" (active order stripe)Návrat do rozpracované objednávkyCheckout / košík dle stavu

[F1]: Tap na notifikační zvoneček (v budoucím headeru nebo v rámci centra) → notifikační centrum (viz S19 v inventáři obrazovek).


Stavy

StavPopisVizuální chování
LoadingPrvní načtení feeduSkeleton: shimmer pro hero (pokud se očekává), řady placeholder karet podle typu sekce (velká / kompaktní)
LoadedData z API dostupnáPlný obsah; hero je jeden statický blok bez animace přepínání slideů
ErrorAPI nedostupnéCentrovaná ilustrace + „Nepodařilo se načíst" + „Zkusit znovu"
OfflineŽádné připojeníCached data (poslední úspěšné načtení) + sticky offline banner pod header: „Jste offline — zobrazujeme uložená data"
Pull-to-refreshUživatel táhne dolůSpinner / indikátor, po dokončení zmizí
Empty — žádné akce ve městěAPI vrací 0 akcí pro zvolené městoEmpty state: copy typu „V tomto městě zatím nemáme akce" + CTA změnit město (otevře city picker)
Active orderRozpracovaná objednávka s časovačemOranžový banner nad tab barem: „Rozpracovaná objednávka — 12:34 zbývá" + primární „Pokračovat"; tap → obnovení checkout / košíku

Edge Cases a Error States

ScénářŘešení
První spuštění — lokaceNabídnout autolokaci; po odmítnutí otevřít city picker nebo výchozí město dle produktové politiky
Hero: 0 položek z CMSHero skrýt; feed začíná první sekcí
Hero: 1 položkaJedna statická plachta 240 px — bez pageru a bez gest
„Nedávno prohlížené": < 2 položky v local storageSekci nezobrazovat
[F2+] „Z magazínu" bez článkůSekci nezobrazovat
Sekce má < 2 položkySkrýt „Zobrazit vše", případně celou sekci dle PRD
Event karta bez obrázkuPlaceholder s barvou kategorie / žánru a názvem akce
Pomalé připojeníLazy obrázky s blur placeholderem; text ihned
Odpojení během pull-to-refreshToast „Nelze aktualizovat — zkontrolujte připojení", ponechat stará data
City picker (bottom sheet)Full-height nebo standardní sheet se searchable listem měst + potvrzení výběru; zavření swipe down / tap mimo

Mobilní patterny a odlišení od webu

Co přebíráme z webu

  • Horizontální sekce s event kartami (discovery pattern)
  • Výběr města (na webu tabs; na mobilu chip + sheet)
  • Promo plachty (na webu často vícero; v app jedna statická per session)

Co děláme jinak a proč

  • Pull-to-refresh místo manuálního reload — nativní mobilní pattern
  • Skeleton loading místo holého spinneru — lepší perceived performance
  • City chip v headeru + bottom sheet — šetří vertikální místo oproti sticky řádku tabů
  • Bottom tab barPROGRAM | PROZKOUMAT | VSTUPENKY | PROFIL (položka Prozkoumat nahrazuje dřívější pojmenování „Hledat" u spodní navigace; fulltextové hledání zůstává přes ikonu v headeru → P8)
  • Vizuální diferenciace sekcí — velké vs. kompaktní karty, ranking overlay, badge Premiéra, magazín jen když je obsah
  • Oblíbené na kartě — ♡ v rohu karty; web často řeší favorite až na detailu
  • Notifikace v [MVP] ne v headeru — sjednocení s F1 notifikačním centrem; MVP header zůstává jednoduchý

Aplikované patterny

  • iOS: UIRefreshControl, compositional layout / horizontální sekce, TabView pro spodní navigaci, UISheetPresentationController pro city picker
  • Android: SwipeRefreshLayout, LazyRow v Compose, Material NavigationBar, ModalBottomSheet pro výběr města

Reference — Aktuální web

SCR-WEB-01: Hero banner, search, city tabs, promo bannery
Web ColosseumSCR-WEB-01Hero banner, search, city tabs, promo bannery
SCR-WEB-02: 'Our selection for you' — horizontální event karty
Web ColosseumSCR-WEB-02'Our selection for you' — horizontální event karty
SCR-WEB-03: Nadcházející akce, city filter tabs, subscription
Web ColosseumSCR-WEB-03Nadcházející akce, city filter tabs, subscription
SCR-WEB-04: Newsletter, footer kontakty
Web ColosseumSCR-WEB-04Newsletter, footer kontakty

Reference — CineStar benchmark

SCR-CS-01: Dark theme homepage — hero banner, promo carousel, sekce Promítáme/Brzy uvedeme
CineStar benchmarkSCR-CS-01Dark theme homepage — hero banner, promo carousel, sekce Promítáme/Brzy uvedeme
Inspirace z CineStar

CineStar používá tmavý theme s výraznými promo bannery. Hero prostor je velký (cca 40 % viewport). Sekce jsou jasně oddělené. Navigace: location dropdown + search + favorites + notifications v horním baru. Bottom tab bar: Domů, Program, CineStar Club, Moje nákupy, Přihlásit se. U Colosseum MA je hero úmyslně nižší a statický; spodní taby a výběr města se řídí wireframy P1.