Kleines Zwischenprojekt
Vor einigen Jahren habe ich zum Thema Kalender, Lokalisierung etc. ein kleines Projekt geschrieben, das – damals in Objective-C – anhand des Datums anzeigt ob Weihnachten ist oder nicht (das kann man natürlich auch mit anderen Events schreiben).
Inzwischen habe ich es umgeschrieben erst auf Swift, und heute auf SwiftUI. Dabei verwende ich ein Model, das eigentlich nur das Datum prüft, ob es sich bei dem Monat um den Dezember handelt und entweder der 24., 25. oder 26. ist. Nur dann ist die Funktion wahr (true). Dieses Modell habe ich nicht verändert.
Was in dieser Konstellation wegfällt ist der Controller. Der View übernimmt diese Funktion komplett.
Und das geht relativ schick auch mit SwiftUI, ein Projekt erzeugen, das Model einlesen ("Add Files to the project") und den View schreiben.
Der Inhalt des Content View ist einfach:
struct ContentView: View {
@State private var christmasMessage = "Ist es schon Weihnachten?"
private let heute = Date()
private let cm = isItChristmasModel()
var body: some View {
VStack {
Text(christmasMessage)
.font(.largeTitle)
.foregroundColor(.red)
Divider()
Button("Find it Out!") {
if (cm.isItChristmas(datum: heute) == true) {
christmasMessage = "Ja!"
} else {
christmasMessage = "Nein!"
}
}
}
.padding()
}
}
Eigentlich ein sehr schönes Progrämmchen, das ich damals im alten Blog, noch vor der Blogfunktion von Jimdo, mal zu Weihnachten geschrieben habe. Dazu auch noch ein wenig Lokalisation.
Innerhalb von zehn Minuten geschrieben. Geht sicherlich noch schneller 😀