5.3 KiB
Mawari
Wer war wann dran? Auf einen Blick.
Mawari (回り, japanisch: „reihum, die Runde“) ist eine macOS-App von Zielke Studio für die Planung der Leben-und-Dienst-Zusammenkunft. Die offizielle Einteilung läuft weiter über die bestehende App (NW Scheduler). Mawari ergänzt sie um die eine Frage, die dort untergeht: Wann hatte wer zuletzt welche Aufgabe?
- Übersicht in zwei Bereichen: Aufgaben für Diener (Ernannte) und Schulungsaufgaben
- je Person und Aufgabe das letzte Datum, „nie“ oder „–“ (nicht freigegeben)
- Spaltenkopf klicken = sortieren (wer am längsten nicht dran war, steht oben)
- Zelle klicken = Eintrag mit Person und Aufgabe vorbelegt
- Export für Numbers (.xlsx, öffnet sich direkt in Numbers)
- bewusst keine Vorschläge, keine Abwesenheiten, keine Verknüpfung mit der App
Dokumente
| Datei | Inhalt |
|---|---|
| CLAUDE.md | Arbeitsanweisungen für Claude Code |
| CHANGELOG.md | Versionen |
| docs/datenformat.md | Aufbau von daten.json, Sicherungen, Kompatibilität zum HTML-Tool |
| design/README.md | Farben, Symbol, Texte |
Daten
~/Library/Application Support/Mawari/daten.json, jede Änderung wird sofort gespeichert. Einmal täglich landet eine Kopie in Sicherungen/ (die letzten 60 bleiben). Das Format ist identisch mit dem früheren HTML-Tool (leben-und-dienst.json), dessen Dateien lassen sich über Ablage › Sicherung / HTML-Daten laden … übernehmen.
Zum Testen ohne echte Daten: MAWARI_DATA_DIR=/irgendein/ordner …/Mawari.app/Contents/MacOS/Mawari.
Bauen
brew install xcodegen # einmalig
xcodegen # erzeugt Mawari.xcodeproj aus project.yml
open Mawari.xcodeproj
macOS 14+, Universal (arm64 + x86_64), Swift 6, SwiftUI. Einzige Abhängigkeit: Sparkle 2.10.0.
Symbol neu zeichnen: swift Tools/make-icon.swift.
Das .xcodeproj und App/Info.plist sind generiert und nicht im Repo. Nach Änderungen an project.yml erneut xcodegen ausführen.
Signiert wird mit Developer ID Application (Team XY4C2RG3L5), Hardened Runtime an. Ohne dieses Zertifikat CODE_SIGN_IDENTITY/DEVELOPMENT_TEAM in project.yml anpassen.
Struktur
| Pfad | Inhalt |
|---|---|
App/Sources/MawariApp.swift |
Einstieg, Fenster, Menüs, Oberflächenzustand |
App/Sources/Model.swift |
Datenmodell (Aufgaben, Personen, Einträge), Datumshilfen |
App/Sources/Store.swift |
Laden, Speichern, tägliche Sicherung, Abfragen |
App/Sources/OverviewView.swift |
Übersicht „wer war wann dran“ mit Sortierung |
App/Sources/HistoryView.swift, EntrySheet.swift |
Verlauf und Eintrag bearbeiten |
App/Sources/PersonsView.swift, TasksView.swift |
Personen (mit Freigaben) und Aufgaben pflegen |
App/Sources/Exporter.swift |
.xlsx-Export (eigener Writer, ohne Abhängigkeit), Sicherung speichern/laden |
App/Sources/Theme.swift |
Farben |
App/Sources/UpdateController.swift |
Sparkle |
Tools/ |
Symbol erzeugen, DMG bauen, Appcast, Veröffentlichen |
design/ |
Symbolvorlage und Designnotizen |
project.yml |
XcodeGen-Projektdefinition |
Neue Version veröffentlichen
- In
project.ymlMARKETING_VERSIONerhöhen undCURRENT_PROJECT_VERSIONum 1 hochzählen. bash Tools/build-dmg.sh– Release-Build, Signatur (Developer ID), Notarisierung von App und DMG.bash Tools/make-appcast.sh "Was ist neu – ein Satz"– signiert das DMG mit dem Sparkle-Schlüssel, schreibtbuild/appcast.xml.bash Tools/publish.sh– lädt DMG und Appcast nachupdate.zielke.studio/mawari/.
Installierte Kopien suchen einmal am Tag nach Updates und bieten sie an. Von Hand: Mawari › Nach Updates suchen …
Einmalig vor dem ersten Veröffentlichen: Ordner auf dem Server anlegen (siehe zielke-apps/README.md):
ssh -t samuelzielke@10.0.5.223 'sudo install -d -o samuelzielke -g www-data -m 2775 /var/www/updates/mawari'
Schlüssel sichern: Der private Sparkle-Schlüssel liegt im Schlüsselbund dieses Macs (Dienst https://sparkle-project.org, Konto mawari). Geht er verloren, kann keine installierte Kopie mehr aktualisiert werden. Export: generate_keys --account mawari -x mawari-sparkle.key (liegt nach dem ersten Build unter build/dd/SourcePackages/artifacts/sparkle/Sparkle/bin/), Datei in die Passwörter-App, dann löschen.
Notarisierung nutzt das Profil patchcord-notary (gleiches Team). Anderes Profil: NOTARY_PROFILE=… bash Tools/build-dmg.sh.
Ausblick: Anbindung an NW Scheduler
Geprüft, noch nicht umgesetzt. Eine Live-Schnittstelle (API) bietet NW Scheduler nicht. Möglich ist ein Import aus Dateien:
- NW Scheduler kann die Einteilungen der Leben-und-Dienst-Zusammenkunft als CSV ausgeben (Spalten
Date, Person, PartType, Assignment, School, PartType z. B.Chairman,OpeningPrayer,TreasuresTalk,Gems,BibleReading,Apply1–4,Living1–3,CBS,CBSReader). Andere Tools lesen genau dieses Format ein. - Außerdem gibt es Sicherungspakete, die z. B. CongPlan inklusive Zuteilungsverlauf übernimmt.
Ein Upgrade wäre also: Ablage › Aus NW Scheduler importieren … liest die CSV, ordnet PartType den Mawari-Aufgaben zu, gleicht Namen mit den Personen ab und ergänzt nur neue Einträge. Vorher an einer echten Exportdatei prüfen, wie Namen und Partner darin stehen.
© Zielke Studio