WWDC21: Refreshable

SwiftUI ile geliştirdiğiniz uygulamanıza yenilemek için aşağı kaydırma özelliği ekleyin!

Baran Önen
TurkishKit
2 min readJun 11, 2021

--

WWDC21: Refreshable

Bu yazımızda WWDC21'de tanıtılmış başka bir SwiftUI özelliği olan refreshable() “modifier”ından bahsedeceğim.

refreshable() , istediğimiz sayfalara oldukça az satırda yenilemek için yukarıdan aşağıya doğru kaydırma özelliği eklemeyi sağlar. Kaydırılan arayüz elemanına (Örneğin List) eklenen bu “modifier” aracılığıyla yenileme işleminde asenkron olarak çalışacak kodu da belirtebiliriz.

Bu yeni özelliği denemek için öncelikle Xcode 13'ün beta sürümünü Mac’inize kurmuş olmanız gerekiyor. Eğer Xcode 13'e hâlâ sahip değilseniz, indirmek için bu linki kullanabilirsiniz.

Her şey hazır olduğuna göre projemizi kodlamaya geçebiliriz. Bunun için öncelikle bir Xcode projesi oluşturalım. İsim için “Refreshable”ı tercih edebiliriz.

Şimdi, 1'den 100'e kadar olan sayıları listelemek için basit bir List elemanı oluşturalım. Bunun için aşağıdaki kodu projemize ekleyelim:

List(1..<100) { row in
Text(“\(row)”)
}

Şimdi ise yenilemek için kaydır özelliğini eklemenin vakti geldi. Bunun için ise aşağıdaki kodu projemize eklememiz yeterli:

.refreshable {
print(“Yenilendi”)
}

Bu kod ile sayfayı yenilebilir hale getiriyor ve her yenilemede konsola “Yenilendi” kelimesini yazdırıyoruz.

Buraya sayfayı yenilemek için gerekli olan herhangi bir kodu yazabilirsiniz. Yazdığınız kodlar, asenkron olarak çalışarak arayüzün yenilenmesini etkilemeyecektir.

Ekran aşağı kaydırıldığında ortaya çıkan arayüz.

Gördüğünüz gibi SwiftUI ile yazdığınız bir uygulamada herhangi bir sayfaya yenilemek için aşağı kaydırma özelliğini eklemek oldukça kolay. Ancak unutmamalısınız ki, bu özellik kullanıcı tarafında minimum iOS 15, macOS 12 Monterey, tvOS 15 veya watchOS 8 sürümünü gerektiriyor.

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

Twitter | Instagram | Facebook

WWDC makaleleriyle WWDC21'de olan gelişmeleri takip edin!

--

--