Inoffiziell. Diese App ist nicht vom THW herausgegeben oder mit dem THW verbunden. Hersteller: Lars Schäfer-Dryden. Unofficial. This app is not published by THW and not affiliated with THW. Publisher: Lars Schäfer-Dryden.

ChangelogChangelog

Alle Versionen und Neuerungen der App im Überblick. All app versions and updates at a glance.

Version 2.0.0

Aktuell Latest

App-Identität & Plattform App identity & platform

  • Neue App-Identität: Erstrelease unter eigener Bundle-ID de.schaefer-dryden.brmanager — markenrechtliche Trennung vom THW. Disclaimer „Inoffiziell. Nicht vom THW herausgegeben" in Stores und About-Dialog. New app identity: First release under its own bundle ID de.schaefer-dryden.brmanager — trademark-clean separation from THW. Disclaimer "Unofficial. Not published by THW" in stores and About dialog.
  • Display-Name vereinheitlicht: „BR Manager" mit Leerzeichen über alle Plattformen, Lokalisierungen und die Marketing-Website hinweg. Display name unified: "BR Manager" with a space across all platforms, localizations, and the marketing website.
  • macOS-Auslieferung eingestellt: Plattform-Code, Fastlane-Lanes und Mac-App-Store-Metadaten entfernt. Die App läuft fortan nur noch auf iOS und Android. macOS delivery discontinued: Platform code, Fastlane lanes and Mac App Store metadata removed. The app now only runs on iOS and Android.

Sicherheit & Revisionssicherheit Security & tamper-evidence

  • SQLCipher-Verschlüsselung (AES-256): Die lokale Datenbank ist vollständig verschlüsselt. Schlüssel im Plattform-Keychain (iOS) bzw. Keystore (Android). Bestehende Klartext-Datenbank wird beim ersten Start einmalig migriert. SQLCipher encryption (AES-256): The local database is fully encrypted. Key in the platform keychain (iOS) / keystore (Android). Existing plain databases are migrated once on first launch.
  • App-Lock: PIN (PBKDF2-HMAC-SHA-256, 100 000 Iterationen) und optionale Biometrie (FaceID / TouchID / Fingerabdruck). Auto-Sperre nach konfigurierbarer Hintergrund-Zeit. App lock: PIN (PBKDF2-HMAC-SHA-256, 100,000 iterations) and optional biometrics (FaceID / TouchID / fingerprint). Auto-lock after configurable background time.
  • Verschlüsselte Backups (.brm): AES-256-GCM, Schlüssel via PBKDF2 aus Passwort + Salt. Klartext-Backups bleiben rückwärtskompatibel. Encrypted backups (.brm): AES-256-GCM, key via PBKDF2 from password + salt. Plain backups remain backwards compatible.
  • Revisionssicheres Logbuch: Einträge sind unveränderlich. Korrekturen erscheinen als neue Einträge mit Verweis auf das Original. SHA-256-Hash-Kette über alle Einträge — Manipulation in der DB bricht die Kette an genau dieser Lfd.-Nr. Tamper-evident logbook: Entries are immutable. Corrections appear as new entries with a reference to the original. SHA-256 hash chain over all entries — direct DB manipulation breaks the chain at the exact entry number.
  • PDF-Master-Hash: Eigene Integritätsseite mit Lfd.-Nr.-Hash-Tabelle und Master-Hash (SHA-256 über alle Eintrags-Hashes). Master-Hash-Kurzform im Footer aller Inhaltsseiten. PDF master hash: Dedicated integrity page with entry-number-hash table and master hash (SHA-256 over all entry hashes). Short master hash in the footer of every content page.
  • Aktivitätsprotokoll: Eigener Bildschirm unter Einstellungen → Sicherheit. Korrekturen, Check-in/-out, Terminal-Aktionen, Schichtübergaben und Archivierungen mit Filter und „Integrität prüfen"-Button. Activity log: Dedicated screen under Settings → Security. Corrections, check-in/out, terminal actions, shift handovers and archivings with filter and "Verify integrity" button.
  • Dashboard-Server gehärtet: Token-Authentifizierung (32-Byte Random im QR-Code), optionale Stations-PIN für Terminal-Schreib-Endpunkte, Token-Bucket-Rate-Limiter (60 Anfragen/Min/IP), CORS auf lokales Netz beschränkt, Server-seitige Validierung. Hardened dashboard server: Token authentication (32-byte random in QR code), optional station PIN for terminal write endpoints, token-bucket rate limiter (60 req/min/IP), CORS restricted to local network, server-side validation.
  • Archiv-Sperre im Service-Layer: Schreib-Operationen gegen archivierte Einsätze werden zentral durch den DeploymentStatusGuard abgelehnt — vorher hat nur die UI das verhindert. Archive lock in the service layer: Write operations on archived deployments are centrally rejected by DeploymentStatusGuard — previously only enforced in the UI.

Datenschutz & DSGVO Privacy & GDPR

  • Einsatz anonymisieren: Archivierte Einsätze nachträglich anonymisieren — personenbezogene Klartextfelder werden mit „[anonymisiert]" überschrieben. Hash-Kette bleibt unangetastet, der Bruch erscheint als eigenes Ereignis im Aktivitätsprotokoll. Anonymize deployment: Anonymize archived deployments retroactively — personal plain-text fields are overwritten with "[anonymized]". The hash chain stays intact; the break shows up as its own event in the activity log.
  • Auskunft zu einer Person (DSGVO Art. 15): Volltextsuche über BR-Leiter, Aufträge, Logbuch, Verpflegungs-Notizen und Schreiber. Treffer als PDF (gruppiert, mit Disclaimer) oder JSON exportierbar. Personal data export (GDPR Art. 15): Full-text search across BR leaders, tasks, logbook, meal notes, and writers. Hits exportable as PDF (grouped, with disclaimer) or JSON.
  • Mehrere Schichtleiter: Mehrere Schreiber-Profile pro Gerät, Wechsel im laufenden Einsatz. Schichtwechsel erzeugt automatisch einen Logbuch-Eintrag „Schichtwechsel: alt → neu". Multiple shift leaders: Multiple writer profiles per device, switch mid-mission. Shift handover automatically writes a logbook entry "Shift change: old → new".
  • Schreiber pro Eintrag: Alle Logbuch-Einträge, Aufträge, Verpflegungs-Events und Check-ins erfassen Name + Funktion des schreibenden Helfers. PDF-Export zeigt Schreiber als eigene Spalte. Remote-Terminal-Aktionen werden mit [Terminal] markiert. Writer per entry: All log entries, tasks, meal events and check-ins record the writer's name and role. PDF export shows the writer as a dedicated column. Remote-terminal actions are tagged [Terminal].
  • Datenschutz-Sektion: Eigener Bildschirm unter Einstellungen → Rechtliches. Erklärt zweisprachig, welche Daten lokal gespeichert werden, was über das LAN geteilt wird, Aufbewahrung und Rechte erfasster Personen. Privacy section: Dedicated screen under Settings → Legal. Explains in both languages what is stored locally, what is shared over the LAN, retention, and data subjects' rights.

Verfahrensdoku & Compliance Procedure docs & compliance

  • Verfahrensdokumentation als PDF: Über Einstellungen → Rechtliches → Verfahrensdokumentation lässt sich eine GoBD-/DSGVO-konforme Beschreibung erzeugen — Datenmodell, Hash-Verfahren, Korrektur- und Anonymisierungs-Workflow, Backup-Format, Server-Architektur. Procedure documentation as PDF: Settings → Legal → Procedure documentation generates a GoBD-/GDPR-compliant description — data model, hashing, correction and anonymisation workflow, backup format, server architecture.
  • Integritäts-Statusbericht im PDF: Eine zusätzliche Seite zwischen Inhalt und Master-Hash zeigt Einsatz-Status, Eintrags-Zähler, Schreiber-Liste, Hash-Ketten-Status und Anonymisierungs-Hinweise. Integrity status report in the PDF: An extra page between content and master hash shows mission status, entry counts, writer list, hash chain status and anonymisation notices.
  • Compliance-Bericht in den Einstellungen: Versionierte Selbstauskunft pro Release mit Anforderungen je Kategorie, Status-Icons und Detail-Sheet (Quelle, Seit-Version, Nachweis-Pfade). Quelle ist compliance/checklist.yaml. Compliance report in settings: Versioned self-disclosure per release with requirements by category, status icons and detail sheet (source, since version, proof paths). Source of truth is compliance/checklist.yaml.
  • Release-Sperre: Die release-Lanes brechen ab, wenn der Compliance-Snapshot zur aktuellen Version fehlt — kein Build geht ohne dokumentierten Compliance-Stand in den Store. Release lock: The release lanes abort if the compliance snapshot for the current version is missing — no build ships without a documented compliance status.

Neue Features New features

  • Onboarding: Beim ersten Start führen 6 Seiten durch die wichtigsten Funktionen, inkl. eigener „Sicherheit & Datenschutz"-Seite mit Direkt-Sprung in die Sicherheits-Einstellungen. Onboarding: Six pages introduce the key features on first launch, including a dedicated "Security & Privacy" page with a direct jump into the security settings.
  • Dashboard-Freigabe: Lagebild als Web-Seite im lokalen Netzwerk teilen — QR-Code, Auto-Refresh alle 30 Sekunden. Dashboard sharing: Share the situation overview as a web page on the local network — QR code, auto-refresh every 30 seconds.
  • Remote Check-in Terminal: Interaktives Web-Terminal für Check-in/Check-out über ein zweites Gerät am BR-Eingang. Eigener QR-Code, Duplikat-Erkennung, [Terminal]-Kennung im Logbuch. Remote check-in terminal: Interactive web terminal for check-in/check-out via a second device at the entrance. Separate QR code, duplicate detection, [Terminal] tag in the logbook.
  • Fahrzeug-Freitext: Fahrzeuge per Autocomplete oder als Freitext eingeben (z.B. „THW Kran"). Free-text vehicles: Enter vehicles via autocomplete or as free text (e.g. "THW crane").
  • Verpflegungs-Editor: Dialog vor dem Speichern mit bearbeitbarer Portionszahl und optionalem Bemerkungsfeld. Meal editor: Dialog before saving with editable portion count and optional notes field.
  • Konfigurierbarer Dashboard-Port: Server-Port für Dashboard und Check-in Terminal in den Einstellungen änderbar (Standard: 8080). Configurable dashboard port: Server port for dashboard and check-in terminal configurable in settings (default: 8080).

Bugfixes & Politur Bugfixes & polish

  • PDF-Export: Uhrzeit im Kopfdatenblock wird korrekt angezeigt (statt 00:00). PDF export: Time in the header block now displays correctly (instead of 00:00).
  • Stärke-Eingabe: Nur Ziffern erlaubt, max. 999. Sonderzeichen und Vorzeichen werden blockiert. Strength input: Digits only, max. 999. Special characters and signs are blocked.
  • Check-in-Validierung: Einchecken-Button erst aktiv, wenn alle Pflichtfelder ausgefüllt sind. Check-in validation: Check-in button only active when all required fields are filled.
  • Org-Wechsel: Stärkewerte werden beim Wechsel der Organisation korrekt zurückgesetzt (mit Bestätigungsdialog). Organization switch: Strength values are correctly reset when switching organizations (with confirmation dialog).
  • Deployment-Schutz: Neuanlage eines BR bei aktivem Einsatz blockiert mit Warndialog. Deployment protection: Creating a new BR while a deployment is active is blocked with a warning dialog.
  • Einsatzzeit-Timer: Pausiert automatisch bei Status „In Ruhe" und zählt nur aktive Einsatzzeit. Deployment timer: Pauses automatically on status "Resting" and counts only active deployment time.
  • Logbuch-Sprache: Einheitliche deutsche Bezeichnungen für Einheiten-Status, Verpflegungstypen und Auftragsstatus. Logbook language: Unified German labels for unit status, meal types and task status.

Performance Performance

  • Timer-Rebuilds: Lagemeldungs-Timer löst UI-Rebuild nur noch bei sichtbarer Änderung aus (statt jede Sekunde). Timer rebuilds: The situation report timer now triggers a UI rebuild only on visible change (instead of every second).
  • SQL-Aggregation: Stärke nach Organisation und Verpflegungs-Zusammenfassung werden direkt per SQL berechnet (statt alle Datensätze zu laden). SQL aggregation: Strength by organization and meal summary are computed directly via SQL (instead of loading all rows).
  • Provider-Caching: Berechnete Werte (Stärke-Summen, Status-Zähler, Fahrzeug-Maps) werden gecacht statt bei jedem Rebuild neu berechnet. Provider caching: Computed values (strength sums, status counters, vehicle maps) are cached instead of recomputed on every rebuild.
  • DB-Index: Neuer Index auf task_units(unit_id) für schnellere Einheiten-Auftrags-Abfragen. DB index: New index on task_units(unit_id) for faster unit-task queries.

Version 1.1.1

Neue Funktionen New features

  • Einheiten-Zuordnung zu Aufträgen: Eine oder mehrere Einheiten aus dem BR können einem Auftrag zugeordnet werden. Sie wechseln automatisch auf „Im Einsatz" und zurück bei Auftrags-Abschluss. Assign units to tasks: One or more units from the BR can be assigned to a task. They automatically switch to "Deployed" and back on task completion.

Stammdaten Master data

  • Bundespolizei (BPol) als Organisation hinzugefügt — inkl. FuStW, GruKW, BeDoKW. Federal Police (BPol) added as an organization — incl. patrol car, group transport, command vehicle.
  • Bundeswehr (BW) als Organisation hinzugefügt — Wolf, Dingo, Unimog, LKW. German Army (BW) added as an organization — Wolf, Dingo, Unimog, truck.
  • Kreisverwaltung (Kreis) als Organisation hinzugefügt; Stadt wurde in Kommune (Kom) umbenannt. District administration (Kreis) added; City renamed to Municipality (Kom).
  • Erweiterte Fahrzeug-Stammdaten: THW (BLF, Radlader, NEA), FW (HLF 10, TLF 3000, GW-A, WLF, Abrollbehälter), RD (NAW, ITW, GRTW), Wasserrettung (Boot, GW-Taucher, GW-Wasserrettung). Extended vehicle master data: THW, fire brigade, EMS and water rescue vehicles added.

UX-Verbesserungen UX improvements

  • Logbuch-Sortierung: Einträge nach „Neueste zuerst" (Standard) oder „Älteste zuerst" sortierbar. Logbook sorting: Entries sortable by "newest first" (default) or "oldest first".
  • Einheiten „Im Einsatz" oben gruppiert: Eigene Sektion mit Amber/Gelb-Akzent für bessere visuelle Unterscheidung. "Deployed" units grouped at the top: Dedicated section with amber/yellow accent for better visual distinction.
  • Einheiten-Auswahl für Aufträge: Suchbare Auswahlliste statt FilterChips. Unit picker for tasks: Searchable selection list instead of filter chips.
  • Fahrzeug-Kategorie Autocomplete: Vorhandene Kategorien als Vorschläge beim Anlegen/Bearbeiten von Fahrzeugen. Vehicle category autocomplete: Existing categories suggested when adding/editing vehicles.
  • Verpflegungs-SnackBar: Verschwindet nach 5 Sekunden und schwebt über dem Content. Meal snackbar: Disappears after 5 seconds and floats above the content.

Version 1.1.0

Neue Funktionen New features

  • Erweiterte Einheiten-Status: „Im Einsatz", „In Ruhe" oder „Nicht einsatzbereit" — Status-Wechsel werden automatisch im Logbuch protokolliert. Extended unit status: "Deployed", "Resting" or "Not operational" — status changes are automatically logged.
  • Einsatzzeit-Tracking: Live-Anzeige pro Einheit, konfigurierbare Warnung bei Überschreitung der maximalen Einsatzzeit (Standard: 10 h). Deployment time tracking: Live display per unit, configurable warning when the maximum deployment time is exceeded (default: 10 h).
  • Lagemeldungs-Timer: Konfigurierbarer Countdown erinnert an fällige Lagemeldungen, automatischer Logbuch-Eintrag bei Ablauf. Situation report timer: Configurable countdown reminds about due situation reports, automatic logbook entry on expiry.
  • Kräftenachweis-PDF: Tabellarischer Report aller Einheiten mit Check-in/out-Zeiten, Stärke und Einsatzdauer — für die Abrechnung mit Bedarfsträgern. Force verification PDF: Tabular report of all units with check-in/out times, strength and duration — for billing documentation.
  • Verpflegungsplanung: Portionsbedarf basierend auf aktueller Stärke. Mahlzeiten-Ausgabe (Frühstück, Mittag, Abend, Snack) erfassen und automatisch protokollieren. Meal planning: Portion needs based on current strength. Track meal distribution (breakfast, lunch, dinner, snack) with automatic logging.
  • Auftrags-Tracking: Aufträge erstellen, priorisieren (Hoch/Mittel/Niedrig), nachverfolgen. 5. Tab im Dashboard mit Badge für offene Aufträge. Task tracking: Create, prioritize (high/medium/low) and track tasks. 5th dashboard tab with badge for open tasks.
  • Wettervorhersage auf dem Dashboard: Aktuelle Temperatur, Wind, Niederschlag und 24-Stunden-Forecast via Open-Meteo. Cache für Offline-Betrieb, Veraltet-Warnung. Weather forecast on the dashboard: Current temperature, wind, precipitation and 24-hour forecast via Open-Meteo. Cache for offline use, staleness warning.
  • Nacht-Modus (Rot): Dunkler Modus mit Rot-Tönung — schont die Nachtsicht bei Einsätzen im Dunkeln. Night mode (red): Dark mode with red tint — preserves night vision during operations in the dark.
  • Zweisprachig (Deutsch + Englisch): App folgt der Systemsprache, ~95 übersetzte Strings. Bilingual (German + English): App follows the system language, ~95 translated strings.

UX & Design UX & design

  • Einsatztauglich: Mindestens 48 dp Touch-Targets für Bedienung mit Handschuhen, haptisches Feedback bei wichtigen Aktionen. Field-ready: At least 48 dp touch targets for gloved operation, haptic feedback on key actions.
  • Schnellaktionen auf dem Dashboard: Lagemeldung und neuer Logbuch-Eintrag mit einem Tipp. Quick actions on the dashboard: Situation report and new logbook entry with one tap.
  • Komplette Dark-Mode-Überarbeitung: Alle hardcodierten Farben durch theme-aware ColorScheme ersetzt. Drei Erscheinungsbilder: Hell, Dunkel, Nacht (Rot) + System-Automatik. Complete dark mode overhaul: All hardcoded colors replaced with theme-aware ColorScheme. Three themes: Light, Dark, Night (red) + system automatic.
  • Verpflegung rückgängig machen: Undo-Button im SnackBar nach Mahlzeit-Ausgabe. Undo meal: Undo button in the snackbar after meal distribution.
  • Auftrags-Tab: Verbesserter Empty-State mit Swipe-Hinweis. Task tab: Improved empty state with swipe hint.

Version 1.0.0

Erste Veröffentlichung Initial release

  • Setup-Prozess: Erfassung der BR-Kopfdaten (Leiter, Standort, Stichwort, Zweck) mit GPS-Standort und automatischer Adresserkennung. Setup process: Capture BR header data (leader, location, keyword, purpose) with GPS and automatic address recognition.
  • 4-Tab-Dashboard: Lagebild, Einheiten, Check-in und Logbuch mit taktischer Uhr (Format DDHHmmMMMJJ), KPI-Grid, Gesamtstärke-Leiste und Organisations-Karten. 4-tab dashboard: Situation overview, units, check-in and logbook with tactical clock (format DDHHmmMMMJJ), KPI grid, total strength bar, and organization cards.
  • Check-in / Check-out: Einheiten mit Organisation, Fahrzeug, Stärke und optionalem Kennzeichen erfassen. Taktische Stärke (Fü/UFü/He) oder einfache Personenzahl je nach Organisation. Duplikat-Erkennung, Swipe-to-Checkout, Sammel-Abmeldung. Check-in / check-out: Capture units with organization, vehicle, strength, and optional license plate. Tactical strength (Ldr/NCO/Enl) or plain head count depending on organization. Duplicate detection, swipe-to-checkout, bulk dismissal.
  • Logbuch: Automatische Einträge bei Check-in, Check-out und BR-Eröffnung/-Schließung. Manuelle Einträge über FAB. Schichtübergabe wird automatisch protokolliert. Logbook: Automatic entries on check-in, check-out and BR opening/closing. Manual entries via FAB. Shift handover automatically logged.
  • PDF-Export (Einsatztagebuch): Schwarz/Weiß-Layout gemäß THW-Vorlage, Kopfdaten-Block, Multi-Page-Support, Unterschriftszeile. PDF export (operations log): Black/white layout per THW template, header block, multi-page support, signature line.
  • Stammdaten-Verwaltung: 9 Organisationen + 30 Fahrzeuge vorinstalliert. Farbwähler, Taktische-Stärke-Toggle, Fahrzeuge gruppiert nach Kategorie. Master data management: 9 organizations + 30 vehicles preinstalled. Color picker, tactical strength toggle, vehicles grouped by category.
  • Archiv: Vergangene Einsätze mit Detail-Ansicht und nachträglichem PDF-Export. Archive: Past deployments with detail view and retroactive PDF export.
  • Datenbank-Backup: SQLite-Datenbank über Share-Dialog sichern und wiederherstellen. Database backup: Back up and restore the SQLite database via the share dialog.