Jetpack Compose Academy · Lekcja

Pomijanie, @Stable i @Immutable

Oznaczaj typy, aby Compose mógł pomijać pracę

Lekcja 2 z 413 kroki

Pomijanie, @Stable i @Immutable to bezpłatna lekcja Jetpack Compose Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Jetpack Compose Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Kiedy potrzebne są adnotacje

Czasami typ jest rzeczywiście bezpieczny, ale Compose nie potrafi tego udowodnić. Adnotacje pozwalają obiecać stabilność, dzięki czemu pomijanie znów zaczyna działać.

Obietnica @Immutable

@Immutable informuje Compose, że po utworzeniu instancji żadna z jej właściwości nigdy się nie zmieni. To najsilniejsza gwarancja stabilności.

@Immutable
data class Theme(val primary: Long, val radius: Int)

Kiedy używać @Immutable

Warto używać @Immutable dla danych przypominających konfigurację: motywów, stylów i obiektów wartości, które tworzy się raz i nigdy nie modyfikuje po utworzeniu.

Obietnica @Stable

@Stable jest łagodniejsza: właściwości mogą się zmieniać, ale gdy to nastąpi, Compose zostanie powiadomiony za pośrednictwem stanu Compose. equals() musi pozostać spójne.

@Stable dla typów obserwowalnych

Należy używać @Stable dla klas, których modyfikowalne pola są oparte na mutableStateOf, aby Compose nadal poprawnie śledził każdą zmianę.

@Stable
class FormState { var name by mutableStateOf("") }

Złamanie obietnicy szkodzi Compose

Te adnotacje są kontraktem. Jeśli oznaczy się typ jako stabilny, a następnie będzie go po cichu modyfikować, interfejs użytkownika pokaże nieaktualne dane i pojawią się błędy.

Pomocnicze typy niezmiennych kolekcji

Zamiast List należy przekazywać ImmutableList z kotlinx.collections.immutable. Compose traktuje go jako stabilny, więc funkcje Composable wyświetlające listy mogą być pomijane.

fun Tags(items: ImmutableList<String>) { }

Funkcje pozostają stabilne

Parametry-lambdy są już stabilne, ale należy pamiętać, że lambda przechwytująca zmieniające się wartości jest nową instancją przy każdej rekompozycji.

Oznacz całą klasę tylko raz

Jedna adnotacja na poziomie class obejmuje każde użycie tego typu jako parametru. Nie trzeba dodawać adnotacji w każdym miejscu wywołania.

Adnotacje to ostateczność

Najpierw należy preferować rzeczywistą niezmienność za pomocą val. Adnotacji należy używać tylko wtedy, gdy kompilator rzeczywiście nie potrafi samodzielnie wywnioskować stabilności.

Najpierw sprawdź, potem zaufaj

Po dodaniu adnotacji należy sprawdzić, czy funkcja Composable rzeczywiście jest pomijana. Błędna obietnica jest gorsza niż jej brak.

Szybkie sprawdzenie

Wybierz właściwą adnotację.

Podsumowanie: składaj obietnice rozważnie

Używaj @Immutable dla danych, które nigdy się nie zmieniają, a @Stable dla modyfikowalnych danych opartych na stanie. Należy dotrzymywać kontraktu, bo w przeciwnym razie interfejs użytkownika będzie pokazywał nieprawdę. ✅

Bezpłatny start

Ucz się Kotlin dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Pomijanie, @Stable i @Immutable” jest bezpłatna?

Tak — pełny tekst „Pomijanie, @Stable i @Immutable” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Jetpack Compose Academy, przejdź na CoddyKit PRO. Kurs Jetpack Compose Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Pomijanie, @Stable i @Immutable”?

Oznaczaj typy, aby Compose mógł pomijać pracę Ćwiczysz Jetpack Compose Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Jetpack Compose Academy?

Nie wymagamy żadnego doświadczenia. Jetpack Compose Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.

Ile czasu zajmuje lekcja „Pomijanie, @Stable i @Immutable”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Jetpack Compose Academy?

Tak. Każda lekcja Jetpack Compose Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Stabilne i niestabilne parametry
  2. Pomijanie, @Stable i @Immutable
  3. Odroczone odczyty stanu
  4. Inspektor układu i liczniki rekompozycji
← Powrót do Jetpack Compose Academy