İçeriğe geç

RxSwift + MVVM kullanımı

Merhabalar bu yazımda RxSwift ile MVVM tasarım desenini nasıl kullanırız ? sorusunun yanıtını bulacağınız bir örnek vereceğim.

İlk olarak kısaca MVVM tasarım deseni nedir bunu anlatayım. Bildiğimiz gibi popüler bir çok tasarım deseni bulunmaktadır. Hiç şüphesiz bunlardan biride MVVM tasarım desenidir. Bu desen ModelViewViewModel yapılarından oluşur ve uygulama bu yapılara göre şekillenir.

Yukardaki şekilde gördüğünüz gibi mantığını çok güzel bir şekilde aktarmış. Bu MVVM yapısında MVC yapısındaki gibi bir Mode yapısı bulunmakta. Burada sunucudan gelen datalar modellenmekte veya kendi oluşturacağınız data sınıfları burada bulunmaktadır. ViewModel yapısıda arayüz ile Model arasındaki köprüdür. Model ile elde ettiğimiz datalar işlenerek View katmanı için şekillendirilir, hazırlanır. View katmanı sadece ViewModel ile haberleşir. ViewModel ile düzenlenen data View üzerinde gerekli UI işlemleri yardımıyla kullanıcılara iletilir. Önemli bir durum View kesinlikle Model sınıfından haberdar değildir. Sadece ViewModel sınıfını kullanarak işlem yapar.

Yararları kısmına gelirsek yazılım geliştiriciler ve arayüz tasarımcıları aynı proje üzerinde birbirinden bağımsız bir şekilde eş zamanlı olarak çalışabilme imkanını yakalar.

Görsel arayüzün ve kodun birbirinden ayrışması uygulamanın test edilebilirliğini arttırmakta ve TDD (Test Driven Development) açısından da kolaylıklar sağlamaktadır. Aynı zamanda bu ayrışımlar uygulamamızın bakımı da kolaylaştırmış oluyor. Model tarafında bir değişiklik yapılmak istendiğinde UI tarafında hiçbir değişiklik yapılmasına gerek kalmadan geliştirmeler rahatlıkla yapılabilir.

Aşağıdaki örnek ile RxSwift kullanarak basit bir api üzerinden veri alıp UITableView üzerinde gösterme işlemi yapmakta.

Model:

ViewModel:

View:

 

Tarih:RxSwift

Bu yazı yorumlara kapalı.