Zum Inhalt springen

Meine Top 3 Wünsche für die WWDC 2022

Apple hat die WWDC-Woche für den 6.–10. Juni angekündigt – schauen wir uns mal an, welche neuen Frameworks, APIs und Tools ich mir erhoffe und wie ihre Nutzung aussehen könnte, inklusive Beispielen.

Meine Top 3 Wünsche für die WWDC 2022

✨ 2023 Update: Ich habe 3 weitere Wünsche in diesem Nachfolgeartikel ergänzt.

Jedes Jahr gibt es diese ganz besondere Zeit, in der eine bestimmte Gruppe von Menschen Wünsche äußert und sich Hoffnungen auf alles Mögliche macht. Manche teilen ihre Wünsche mit anderen, manche behalten sie lieber für sich, um nicht zu enttäuscht zu werden, wenn sie nicht in Erfüllung gehen. Ich gehörte bisher zur letzteren Gruppe, aber diesmal möchte ich meine Wünsche teilen, um die Wahrscheinlichkeit zu erhöhen, dass sie wahr werden – wenn nicht dieses Jahr, dann vielleicht nächstes. Schließlich hört der Weihnachtsmann vielleicht zu.

Ich werde die offensichtlichen Themen überspringen, die auf so gut wie jeder iOS-Entwickler-Liste ganz oben stehen, wie ein stabileres Xcode, ein fehlerfreieres Swift, ein vollständigeres SwiftUI oder zuverlässigere SwiftUI Previews. Los geht’s!

#3: App-Icons in allen Größen aus einem einzigen Bild importieren

Problem

Jede App braucht ein App-Icon. Xcode verlangt von uns, das App-Icon in Dutzenden verschiedener Größen bereitzustellen, ohne dabei Unterstützung beim Skalieren zu bieten. Es gibt zwar viele Apps und Tools, die dabei helfen, aber nur wenige davon unterstützen die neuesten Größen, da Apple gerne neue dazufügt. Das ist ein unnötiges Hindernis für neue Entwickler, die gerade erst anfangen.

Das vorläufige App-Icon-Set meiner Open Focus Timer App

Aber sie werden im Swift-Code sowieso alle als Optional-Typen generiert. Das und das gesamte NSManagedObjectContext-API-Design fühlt sich ziemlich veraltet und nicht besonders „Swifty” an (also „nicht sicher”). Es wird Zeit für etwas Neues!

Lösung

Apple könnte ein neues, reines Swift-Framework einführen (wie SwiftUI), das vielleicht SwiftData heißt und eine High-Level-API zum Definieren und Verwalten persistierbarer Modelle bietet. Ein Modell zu definieren könnte dann so aussehen:

import SwiftData

actor Category: PersistableObject {
  @Persisted
  var colorHexCode: String

  @Persisted
  var iconSymbolName: String

  @Persisted
  var name: String

  @PersistedRelation(inverse: \CategoryGroup.categories)
  var group: CategoryGroup
}

Für Modelle, die in iCloud gespeichert werden sollen, müsste man distributed vor actor setzen. Normalerweise würde der Zugriff auf eine Property eines actor das Schlüsselwort await erfordern, aber spezielle Property Wrapper könnten das vereinfachen zu:

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)
    )
  }
}

Und das Schreiben auf eine actor-Property ist von außen nicht möglich, aber der @Persisted-Property-Wrapper könnte etwas Binding-Magie mitbringen, um das zu ermöglichen:

import SwiftUI
import SwiftData

struct CategoryView: View {
  @PersistedObject
  var category: Category

  var body: some View {
    TextField("Name", self.category.$name.bind())
  }
}

Ich muss zugeben, ich habe Actors in der Praxis noch nicht verwendet, also verzeiht mir, wenn einige der obigen Beispiele keinen Sinn ergeben. Aber ich habe das Gefühl, dass Actors eine wichtige Rolle in einem SwiftData-Framework für sicheren Zugriff spielen könnten.

Zusätzlich könnte Xcode eine Oberfläche mitbringen, die es einfach macht, Datenmodelle zu versionieren, und ein grafisches Migrationstool bieten, das in deklarativer Swift-Syntax geschrieben und als UML-Diagramm auf der rechten Seite angezeigt werden könnte (wie SwiftUI Previews). Aber vielleicht habe ich hier angefangen, zu groß zu träumen …

Wahrscheinlichkeit

Viele haben das schon in den letzten zwei Jahren erwartet, weil es der logische nächste Schritt nach SwiftUI ist. Aber dieses Jahr, mit Actors, die bereits in Swift 5.5 ausgeliefert wurden, und Distributed Actors (für iCloud-Unterstützung), die erst kürzlich akzeptiert wurden, könnte die Technologie gerade bereit sein, die erste Version bis September auszuliefern.

Fazit

Es gibt vieles, das Apple im Juni ankündigen könnte, und die obigen Punkte sind nur meine persönlichen Wünsche. Aber in der Vergangenheit wurde ich immer von mindestens ein oder zwei Frameworks komplett überrascht, wie SwiftUI 2019, WidgetKit 2020 und DocC 2021. Was wird es dieses Jahr sein? Ich kann es kaum erwarten, es herauszufinden!

Hat dir dieser Beitrag gefallen? Folge mir auf Bluesky und Mastodon für mehr Swift-Tipps und Indie-Dev-Updates.