Produkcja stanu interfejsu (widoki)

Pojęcia i implementacja w Jetpack Compose

Zasadniczo tworzenie stanu polega na stopniowym wprowadzaniu zmian w stanie interfejsu. Stan zawsze istnieje i zmienia się w wyniku zdarzeń. Różnice między zdarzeniami a stanem zostały podsumowane w tabeli poniżej:

Wydarzenia

Stan

są przejściowe, nieprzewidywalne i istnieją przez określony czas;

Zawsze istnieje.

Dane wejściowe produkcji stanowej.

Produkcja państwowa.

produkt interfejsu lub innych źródeł.

Jest używana przez interfejs.

Zdarzenia mogą pochodzić z tych źródeł:

  • Użytkownicy: podczas korzystania z interfejsu aplikacji.
  • Inne źródła zmiany stanu: interfejsy API, które prezentują dane aplikacji z interfejsu, domeny lub warstw danych, np. zdarzenia przekroczenia limitu czasu paska powiadomień, przypadki użycia lub repozytoria.

Interfejsy API stanu produkcji

W procesie tworzenia stanu używane są 2 główne interfejsy API, w zależności od etapu potoku:

Etap potoku

API

Dane wejściowe

Aby uniknąć zacinania się interfejsu, używaj asynchronicznych interfejsów API do wykonywania zadań poza wątkiem UI. Na przykład współprogramy lub przepływy w Kotlinie oraz RxJava lub wywołania zwrotne w języku programowania Java.

Wyniki

Gdy stan się zmieni, użyj interfejsów API do obsługi danych dostępnych do obserwacji, aby unieważnić i ponownie wyrenderować interfejs. Na przykład StateFlow lub LiveData. Obiekty Observable gwarantują, że interfejs użytkownika zawsze ma stan interfejsu do wyświetlenia na ekranie.

Wybór asynchronicznego interfejsu API do wprowadzania danych ma większy wpływ na charakter potoku produkcji stanu niż wybór interfejsu API do obserwacji danych wyjściowych. Dzieje się tak, ponieważ dane wejściowe określają rodzaj przetwarzania, które można zastosować w przypadku potoku.

Montaż potoku produkcyjnego stanu

W kolejnych sekcjach omówimy techniki generowania stanu najlepiej dopasowane do różnych danych wejściowych oraz pasujące do nich interfejsy API danych wyjściowych. Każdy potok produkcji stanu to kombinacja danych wejściowych i wyjściowych, która powinna być:

  • Świadomość cyklu życia: jeśli interfejs nie jest widoczny lub aktywny, potok produkcji stanu nie powinien zużywać żadnych zasobów, chyba że jest to wyraźnie wymagane.
  • Łatwość przyswojenia: interfejs użytkownika powinien być w stanie łatwo renderować wygenerowany stan interfejsu. W przypadku różnych interfejsów View API, takich jak system View czy Jetpack Compose, kwestie dotyczące danych wyjściowych potoku produkcji stanu będą się różnić.

Typy danych wyjściowych w potokach produkcji stanowej

Wybór interfejsu API wyjściowego dla stanu interfejsu i sposobu jego prezentacji zależy w dużej mierze od interfejsu API, którego aplikacja używa do renderowania interfejsu. W aplikacjach na Androida możesz używać widoków lub Jetpack Compose. Należy wziąć pod uwagę:

W tej tabeli znajdziesz podsumowanie interfejsów API, których należy używać w potoku produkcji stanu podczas korzystania z frameworka Views:

Wejście

Dane wyjściowe

Interfejsy API jednorazowego użytku

StateFlow lub LiveData

Interfejsy Stream API

StateFlow lub LiveData

Interfejsy API jednorazowe i strumieniowe

StateFlow lub LiveData