✨ 2023 Güncellemesi: Devamı niteliğindeki bu yazıda 3 dilek daha ekledim.
Her yıl, belirli bir insan grubunun dilekler dilediği ve her türlü şey için umutlandığı çok özel bir zaman vardır. Bazıları dileklerini başkalarıyla paylaşır, bazıları hayal kırıklığına uğramamak için onları sessizce kafasında tutar. Ben her zaman ikinci gruptaydım, ama bu sefer dileklerimi paylaşarak gerçekleşme ihtimalini artırmak istiyorum — bu yıl olmasa bile belki gelecek yıl. Sonuçta, Noel Baba dinliyor olabilir.
Hemen hemen her iOS geliştiricisinin listesinin başında bulunan bariz konuları atlayacağım — daha stabil bir Xcode, daha az hatalı bir Swift, daha kapsamlı bir SwiftUI veya daha güvenilir SwiftUI Preview’lar gibi. Hadi başlayalım!
#3: Uygulama İkonlarının Tek Bir Görüntüden Tüm Boyutlarda İçe Aktarılması
Problem
Her uygulamanın bir uygulama ikonu olması zorunlu. Ancak Xcode, herhangi bir yeniden boyutlandırma desteği sunmadan düzinelerce farklı boyutta uygulama ikonu sağlamamızı istiyor. Bunu kolaylaştıran birçok uygulama ve araç olsa da, Apple zaman zaman yeni boyutlar eklediği için bunların sadece birkaçı en son boyut setini destekliyor. Bu, yeni başlayan geliştiriciler için gereksiz bir engel.
![]()
Ama zaten hepsi Swift kodunda Optional tipler olarak üretiliyor. Bu durum ve tüm NSManagedObjectContext API tasarımı oldukça eski ve pek “Swifty” hissettirmiyor (yani “güvenli değil”). Yeni bir şeylerin zamanı geldi!
Çözüm
Apple, SwiftUI gibi yeni bir yalnızca Swift’e özel framework (mesela SwiftData gibi bir isimle) tanıtabilir ve kalıcı modelleri tanımlamak ve yönetmek için üst düzey bir API sunabilir. Bir model tanımlamak şöyle görünebilir:
import SwiftData
actor Category: PersistableObject {
@Persisted
var colorHexCode: String
@Persisted
var iconSymbolName: String
@Persisted
var name: String
@PersistedRelation(inverse: \CategoryGroup.categories)
var group: CategoryGroup
}iCloud’da saklanacak modeller için actor önüne distributed eklemeniz gerekir. Normalde bir actor‘ün herhangi bir özelliğine erişmek await anahtar kelimesini gerektirir, ancak bazı sihirli property wrapper’lar bunu şöyle basitleştirebilir:
import SwiftUI
import SwiftData
struct CategoryView: View {
@PersistedObject
var category: Category
var body: some View {
Label(
self.category.name,
systemImage: self.category.iconSymbolName
)
.foregroundColor(
Color(hex: self.category.colorHexCode)
)
}
}Ve bir actor özelliğine dışarıdan yazmak mümkün değildir, ancak @Persisted property wrapper’ı bir tür Binding sihriyle buna izin verebilir:
import SwiftUI
import SwiftData
struct CategoryView: View {
@PersistedObject
var category: Category
var body: some View {
TextField("Name", self.category.$name.bind())
}
}İtiraf etmeliyim ki Actor’leri pratikte henüz kullanmadım, bu yüzden yukarıdaki örneklerden bazıları mantıklı gelmiyorsa kusura bakmayın. Ama Actor’lerin bir SwiftData framework’ünde güvenli erişim için önemli bir rol oynayabileceğini düşünüyorum.
Ayrıca, Xcode veri modellerini versiyonlamayı kolaylaştıran bir arayüzle gelebilir ve deklaratif Swift sözdiziminde yazılıp sağ tarafta bir UML diyagramı olarak önizlenebilen (SwiftUI preview’ları gibi) grafiksel bir migrasyon aracı sunabilir. Ama belki burada fazla büyük hayaller kurmaya başladım…
Olasılık
Birçok kişi bunu son iki yıldır bekliyordu çünkü SwiftUI’dan sonraki mantıklı adım bu. Ama bu yıl, Actor’ler Swift 5.5’te zaten gönderilmiş ve Distributed Actor’ler (iCloud desteği için) yakın zamanda kabul edilmiş olmasıyla, teknoloji belki de Eylül ayında ilk versiyonu göndermeye hazır olabilir.
Sonuç
Apple’ın Haziran’da duyurabileceği pek çok şey var ve yukarıdakiler sadece benim kişisel dileklerim. Ama geçmişte en az bir veya iki framework’le tamamen şaşırtılmıştım — 2019’da SwiftUI, 2020’de WidgetKit ve 2021’de DocC gibi. Bu yıl ne olacak? Öğrenmek için sabırsızlanıyorum!

