Lekce 9 - Upomínač narozenin v Compose - ViewModel
V minulé lekci, Upomínač narozenin v Compose - Databáze, jsme implementovali SQLite databázi a vytvořili svoji první entitu. Instanci DAO jsme zpřístupnili pro celou aplikaci.
V dnešním Compose tutoriálu doplníme do našeho upomínače narozenin ViewModel, který v MVVM aplikacích slouží jako prostředník mezi prezentační vrstvou a modelem (datovou vrstvou). Nový ViewModel bude zpracovávat data, která budeme později zobrazovat v uživatelském rozhraní.
Třída ReminderViewModel
Nejprve si do projektu přidáme balíček s názvem viewmodel
a
v něm si vytvoříme novou třídu ReminderViewModel
, která bude
dědit z třídy ViewModel
.
Atributy třídy
Do třídy ReminderViewModel
doplníme
atributy, kterými bude náš ViewModel disponovat:
class ReminderViewModel : ViewModel() { private val personDao = ServiceLocator.personDao!! private val _otherPersons = MutableStateFlow(listOf<Person>()) val otherPersons = _otherPersons.asStateFlow() private val _todayBirthPersons = MutableStateFlow(listOf<Person>()) val todayBirthPersons = _todayBirthPersons.asStateFlow() }
Na začátku získáme instanci PersonDao
. Tu jsme již
vytvořili ve třídě BirthdayReminderApplication
, můžeme
tudíž použít zápis ServiceLocator.personDao!!
.
Poté přidáme seznam _otherPersons
, kam budeme
...konec náhledu článku...
Pokračuj dál
Došel jsi až sem a to je super! Věříme, že ti první lekce ukázaly něco nového a užitečného.
Chceš v kurzu pokračovat? Přejdi do prémiové sekce.
Koupit tento kurz
Před koupí tohoto článku je třeba koupit předchozí díl
Obsah článku spadá pod licenci Premium, koupí článku souhlasíš se smluvními podmínkami.
- Neomezený a trvalý přístup k jednotlivým lekcím.
- Kvalitní znalosti v oblasti IT.
- Dovednosti, které ti pomohou získat vysněnou a dobře placenou práci.
Popis článku
Požadovaný článek má následující obsah:
V Compose tutoriálu do našeho upomínače narozenin doplníme ViewModel, který bude mít na starost propojení logické vrstvy aplikace s uživatelským rozhraním.
Kredity získáš, když podpoříš naši síť. To můžeš udělat buď zasláním symbolické částky na podporu provozu nebo přidáním obsahu na síť.