Wie kann man SwiftData-Modelle in mehreren Apps über den Swift Package Manager wiederverwenden und gleichzeitig app-spezIOS

Programmierung für iOS
Anonymous
 Wie kann man SwiftData-Modelle in mehreren Apps über den Swift Package Manager wiederverwenden und gleichzeitig app-spez

Post by Anonymous »

Ich versuche, SwiftData-Modelle in mehreren Apps wiederzuverwenden, ohne Code zu duplizieren. Konkret möchte ich, dass ein Modell wie Address in einem Swift-Paket lebt, während jede App ihre eigenen Beziehungen definieren kann.
Hier ist ein konzeptionelles Beispiel dafür, wie das Ergebnis aussehen soll (Hinweis: Dies wird nicht so kompiliert, wie es ist; es dient nur der Veranschaulichung der Idee):

Code: Select all

import CoreAddress

@Model public class Address: CoreAddress {
// App-specific relationships
@Relationship(deleteRule: .cascade, inverse: \Department.address) var department: Department?
var person: Person?
}

@Model open class CoreAddress: Fetchable {
// Shared properties for all apps
public var city: String?
public var country: Country?
public var id: UUID?
public var label: String?
public var latitude: Double? = 0.0
public var longitude: Double? = 0.0
public var streetName: String?
public var streetNumber: String?
public var zipCode: String?
public var cityKey: String?
public var placeName: String?
public var furtherStreet: String?
public var district: String?
public var county: String?

required public init() { }
}
Ziel / Idee:
  • Code: Select all

    CoreAddress
    befindet sich in einem Swift-Paket und enthält alle gemeinsam genutzten Eigenschaften.
  • Jede App fügt ihre eigenen Beziehungen hinzu (wie Abteilung oder Person).
  • Verwenden Sie ModelContainer in jeder App, um sowohl freigegebene als auch app-spezifische Modelle einzubinden.
Ich bin mir bewusst, dass ich das tun könnte Ähnliches gilt für Protokolle, aber ich möchte den Aufwand vermeiden, immer alle Modelle zu berühren, wenn sich etwas ändert – es fühlt sich nicht sauber oder wartbar an.
Problem:

Ich kenne nicht den besten Ansatz für:
  • SwiftData-Modelle in einem Swift-Paket strukturieren.
  • Vermeiden Sie doppelte Modelldefinitionen in mehreren Apps.
  • Lassen Sie ModelContainer sowohl das gemeinsame Modell als auch app-spezifische Beziehungen erkennen.
Im Wesentlichen möchte ich eine saubere Möglichkeit, persistente Modelle über Apps hinweg zu teilen, aber trotzdem jeder App erlauben, Beziehungen anzupassen, ohne das Modell neu zu schreiben.
Hat jemand Erfolg gehabt das gemacht? Welche Muster haben bei Ihnen funktioniert?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post