İçeriğe geç

URLSession Publisher kullanımı

Merhabalar bu yazımda Combine ile iOS uygulamalarınızda servis isteklerini nasıl yönetip kullanabileceğinizi paylaşacağım.

Bu işlem için URLSession üzerinden publish işlemi yapacağız. Bu işlemler içerisinde error handle, decode ve gerekli tüm işlemlerimizi gerçekleştirebiliriz. Kullanım olarak daha öncesinde Rx kullananlar için yabancı gelmeyecektir.

Aşağıda yazdığım basit bir servis isteği ve ardından gerçekleşen decode örneğini inceleyebilirsiniz.

URLSession üzerinden dataTaskPublisher kullanarak publisher yazmaya başlıyoruz ve ardından dilerseniz durum eventlerini .handleEvents içerisindeki bloklara yazabilirsiniz. (loading animasyon işlemleri vs) daha sonrasında error handle edecekseniz tryMap ile blok içerisinde durumları yazıyorsunuz. Sonrasında aynı blok içerisinden dönen veriyi .decode ile hızlı bir şekilde uygun Decodable yapımıza decode edebiliyoruz. Seneryoda karşılaşıcak her hangi bir hata durumunda tetiklenmesi için .mapError kullanabilir ve uygun olan hatayı döndürebilirsiniz.

Thread handling operatorlerinden receive, subscribe ile zincirleri bağlayabiliyoruz. Aralarındaki kullanım farkı eğer UI ile bağlantılı bir işlem yapacaksanız .receive kullanmanız gerekir. Sonrasında .eraseToAnyPublisher ile uygun return tipimize göre son halini elde edip artık subscribe olabiliriz. Daha sonrasında .sink ile bağlanıp gerekli sonuçlara ulaşıyoruz.

Tarih:Combine

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

© 2019 Kenan Atmaca