Files
simple-notes-sync/docs/DESKTOP.de.md
inventory69 67b226a5c3 feat(v1.5.0): icons, batch delete toast, cursor fix, docs refactor
FEATURES
========

Batch Delete Toast Aggregation:
- New deleteMultipleNotesFromServer() method
- Shows single aggregated toast instead of multiple ("3 notes deleted from server")
- Partial success handling ("3 of 5 notes deleted from server")
- Added string resources: snackbar_notes_deleted_from_server, snackbar_notes_deleted_from_server_partial

Text Editor Cursor Fix:
- Fixed cursor jumping to end after every keystroke when editing notes
- Added initialCursorSet flag to only set cursor position on first load
- Cursor now stays at user's position while editing
- Changed LaunchedEffect(content) to LaunchedEffect(Unit) to prevent repeated resets

DOCUMENTATION REFACTOR
======================

Breaking Change: English is now the default language
- README.md: Now English (was German)
- QUICKSTART.md: Now English (was German)
- CHANGELOG.md: Now English (was mixed EN/DE)
- docs/*.md: All English (was German)
- German versions: Use .de.md suffix (README.de.md, QUICKSTART.de.md, etc.)

Updated for v1.5.0:
- CHANGELOG.md: Fully translated to English with v1.5.0 release notes
- CHANGELOG.de.md: Created German version
- FEATURES.md: Added i18n section, Selection Mode, Jetpack Compose updates
- FEATURES.de.md: Updated with v1.5.0 features
- UPCOMING.md: v1.5.0 marked as released, v1.6.0/v1.7.0 roadmap
- UPCOMING.de.md: Updated German version

All language headers updated:
- English: [Deutsch](*.de.md) · **English**
- German: **Deutsch** · [English](*.md)

F-DROID METADATA
================

Changelogs (F-Droid):
- fastlane/metadata/android/en-US/changelogs/13.txt: Created
- fastlane/metadata/android/de-DE/changelogs/13.txt: Created

Descriptions:
- full_description.txt (EN/DE): Updated with v1.5.0 changes
  - Selection Mode instead of Swipe-to-Delete
  - i18n support highlighted
  - Jetpack Compose UI mentioned
  - Silent-Sync Mode added

OTHER FIXES
===========

Code Quality:
- Unused imports removed from multiple files
- maxLineLength fixes
- Detekt config optimized (increased thresholds for v1.5.0)
- AboutScreen: Uses app foreground icon directly
- EmptyState: Shows app icon instead of emoji
- themes.xml: Splash screen uses app foreground icon
2026-01-16 16:31:30 +01:00

12 KiB

Desktop-Integration 🖥️

🌍 Sprachen: Deutsch · English

Bearbeite deine Notizen mit jedem Markdown-Editor auf dem Desktop


📋 Übersicht

Die Desktop-Integration ermöglicht dir, Notizen auf dem PC/Mac zu bearbeiten:

  • 📝 Jeder Markdown-Editor funktioniert
  • 🔄 Automatische Synchronisation über WebDAV
  • 💾 Dual-Format: JSON (Master) + Markdown (Mirror)
  • Last-Write-Wins Konfliktauflösung

🎯 Warum Markdown?

Dual-Format Architektur

┌─────────────────────────────────────┐
│         Android App                 │
│                                     │
│  ┌──────────┐      ┌─────────────┐ │
│  │   JSON   │ ──→  │  Markdown   │ │
│  │ (Master) │      │  (Mirror)   │ │
│  └──────────┘      └─────────────┘ │
└────────┬────────────────┬───────────┘
         │                │
         ↓                ↓
    WebDAV Server
         │                │
    ┌────┴────┐      ┌────┴──────┐
    │ /notes/ │      │ /notes-md/│
    │ *.json  │      │ *.md      │
    └─────────┘      └───────────┘
         ↑                ↑
         │                │
    ┌────┴────────────────┴───────────┐
    │      Desktop Editor              │
    │  (VS Code, Typora, etc.)         │
    └──────────────────────────────────┘

Vorteile

JSON (Master):

  • Zuverlässig und schnell
  • Strukturierte Daten (IDs, Timestamps)
  • Primärer Sync-Mechanismus
  • Immer aktiv

Markdown (Mirror):

  • Menschenlesbar
  • Desktop-Editor kompatibel
  • Syntax-Highlighting
  • Optional aktivierbar

🚀 Schnellstart

1. Erste Synchronisation

Wichtig: Führe ZUERST einen Sync durch, bevor du Desktop-Integration aktivierst!

  1. App einrichten (siehe QUICKSTART.md)
  2. Server-Verbindung testen
  3. Erste Notiz erstellen
  4. Synchronisieren (Pull-to-Refresh oder Auto-Sync)
  5. Server erstellt automatisch /notes/ und /notes-md/ Ordner

2. Desktop-Integration aktivieren

  1. EinstellungenDesktop-Integration
  2. Toggle aktivieren
  3. Initial Export startet - Zeigt Progress (X/Y)
  4. Alle bestehenden Notizen werden als .md exportiert

3. WebDAV als Netzlaufwerk mounten

Windows

1. Explorer öffnen
2. Rechtsklick auf "Dieser PC"
3. "Netzlaufwerk verbinden"
4. URL eingeben: http://DEIN-SERVER:8080/notes-md/
5. Benutzername: noteuser
6. Passwort: (dein WebDAV-Passwort)
7. Laufwerksbuchstabe: Z:\ (oder beliebig)
8. Fertig!

Zugriff: Z:\ im Explorer

macOS

1. Finder öffnen
2. Menü "Gehe zu" → "Mit Server verbinden" (⌘K)
3. Server-Adresse: http://DEIN-SERVER:8080/notes-md/
4. Verbinden
5. Benutzername: noteuser
6. Passwort: (dein WebDAV-Passwort)
7. Fertig!

Zugriff: Finder → Netzwerk → notes-md

Linux (GNOME)

1. Files / Nautilus öffnen
2. "Andere Orte"
3. "Mit Server verbinden"
4. Server-Adresse: dav://DEIN-SERVER:8080/notes-md/
5. Benutzername: noteuser
6. Passwort: (dein WebDAV-Passwort)
7. Fertig!

Zugriff: /run/user/1000/gvfs/dav:host=...

Linux (davfs2 - permanent)

# Installation
sudo apt install davfs2

# Mount-Point erstellen
sudo mkdir -p /mnt/notes-md

# Einmalig mounten
sudo mount -t davfs http://DEIN-SERVER:8080/notes-md/ /mnt/notes-md

# Permanent in /etc/fstab
echo "http://DEIN-SERVER:8080/notes-md/ /mnt/notes-md davfs rw,user,noauto 0 0" | sudo tee -a /etc/fstab

Zugriff: /mnt/notes-md/


📝 Markdown-Editoren

Empfohlene Editoren

1. VS Code Empfohlen

Vorteile:

  • Kostenlos & Open Source
  • Markdown-Preview (Ctrl+Shift+V)
  • Syntax-Highlighting
  • Git-Integration
  • Erweiterungen (Spell Check, etc.)

Setup:

1. VS Code installieren
2. WebDAV-Laufwerk mounten
3. Ordner öffnen: Z:\notes-md\ (Windows) oder /mnt/notes-md (Linux)
4. Fertig! Markdown-Dateien bearbeiten

Extensions (optional):

  • Markdown All in One - Shortcuts & Preview
  • Markdown Preview Enhanced - Bessere Preview
  • Code Spell Checker - Rechtschreibprüfung

2. Typora

Vorteile:

  • WYSIWYG Markdown-Editor
  • Minimalistisches Design
  • Live-Preview
  • ⚠️ Kostenpflichtig (~15€)

Setup:

1. Typora installieren
2. WebDAV mounten
3. Ordner in Typora öffnen
4. Notizen bearbeiten

3. Notepad++

Vorteile:

  • Leichtgewichtig
  • Schnell
  • Syntax-Highlighting
  • ⚠️ Keine Markdown-Preview

Setup:

1. Notepad++ installieren
2. WebDAV mounten
3. Dateien direkt öffnen

4. Obsidian

Vorteile:

  • Zweite Gehirn-Philosophie
  • Graph-View für Verlinkungen
  • Viele Plugins
  • ⚠️ Sync-Konflikte möglich (2 Master)

Setup:

1. Obsidian installieren
2. WebDAV als Vault öffnen
3. Vorsicht: Obsidian erstellt eigene Metadaten!

⚠️ Nicht empfohlen: Kann Frontmatter verändern


📄 Markdown-Dateiformat

Struktur

Jede Notiz wird als .md Datei mit YAML-Frontmatter exportiert:

---
id: abc-123-def-456
created: 2026-01-05T14:30:22Z
updated: 2026-01-05T14:30:22Z
tags: []
---

# Notiz-Titel

Notiz-Inhalt hier...

Frontmatter-Felder

Feld Typ Beschreibung Pflicht
id UUID Eindeutige Notiz-ID Ja
created ISO8601 Erstellungsdatum Ja
updated ISO8601 Änderungsdatum Ja
tags Array Tags (zukünftig) Nein

Dateinamen

Sanitization-Regeln:

Titel: "Meine Einkaufsliste 🛒"
→ Dateiname: "Meine_Einkaufsliste.md"

Entfernt werden:
- Emojis: 🛒 → entfernt
- Sonderzeichen: / \ : * ? " < > | → entfernt
- Mehrfache Leerzeichen → einzelnes Leerzeichen
- Leerzeichen → Unterstrich _

Beispiele:

"Meeting Notes 2026" → "Meeting_Notes_2026.md"
"To-Do: Projekt" → "To-Do_Projekt.md"
"Urlaub ☀️" → "Urlaub.md"

🔄 Synchronisation

Workflow: Android → Desktop

  1. Notiz in App erstellen/bearbeiten
  2. Sync ausführen (Auto oder manuell)
  3. JSON wird hochgeladen (/notes/abc-123.json)
  4. Markdown wird exportiert (/notes-md/Notiz_Titel.md) (nur wenn Desktop-Integration AN)
  5. Desktop-Editor zeigt Änderungen (nach Refresh)

Workflow: Desktop → Android

  1. Markdown-Datei bearbeiten (im gemounteten Ordner)
  2. Speichern - Datei liegt sofort auf Server
  3. In App: Markdown-Import ausführen
    • Einstellungen → "Import Markdown Changes"
    • Oder: Auto-Import bei jedem Sync (zukünftig)
  4. App übernimmt Änderungen (wenn Desktop-Version neuer)

Konfliktauflösung: Last-Write-Wins

Regel: Neueste Version (nach updated Timestamp) gewinnt

Beispiel:

App-Version:     updated: 2026-01-05 14:00
Desktop-Version: updated: 2026-01-05 14:30
→ Desktop gewinnt (neuerer Timestamp)

Automatisch:

  • Beim Markdown-Import
  • Beim JSON-Sync
  • ⚠️ Keine Merge-Konflikte - nur komplettes Überschreiben

⚙️ Einstellungen

Desktop-Integration Toggle

Einstellungen → Desktop-Integration

AN (aktiviert):

  • Neue Notizen → automatisch als .md exportiert
  • Aktualisierte Notizen → .md Update
  • Gelöschte Notizen → .md bleibt (zukünftig: auch löschen)

AUS (deaktiviert):

  • Kein Markdown-Export
  • JSON-Sync läuft normal weiter
  • Bestehende .md Dateien bleiben erhalten

Initial Export

Was passiert beim Aktivieren:

  1. Alle bestehenden Notizen werden gescannt
  2. Progress-Dialog zeigt Fortschritt (z.B. "23/42")
  3. Jede Notiz wird als .md exportiert
  4. Bei Fehlern: Einzelne Notiz wird übersprungen
  5. Erfolgsmeldung mit Anzahl exportierter Notizen

Zeit: ~1-2 Sekunden pro 50 Notizen


🛠️ Erweiterte Nutzung

Manuelle Markdown-Erstellung

Du kannst .md Dateien manuell erstellen:

---
id: 00000000-0000-0000-0000-000000000001
created: 2026-01-05T12:00:00Z
updated: 2026-01-05T12:00:00Z
---

# Neue Desktop-Notiz

Inhalt hier...

⚠️ Wichtig:

  • id muss gültige UUID sein (z.B. mit uuidgen.io)
  • Timestamps in ISO8601-Format
  • Frontmatter mit --- umschließen

Bulk-Operations

Mehrere Notizen auf einmal bearbeiten:

  1. WebDAV mounten
  2. Alle .md Dateien in VS Code öffnen
  3. Suchen & Ersetzen über alle Dateien (Ctrl+Shift+H)
  4. Speichern
  5. In App: "Import Markdown Changes"

Scripting

Beispiel: Alle Notizen nach Datum sortieren

#!/bin/bash
cd /mnt/notes-md/

# Alle .md Dateien nach Update-Datum sortieren
for file in *.md; do
  updated=$(grep "^updated:" "$file" | cut -d' ' -f2)
  echo "$updated $file"
done | sort

Fehlerbehebung

"404 Not Found" beim WebDAV-Mount

Ursache: /notes-md/ Ordner existiert nicht

Lösung:

  1. Erste Sync durchführen - Ordner wird automatisch erstellt
  2. ODER: Manuell erstellen via Terminal:
    curl -X MKCOL -u noteuser:password http://server:8080/notes-md/
    

Markdown-Dateien erscheinen nicht

Ursache: Desktop-Integration nicht aktiviert

Lösung:

  1. Einstellungen → "Desktop-Integration" AN
  2. Warten auf Initial Export
  3. WebDAV-Ordner refreshen

Änderungen vom Desktop erscheinen nicht in App

Ursache: Markdown-Import nicht ausgeführt

Lösung:

  1. Einstellungen → "Import Markdown Changes"
  2. ODER: Auto-Sync abwarten (zukünftiges Feature)

"Frontmatter fehlt" Fehler

Ursache: .md Datei ohne gültiges YAML-Frontmatter

Lösung:

  1. Datei in Editor öffnen
  2. Frontmatter am Anfang hinzufügen:
    ---
    id: NEUE-UUID-HIER
    created: 2026-01-05T12:00:00Z
    updated: 2026-01-05T12:00:00Z
    ---
    
  3. Speichern und erneut importieren

🔒 Sicherheit & Best Practices

Do's

  • Backup vor Bulk-Edits - Lokales Backup erstellen
  • Ein Editor zur Zeit - Nicht parallel in App UND Desktop bearbeiten
  • Sync abwarten - Vor Desktop-Bearbeitung Sync durchführen
  • Frontmatter respektieren - Nicht manuell ändern (außer du weißt was du tust)

Don'ts

  • Parallel bearbeiten - App und Desktop gleichzeitig → Konflikte
  • Frontmatter löschen - Notiz kann nicht mehr importiert werden
  • IDs ändern - Notiz wird als neue erkannt
  • Timestamps manipulieren - Konfliktauflösung funktioniert nicht

Empfohlener Workflow

1. Sync in App (Pull-to-Refresh)
2. Desktop öffnen
3. Änderungen machen
4. Speichern
5. In App: "Import Markdown Changes"
6. Überprüfen
7. Weiteren Sync durchführen

📊 Vergleich: JSON vs Markdown

Aspekt JSON Markdown
Format Strukturiert Fließtext
Lesbarkeit (Mensch) ⚠️ Mittel Gut
Lesbarkeit (Maschine) Perfekt ⚠️ Parsing nötig
Metadata Native Frontmatter
Editoren Code-Editoren Alle Text-Editoren
Sync-Geschwindigkeit Schnell ⚠️ Langsamer
Zuverlässigkeit 100% ⚠️ Frontmatter-Fehler möglich
Mobile-First Ja Nein
Desktop-First Nein Ja

Fazit: Beide Formate nutzen = Beste Erfahrung auf beiden Plattformen!


🔮 Zukünftige Features

Geplant für v1.3.0+:

  • Auto-Markdown-Import - Bei jedem Sync automatisch
  • Bidirektionaler Sync - Ohne manuellen Import
  • Markdown-Vorschau - In der App
  • Konflikts-UI - Bei gleichzeitigen Änderungen
  • Tags in Frontmatter - Synchronisiert mit App
  • Attachments - Bilder/Dateien in Markdown

📚 Siehe auch:

Letzte Aktualisierung: v1.2.1 (2026-01-05)