SwiftUI: ObservedObject ve ObservableObject
SwiftUI içerisinde sıkça kullanılan ObservedObject ve ObservableObject yapılarını öğrenin.
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.
class UserSetting: ObservableObject {
@Published var score = 0
}
“ContentView” sayfamıza geri dönelim. Button
, Text
ve ObservedObject
nesnelerini ekleyelim.
@ObservedObject var setting = UserSetting()
...
VStack {
Text(“Skor: \(self.setting.score)”).padding()
Button(action: {self.setting.score += 1}) {
Text(“Skoru arttır”)
}
}
...
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 🤗