- HTML 64%
- Swift 29.2%
- Python 3.5%
- Shell 3.3%
| .github/workflows | ||
| mockup | ||
| native | ||
| tests | ||
| .gitignore | ||
| README.md | ||
🍏 Notizen — native iPad-App (Obsidian-kompatibel)
Tippen + Apple Pencil. Notizen werden als .md-Dateien (plus .pking/.svg) in einen Ordner geschrieben, den man in den Einstellungen per Dokumenten-Picker auswählt — z. B. den Nextcloud-Share. Das ist der unterstützte Weg in den Vault. Ein Sync in der App (WebDAV, Anmeldung, Hintergrund-Abgleich) ist nicht implementiert.
Stand des Repos
- Kein
git remote: dieses Arbeitsverzeichnis ist die einzige Kopie. Es gibt keinen zweiten Klon — was hier weg ist, ist weg. - Sicherung: ein git-Bundle liegt unter
~/backups/git/ipad-notizen-app-2026-10-30.bundle(git bundle verifyläuft sauber durch, komplette Historie). Zurückspielen:git clone ~/backups/git/ipad-notizen-app-2026-10-30.bundle <ziel>. - CI:
.github/workflows/build.ymlstartet beipushaufmaster(oder manuell in der GitHub-Oberfläche). Ohne Remote gibt es diesen Push nicht — der Workflow ist in diesem Repo also nie gelaufen. Was lokal läuft, sind die Tests:pytest -q tests/.
Projektstruktur
native/
project.yml # XcodeGen-Definition (erzeugt das .xcodeproj)
Sources/ # Swift-Quellcode
NotizenApp.swift # App-Einstieg
ContentView.swift # 3-Spalten-Layout
SidebarView.swift # Bibliothek
NotesListView.swift # Notizliste
NoteEditorView.swift # Editor + Titel
DrawingCanvas.swift # PencilKit-Zeichenfläche
NoteStore.swift # Datenhaltung + lokale Persistenz
SettingsView.swift # Einstellungen
Models.swift # Note / NoteFolder
AppIntents.swift # Siri & Shortcuts
exportOptions.plist # Signing-Einstellungen
Notizen/Notizen.entitlements
mockup/ # Browser-Prototypen (V1–V8)
.github/workflows/ # Cloud-Build ohne lokalen Mac
3 Wege zu bauen
Weg A — Mac mini M1 (empfohlen, lokal)
brew install xcodegen
cd native
xcodegen generate
open Notizen.xcodeproj
# In Xcode: Signing Team = deine Apple-ID wählen, Run ▶
Weg B — Cloud-Build (GitHub Actions, kein Mac nötig)
- Push dieses Repo nach GitHub.
- In den Repo-Settings Secrets
APPLE_TEAM_IDsetzen. .ipa-Artifakt aus dem Actions-Run laden → via AltStore installieren.
In diesem Repo ist der Workflow noch nie gelaufen: es gibt keinen Remote, also auch keinen Push, der ihn auslöst (siehe „Stand des Repos"). Die Schritte oben beschreiben, was nötig wäre.
Ohne Signing-Secrets baut der Job nur den Simulator-Build (grün, aber kein .ipa).
Für ein .ipa in der Cloud müssen zusätzlich Team-ID und ein importiertes
Signing-Zertifikat (.p12 als Secret + Keychain-Schritt) vorhanden sein — der
Workflow hat dafür noch keinen Schritt. Sicher und ohne Zusatzaufwand kommt das
.ipa deshalb aus Weg A oder C.
Weg C — Lokal signiert, manuell
xcodebuild -project Notizen.xcodeproj -scheme Notizen \
-destination 'generic/platform=iOS' \
-archivePath build/Notizen.xcarchive archive \
-allowProvisioningUpdates
Sideloading — der ehrliche Rahmen
- Kostenlose Apple-ID: Signatur 7 Tage gültig, Re-Signatur über AltStore/AltServer (der Mac/PC muss dabei im selben WLAN laufen). Alles Apple-API bleibt frei nutzbar (PencilKit, iPadOS-27-Features, Siri, WebDAV).
- Bezahlter Account ($99/Jahr): Signatur 365 Tage gültig — nur 1×/Jahr neu signieren; AltStore optional.
- Sideloading sperrt keine Framework-Fähigkeiten — nur der 7-/365-Tage-Rhythmus ist der Unterschied zur App-Store-Auslieferung.
Features (Stand)
- ✏️ PencilKit-Zeichenfläche, Handschrift bleibt PKDrawing-Original, SVG-Kopie für Obsidian
- 📄 3 Blatt-Modi (Seite / Scroll / Unendlich) — einstellbar
- ☁️ Sync in der App: nicht implementiert — Notizen landen als
.mdim Ordner, den man per Dokumenten-Picker wählt (z. B. dem Nextcloud-Share); zusätzlich gibt esnative/upload-sources-to-vault.sh/native/upload-to-vault.sh - 🗣️ OCR/Handschrift→Text on-device (iPadOS 27
PKStrokeRecognizer) - ⚙️ Einstellungen: Theme, Papier, Schriftgröße, Speicherort
- 🎙️ Siri/Shortcuts: „Neue Notiz“, „Notiz öffnen: …“
Ziel-Plattform
- iPadOS 27 (build: macOS 26 / Xcode 26), iPad-first. iPhone als Anzeige-Client ok.