Tema
/
Mobiliosios programėlės KOTLIN
Pamoka 14 / 14 Baigiamasis: Pica ~60 min
📖 Teorija

Išplėsk Pica — trys iššūkiai

Baigiamasis darbas — ne tik paleisti Pica, bet ir išplėsti ją savarankiškai, panaudojant tuos pačius šablonus. Pasirink bent vieną iššūkį (arba visus). Kiekvienas remiasi jau išmokta technika — tai patikrina, ar tikrai supranti sluoksnius.

Iššūkis A — Meniu punkto detalės (lengvas). Pridėk MenuItemDetail ekraną: paspaudus picą, atsidaro atskiras ekranas su didele nuotrauka, aprašymu ir „Add to cart".

  • Panaudoji: Nav3 Screen.MenuItemDetail(itemId) (4 pamoka, jau yra sealed klasėje), esamą MenuItem domeną.
  • Šablonas: navigacija su argumentu + esamas krepšelio Event.

Iššūkis B — Užsakymo būsenos atnaujinimas (vidutinis). Užsakymų istorijoje rodyk „live" statusą (created → preparing → ready). Pridėk „Refresh" arba periodinį GET /orders.

  • Panaudoji: OrderHistoryViewModel (9), MVI Loading/Success/Error, autentifikuotą užklausą.
  • Šablonas: tas pats repozitorija → ViewModel → būsena srautas, tik su atnaujinimu.

Iššūkis C — Mėgstamiausios picos (sunkus). Leisk pažymėti picą kaip mėgstamą; saugok tai Room talpykloje (nauja @Entity favorites), rodyk atskirame skirtuke.

  • Panaudoji: Room (7) su nauja lentele ir DAO, Koin naują single, MVI naują ekraną.
  • Šablonas: cache-then-nothing (grynai vietinis) — priešingybė meniui, kur tinklas yra tiesos šaltinis.

Kiekvienam iššūkiui prieš rašydamas kodą atsakyk: kuris sluoksnis keičiasi? Kokį Event pridedi? Kokia nauja UiState? Ką injektuoji per Koiną? Jei gali atsakyti — architektūrą supratai.

Patarimas. Nekurk naujų šablonų. Visi trys iššūkiai sprendžiami kartojant tai, ką jau darei: naujas Event, naujas UiState, naujas single moduliuose. Būtent tai ir yra gerai suprojektuotos architektūros dovana — plėtra jaučiasi kaip „daugiau to paties", ne kaip perrašymas.