📖 Teorija
Namų darbas — tavo krepšelis
Namų darbas — įtvirtink MVI.
- Peržiūrėk srautą. Savais žodžiais užrašyk, kas nutinka paspaudus „+": Event → ViewModel → naujas State → UI. Trys sakiniai.
- Pridėk įvykį. Į
CartEventįtraukdata object ClearCartpanaudojimą:CartScreenapačioje pridėk mygtuką „Išvalyti krepšelį", kuris siunčiaonEvent(CartEvent.ClearCart). Patikrink — krepšelis ištuštėja, suma tampa €0.00. - Pagalvok apie sumą. Kodėl
totalPriceyraget()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
MainActivityGreetingpagaliau virs tikruPicaNavHost().