Tema
/
Mobiliosios programėlės KOTLIN
Pamoka 3 / 14 Būsena ir ViewModel (MVI) ~50 min
📖 Teorija

Namų darbas — tavo krepšelis

Namų darbas — įtvirtink MVI.

  1. Peržiūrėk srautą. Savais žodžiais užrašyk, kas nutinka paspaudus „+": Event → ViewModel → naujas State → UI. Trys sakiniai.
  2. Pridėk įvykį. Į CartEvent įtrauk data object ClearCart panaudojimą: CartScreen apačioje pridėk mygtuką „Išvalyti krepšelį", kuris siunčia onEvent(CartEvent.ClearCart). Patikrink — krepšelis ištuštėja, suma tampa €0.00.
  3. Pagalvok apie sumą. Kodėl totalPrice yra get() savybė, o ne laukas? Kas nutiktų, jei ją laikytum atskirai ir pamirštum atnaujinti keičiant kiekį?

Privalomi testai:

  • Nekintamumo testas: kiekio keitimas atnaujina sumą (jei ne — prisimink „mutate in place" spąstus).
  • Išvalymo testas: „Išvalyti" ištuština krepšelį ir suma tampa €0.00.

Atsiskaitymui: trumpas srauto aprašymas + ekrano nuotrauka su veikiančiu „−/+" ir suma.

Patarimas. Turi veikiantį krepšelį su tikra būsena — bet ekranai vis dar atskiri: meniu neveda į krepšelį. Kitoje pamokoje — navigacija su Nav3 (nauja, dar alpha Android navigacijos biblioteka): sujungsim meniu → picos aprašas → krepšelis vienu srautu, ir MainActivity Greeting pagaliau virs tikru PicaNavHost().