İçeriğe geç

WWDC 2022 için En Büyük 3 Dileğim

Apple, WWDC haftasını bu yıl 6-10 Haziran olarak açıkladığına göre, gelin hangi yeni framework'leri, API'leri ve araçları görmek istediğime bir bakalım — örneklerle birlikte nasıl kullanılabileceklerini hayal edelim.

WWDC 2022 için En Büyük 3 Dileğim

✨ 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.

Open Focus Timer uygulamamın geçici Uygulama İkonu seti

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!

Bu yazıyı beğendin mi? Swift ipuçları ve indie geliştirici güncellemeleri için Bluesky ve Mastodon üzerinden takip et.