Kullanıcı arayüzü durumu üretimi (Görüntülemeler)

Kavramlar ve Jetpack Compose uygulaması

Temel olarak durum üretimi, değişikliklerin kullanıcı arayüzü durumuna kademeli olarak uygulanmasıdır. Durum her zaman vardır ve etkinlikler sonucunda değişir. Etkinlikler ve durum arasındaki farklar aşağıdaki tabloda özetlenmiştir:

Etkinlikler

Durum

Geçici, tahmin edilemez ve sınırlı bir süre için geçerlidir.

Her zaman vardır.

Devlet üretiminin girdileri.

Devlet üretiminin çıktısı.

Kullanıcı arayüzü veya diğer kaynakların ürünü

Kullanıcı arayüzü tarafından tüketilir.

Etkinlikler şu kaynaklardan gelebilir:

  • Kullanıcılar: Uygulamanın kullanıcı arayüzüyle etkileşim kurarken.
  • Durum değişikliğinin diğer kaynakları: Sırasıyla kullanıcı arayüzü, alan veya veri katmanlarından (ör. snackbar zaman aşımı etkinlikleri, kullanım alanları ya da depolar) uygulama verilerini sunan API'ler.

Üretim API'lerini kullanma

İşlem hattının hangi aşamasında olduğunuza bağlı olarak durum oluşturmada kullanılan iki temel API vardır:

Ardışık Düzen Aşaması

API

Giriş

Kullanıcı arayüzünün takılmasını önlemek için kullanıcı arayüzü iş parçacığı dışında işlem yapmak üzere eşzamansız API'ler kullanmanız gerekir. Örneğin, Kotlin'de eş yordamlar veya akışlar, Java programlama dilinde ise RxJava veya geri çağırmalar.

Çıkış

Durum değiştiğinde kullanıcı arayüzünü geçersiz kılmak ve yeniden oluşturmak için gözlemlenebilir veri tutucu API'lerini kullanmanız gerekir. Örneğin, StateFlow veya LiveData. Observable<0x0A> veri tutucular, kullanıcı arayüzünün ekranda her zaman gösterebileceği bir kullanıcı arayüzü durumu olmasını sağlar.

İkisi arasında, giriş için asenkron API seçimi, çıkış için gözlemlenebilir API seçimine kıyasla durum üretim hattının doğası üzerinde daha büyük bir etkiye sahiptir. Bunun nedeni, girişlerin işlem hattına uygulanabilecek işlem türünü belirlemesidir.

Durum bilgili üretim ardışık düzeni montajı

Sonraki bölümlerde, çeşitli girişlere en uygun durum üretimi teknikleri ve bunlara karşılık gelen çıkış API'leri ele alınmaktadır. Her durum üretim hattı, giriş ve çıkışların bir kombinasyonudur ve şu özelliklere sahip olmalıdır:

  • Yaşam döngüsüne duyarlı: Kullanıcı arayüzünün görünür veya etkin olmadığı durumlarda, durum üretim hattı açıkça gerekmedikçe herhangi bir kaynak tüketmemelidir.
  • Kolay anlaşılırlık: Kullanıcı arayüzü, oluşturulan kullanıcı arayüzü durumunu kolayca oluşturabilmelidir. Durum üretim ardışık düzeninin çıkışıyla ilgili hususlar, View sistemi veya Jetpack Compose gibi farklı View API'lerinde değişiklik gösterir.

Duruma dayalı üretim işlem hatlarındaki çıkış türleri

Kullanıcı arayüzü durumu için çıkış API'sinin seçimi ve sunum şekli büyük ölçüde uygulamanızın kullanıcı arayüzünü oluşturmak için kullandığı API'ye bağlıdır. Android uygulamalarında, Görünümler'i veya Jetpack Compose'u kullanmayı seçebilirsiniz. Bu noktada dikkat edilmesi gerekenler:

Aşağıdaki tabloda, Görünümler çerçevesini kullanırken durum canlı sürüm ardışık düzeniniz için hangi API'lerin kullanılacağı özetlenmiştir:

Giriş

Çıkış

Tek seferlik API'ler

StateFlow veya LiveData

Stream API'leri

StateFlow veya LiveData

Tek seferlik ve akış API'leri

StateFlow veya LiveData