SwiftUI: ObservedObject ve ObservableObject

SwiftUI içerisinde sıkça kullanılan ObservedObject ve ObservableObject yapılarını öğrenin.

Ufuk Köşker
TurkishKit
2 min readJul 25, 2020

--

Merhaba TurkishKit okuyucuları!👋 Bu yazımızda sizlere SwiftUI kütüphanesindeki ObservedObject ve ObservableObject konularını anlatacağız.

Makaleyi okumaya başlamadan önce bu makalemiz bir önceki @State ve @Binding konularını ele aldığımız makalemiz ile bağlantılıdır. Bu makaleyi okumadan önce lütfen ilk makalemizi inceleyin.

@ObservedObject

@State ön ekine çok benzemektedir. En büyük farkı @State, tanımlı olduğu View nesnesi içinde gözlenebilirken ObservedObject tanımlandığı tüm View nesnelerinde çalışmaktadır. ObservedObject örneği oluşturularak ayağa kalkmaktadır ve dinlenmesi istediği sınıfa ObservedObject protokolü uygulanmak zorundadır. Kısaca bir değişkeni depolamak için kullanılır. Sayfalar arası değişimleri otomatik olarak taşır.

ObservableObject

Bu ön ek, değişkenleri oluşturduğumuz nesneler üzerinde kullanmamızı ve değişkenlerde oluşan her değişikliği nesneler üzerine yeniden yükler.

@Published

Bu projemizde “score” değişkeninde oluşan değişiklikleri nesnelerimiz üzerine yeniden yüklemelerini ve tetiklemesi gerektiğini söyler.

Projemizde yeni bir SwiftUI dosyası açalım ve adına “UserSettings” diyelim. Aşağıdaki gibi “UserSettings” sayfamızı kodlayalım.

“ContentView” sayfamıza geri dönelim. Button, Text ve ObservedObject nesnelerini ekleyelim.

Burada Button nesnesine her tıkladığımızda ObservableObject sınıfı içerisindeki “score” değişkenini bir sayı arttırıyoruz. “score” değişkeni her değiştiğinde Text nesnesinde tekrar yüklenir.

Uygulamamızı Test Edelim

Şimdi ise kodladığımız uygulamamızı test edelim. Bunun için “Preview” butonuna basmamız yeterlidir.

Projenin bitmiş halini aşağıdan indirebilirsiniz.

Bir yazımızın daha sonuna geldik. Bu yazımızda; SwiftUI projeleri içerisinde sıkça kullanılan elemanları ele aldık.

Anlamadığınız herhangi bir yer olursa sosyal medya hesaplarımız aracılığıyla bizimle iletişime geçebilirsiniz. Bir sonraki yazımızda görüşmek dileğiyle 🤗

Bizi daha yakından takip etmek istiyorsanız, sosyal medya hesaplarımıza aşağıdan ulaşabilirsiniz.

Twitter | Instagram | Facebook

--

--