You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Samuel Zielke 21edee59aa
chore: initial commit of Mawari 1.0.0
1 day ago
App chore: initial commit of Mawari 1.0.0 1 day ago
Tools chore: initial commit of Mawari 1.0.0 1 day ago
design chore: initial commit of Mawari 1.0.0 1 day ago
docs chore: initial commit of Mawari 1.0.0 1 day ago
.gitignore chore: initial commit of Mawari 1.0.0 1 day ago
CHANGELOG.md chore: initial commit of Mawari 1.0.0 1 day ago
CLAUDE.md chore: initial commit of Mawari 1.0.0 1 day ago
README.md chore: initial commit of Mawari 1.0.0 1 day ago
project.yml chore: initial commit of Mawari 1.0.0 1 day ago

README.md

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

  1. In project.yml MARKETING_VERSION erhöhen und CURRENT_PROJECT_VERSION um 1 hochzählen.
  2. bash Tools/build-dmg.sh – Release-Build, Signatur (Developer ID), Notarisierung von App und DMG.
  3. bash Tools/make-appcast.sh "Was ist neu – ein Satz" – signiert das DMG mit dem Sparkle-Schlüssel, schreibt build/appcast.xml.
  4. bash Tools/publish.sh – lädt DMG und Appcast nach update.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

Powered by TurnKey Linux.