/de/case-studies / PZŁ 2.0
// Case Study · GovTech / Mobile

System der Jagdvereine PZŁ 2.0mobile App für 130.000 PZŁ-Mitglieder

Eine React-Native-App für den Polnischen Jagdverband — umgesetzt für SmallGIS, den Generalauftragnehmer des Systems, in der Rolle des Mobile Development Leaders. Über 20 Funktionsmodule — vom elektronischen Jagdbuch über Einzel- und Gesellschaftsjagden, Revierkarten mit Overlay-Ebenen, Wildschäden, Vereinslager und Abrechnungen bis hin zu Wetter mit Windgeschwindigkeit, dem Rundschreiben des Hauptvorstands und dem System für Alarmmeldungen.
Endkunde · Polnischer Jagdverband (PZŁ)
Direkter Auftraggeber · SmallGIS sp. z o.o.
Rolle · Mobile Development Leader
Branche · GovTech / NGO
6Mon.
Bis zur Übergabe
130k
PZŁ-Mitglieder in Reichweite des Systems
20+
Funktionsmodule
21
Rollen und Berechtigungsstufen
01 · Kontext

Über das Projekt und den Kunden#

Der Polnische Jagdverband (PZŁ) ist die Dachorganisation der polnischen Jäger — strukturell umfasst er die Jagdvereine, die Bezirksvorstände und den Hauptvorstand. SKŁ PZŁ 2.0 ist das größte Digitalvorhaben in der Geschichte des Verbands und ersetzt bislang verstreute Insellösungen sowie das papierene Jagdbuch durch ein einheitliches, landesweites System.
Endkunde
Polnischer Jagdverband (PZŁ)
Hauptvorstand
Generalauftragnehmer
SmallGIS sp. z o.o.
Mobile (philosopht)
Mobile Development Leader
Leitung des Mobile-Teams
Größenordnung
2.500 Vereine · 130.000 Mitglieder
Projektdauer
6 Monate bis zur Übergabe
Plattformen
iOS, Android · React Native
Projektziel

Eine mobile App entwerfen und ausliefern, die eine natürliche Erweiterung des Web-Systems PZŁ 2.0 ist — und den gesamten Arbeitsalltag eines Jagdvereins abdeckt: elektronisches Jagdbuch, Einzel- und Gesellschaftsjagden, Wildschäden, Vereinslager, Revierkarten mit Overlay-Ebenen, jagdliche Einrichtungen, Abrechnungen, Ausführung des Jahresplans, Rundschreiben des Hauptvorstands, Chat, Alarmmeldungen, Wetter mit Windgeschwindigkeit, Gasteinladungen und Mitgliederhilfe — mit einer einheitlichen Aufteilung der Berechtigungen über alle Ebenen der PZŁ-Struktur hinweg.

"
Wir haben zahlreiche Rückmeldungen und Fragen von Verbandsmitgliedern erhalten. Das ist ein deutliches Signal, dass die Mitglieder moderne Lösungen erwarten, die die Arbeit der Vereine erleichtern und den PZŁ als Organisation stärken.
EG
Eugeniusz Grzeszczak
Landesjägermeister · Polnischer Jagdverband (PZŁ)
Quelle ↗
02 · Herausforderungen

Womit wir uns beschäftigt haben#

Das System der Jagdvereine deckt den gesamten Arbeitsalltag eines Vereins ab — von der Jagderfassung über Einzel- und Gesellschaftsjagden, Wildschäden und Lager bis hin zur Kommunikation innerhalb der Organisation. Das heißt: Die mobile App musste eine sehr breite Palette an Szenarien in einem einzigen, stimmigen Produkt unterbringen.

Elektronisches Jagdbuch

Digitaler Ersatz für das papierene Jagdbuch, in dem der Jäger eine Jagd meldet. Das Herzstück der Vereinsarbeit — muss schnell, zuverlässig und einfach zu bedienen sein.

Jagden — Einzel und Gesellschaft

Zwei unterschiedliche Abläufe in einer App. Die Einzeljagd ist ein schneller Eintrag. Die Gesellschaftsjagd ist eine Teilnehmerliste, Stände, Verlauf und Schlussabrechnung.

Die Revierkarte als Zentrum der App

Reviergrenzen, jagdliche Einrichtungen, Flurstücke, Forstreviere, Orthofotos. Die Karte ist der Screen, zu dem Nutzer dutzende Male am Tag zurückkehren — sie muss sofort da und gut lesbar sein.

Wildschäden

Vorläufige und endgültige Schätzung, mit dem Schadensgebiet auf der Karte markiert. Ein heikler Prozess aus Sicht von Landwirten und Versicherern — er darf keine Fehler enthalten.

Ein Nutzer, viele Rollen, viele Vereine

Dieselbe Person ist mal Jäger im einen Verein und Jagdleiter im anderen. Die App muss ihr nur das zeigen, was zum aktuellen Kontext gehört — ohne erneute Anmeldung.

Konsistenz mit Web und Backend

Ein Jagdleiter öffnet denselben Eintrag morgens am Laptop und abends am Telefon. Mobile, Web und Backend müssen exakt dieselben Daten auf dieselbe Weise sehen.

Alarmmeldung — Schuss

Notfallmeldung eines Vorfalls samt Standort, sofort verfügbar. Eine Funktion, bei der jede Sekunde im Entwurf zählt.

Vereinslager und Abrechnungen

Bestände, Reservierungen, jagdliche Einrichtungen, Einzel- und Sammelabrechnungen, Ausführung des Jahresplans — in einem Modul, mit klarer Aufteilung der Berechtigungen.

Kommunikation des Hauptvorstands

Das Rundschreiben des Hauptvorstands, das alle Jäger erreicht, Nutzernachrichten, Bekanntmachungen — der tägliche Kommunikationskanal innerhalb des Verbands.

Standort im Hintergrund — nur bei Bedarf

Die Position des Jägers zählt während einer Gesellschaftsjagd. Außerhalb davon — nicht. Wir schalten sie nur dann ein, wenn sie tatsächlich einen Mehrwert bringt.

Wetter und Bedingungen im Revier

Aktuelles Wetter, Windrichtung und -geschwindigkeit, Sonnenauf- und -untergang — Informationen, die für den Jäger darüber entscheiden, ob er überhaupt ins Revier aufbricht.

Gäste und Einladungen

Ein Jäger aus einem anderen Verein kann zu einer Jagd eingeladen werden. Das erfordert einen vollständigen Genehmigungs-Workflow — Ausstellung, Annahme, Gültigkeit für einen bestimmten Tag und ein bestimmtes Revier.

"
Das neue System wird die Arbeit in den Jagdvereinen deutlich erleichtern. Es ist einfacher zu bedienen, intuitiver, und viele Tätigkeiten — etwa das Berichten oder die Dokumentenverwaltung — werden erheblich schneller und weniger fehleranfällig.
EG
Eugeniusz Grzeszczak
Landesjägermeister · Polnischer Jagdverband (PZŁ)
Quelle ↗

Ein ähnlich komplexes Projekt? Sprechen wir darüber.

Module, Rollen, Integrationen in bestehende Systeme und Skalierung — wir wissen, wie daraus ein stimmiges Produkt wird.

03 · Vorgehen

Wie wir ins Projekt eingestiegen sind#

Das Projekt wird von SmallGIS als Generalauftragnehmer des Systems PZŁ 2.0 geführt. SmallGIS hat die Technologien für die gesamte Lösung ausgewählt — darunter React Native für die mobile App — und anschließend einen Partner gesucht, der diesen Teil verantwortet. So sind sie auf uns gekommen. Unsere Rolle als Mobile Development Leader war es, die volle Verantwortung für die Mobile-Ebene zu übernehmen und das React-Native-Team so zu führen, dass die App in Zeit und Qualität fertig wird.

01

Einstieg ins Projekt und Übernahme der Mobile-Ebene

SmallGIS hatte eine definierte Produktvision, einen Stack und einen Vertrag mit dem PZŁ. Unsere erste Aufgabe war es, den Umfang zu verstehen, Risiken auf der Mobile-Seite zu benennen und die Zusammenarbeit mit dem Web- und Backend-Team von SmallGIS festzulegen.

02

Entwicklung in Etappen mit großen Releases

Wir haben in mehreren Etappen gearbeitet — jede schloss mit dem Release eines konkreten Funktionspakets ab, das SmallGIS und dem PZŁ vorgestellt wurde. Ein Paket, kein Sprint — denn ein Paket zeigt den geschäftlichen Wert, ein Sprint nur den Zeitablauf.

03

Beta mit Jägern und Übergabe an den Kunden

Closed Beta mit einer Gruppe vom PZŁ ausgewählter Vereine, Iterationen auf Basis realer Jagdberichte, finale Übergabe von Code und Dokumentation an SmallGIS nach 6 Monaten.

Ohne Vendor-Lock-in. Der Kunde besitzt sämtliche Rechte am Code.

Für den PZŁ war entscheidend, nach Ende der Zusammenarbeit vollen Einfluss auf die Weiterentwicklung des Systems zu behalten — die Möglichkeit zum Ausbau, zur Integration weiterer Werkzeuge und zu einem etwaigen Wechsel des Auftragnehmers, ohne Datenverlust oder Projektstillstand zu riskieren. Deshalb ist der Stack bewusst standardisiert, der Code wird vollständig übergeben — samt vollständiger Übertragung der wirtschaftlichen Urheberrechte —, und die technische Dokumentation sowie CI/CD werden vom ersten Tag an bereitgestellt.

„Das System gehört vollständig dem Polnischen Jagdverband. Der PZŁ hält sämtliche Urheber- und Verwertungsrechte, was volle Unabhängigkeit bei Entwicklung, Sicherheit und künftigem Ausbau des Werkzeugs gewährleistet."
— Eugeniusz Grzeszczak, Landesjägermeister des PZŁ · Quelle ↗
04 · App-Screens

Zentrale Ansichten#

Neun zentrale Ansichten der App — von der Gesellschaftsjagd und der Teamkommunikation bis zur Schadensschätzung und Gästeverwaltung.

Hinweis: Die obigen Ansichten sind unsere Redesigns der ursprünglichen App-Screens. Design und Weiterentwicklung von SKŁ PZŁ 2.0 liegen inzwischen direkt beim Polnischen Jagdverband — philosopht arbeitet nicht mehr an dessen grafischer Gestaltung.

05 · Ergebnis

Was wir geliefert haben#

Die App wurde in 6 Monaten an SmallGIS übergeben und ist Teil der landesweiten digitalen Infrastruktur des PZŁ — des größten Digitalvorhabens in der Geschichte des Verbands.

2
Plattformen aus einer einzigen Codebase (iOS + Android)
6 mies.
Vom Kick-off bis zur Übergabe
22
Funktionsmodule in der App
21
Rollen und Berechtigungsstufen
4
Umgebungen — von Dev bis Produktion
100%
Abdeckung des Funktionsumfangs aus dem Web-System PZŁ 2.0
Ein ähnliches Projekt in Aussicht?Sehen Sie, wie wir andere komplexe Projekte mit vielen Nutzern und Rollen umgesetzt haben.
Ab hier — Technical Deep Dive
Die Abschnitte 06 und 07 richten sich an Tech Leads, CTOs und Entwickler. Wenn Sie die Ergebnisse bereits gesehen haben — springen Sie gern direkt zum Kontakt ↓.
06 · Architektur und technisches Vorgehen

Entscheidungen, die den Unterschied machten#

Drei technische Entscheidungen, die am stärksten geprägt haben, wie sich die App verhält und wie einfach sie zu warten ist. Der Rest des Stacks ist bewusst standardisiert — ohne exotische Abhängigkeiten, damit SmallGIS und der PZŁ ihn nach der Projektübergabe pflegen können.

Entscheidung 01 · API und Vertrag mit dem Backend

API-Client aus der Spezifikation generiert, nicht von Hand geschrieben

Die App spricht über mehr als zwanzig Funktionsmodule mit dem Backend. Den REST-Client von Hand zu schreiben bedeutet unvermeidliches Auseinanderdriften von Mobile, Web und Backend — jede Vertragsänderung erzeugt eine neue Regression auf drei Plattformen gleichzeitig.

Wir haben auf Codegen aus OpenAPI gesetzt: Typen, Validierungsschemata und Daten-Hooks werden automatisch aus der Backend-Spezifikation generiert, die Regenerierung läuft bei jedem Build. Der Effekt fürs Team: Eine Änderung am API zeigt sich in Mobile sofort als Kompilierfehler, nie als stillschweigend verlorenes Feld.

Es gibt noch einen zweiten, weniger offensichtlichen Effekt — die Verantwortung für die Validierung dorthin zu verschieben, wo sie natürlich hingehört: ins Backend. Das Frontend schreibt keine eigenen Validierungsregeln, die vom Vertrag abweichen könnten — es vertraut der Spezifikation und den automatisch generierten Schemata. Datensicherheit wird an einer Stelle durchgesetzt, konsistent für jeden Client — Mobile, Web und jeden künftigen.

Entscheidung 02 · Berechtigungen und Kontexte

Berechtigungen als Schicht, nicht als if-Abfragen über die Komponenten verstreut

Das System verwaltet viele Rollen in vielen Vereinen gleichzeitig. Ohne eine gemeinsame Berechtigungsschicht würde jeder Screen schnell zu einem Dickicht aus Bedingungen — unleserlich und anfällig für Sicherheitsfehler.

Wir haben ein zentrales Berechtigungsregister auf Basis der Expo-Router-Routen entworfen, dazu einen einzigen Hook, der die Regeln in jeder Komponente durchsetzt. Der aktive Kontext (welcher Verein, welche Rolle) ist die einzige Quelle der Wahrheit — ein Kontowechsel ändert die Sichtbarkeit der Module sofort, ohne erneute Anmeldung, ohne Magie.

Entscheidung 03 · Standort und Datenschutz

Standort im Hintergrund nur dann, wenn er wirklich zählt

Die Position des Jägers ist während einer Gesellschaftsjagd wichtig — man weiß, wer wo auf der Linie steht. Darüber hinaus ist sie überflüssig und wäre aus Sicht von Datenschutz und Akku bedenklich.

Den Hintergrund-Standort starten wir pro aktiver Jagd, nicht global. Der Task beginnt, wenn ein Jäger einer Gesellschaftsjagd beitritt, und endet von selbst, wenn die Jagd schließt. Das Foreground-Tracking ist zusätzlich gedrosselt — so viel Genauigkeit, wie die Karte braucht, ohne das Telefon nach einer Stunde im Wald leerzusaugen.

Tech-Stack#

Die Auswahl an Bibliotheken und Werkzeugen rund um die drei Entscheidungen oben. Standardisiert, gut gepflegt, ohne Risiko, verwaist zu werden.

FRAMEWORK · NAVIGATION

React NativeExpoExpo Router

SPRACHE

TypeScriptJavaScript

KARTEN & STANDORT

react-native-mapsexpo-locationexpo-task-managerproj4

STATE, DATEN & CODEGEN

TanStack QueryKubb · OpenAPIZodAxiosReact ContextMMKV

BENACHRICHTIGUNGEN

expo-notificationsFCMAPNs

RELEASE & DELIVERY

EAS BuildEAS SubmitTestFlightApp Store ConnectApple Developer ProgramGoogle Play Console

AUTH & SICHERHEIT

Auth0 · OAuth2expo-auth-sessionexpo-secure-storeJWT · auto-refreshPIN / biometria

UI & PERFORMANCE

FlashListexpo-imageReanimated@expo/vector-icons

Umgebungen und Wege zum Nutzer#

Vier Umgebungen, jede mit eigener Rolle und eigenem Adressatenkreis. Je näher am Endnutzer, desto schärfer die Eintrittskriterien.

01 · DevDevelopment// Zielgruppephilosopht team02 · Pre-testPre-test// ZielgruppeSmallGIS testers03 · TestFlightTestFlight// Zielgruppehunters · PZŁ clubs04 · ProdProduction// Zielgruppeall PZŁ members
07 · Dev Story

Revierkarte — ein schichtbasiertes System #

Engineering-Problem · Karten

Vier Basis-Ebenen, sechs Overlay-Ebenen, ein stimmiges Erlebnis

Die Karte in der App ist keine einmalige Ansicht — sie ist der zentrale Screen, zu dem der Nutzer aus verschiedenen Modulen zurückkehrt: vom Screen der Gesellschaftsjagd, von Wildschäden, jagdlichen Einrichtungen, der Revierliste. Jedes Mal will er dasselbe Bild der Welt sehen, nur mit einem anderen Akzent — mal andere Overlays, mal eine andere Basis-Ebene.

Der erste Ansatz war naheliegend, aber fehlerhaft: Ein Wechsel der Basis-Ebene hängte die gesamte Karte neu ein. Ein Flackern des Screens, verlorene Kameraposition und verlorener Zoom, ein voller Reload aller Kacheln — auf einem Screen, der während der Jagd genutzt wird, inakzeptabel.

Die Lösung war, die Karte in vier klar getrennte Verantwortungsebenen zu zerlegen:

Controller — hält den Ansichtszustand, entscheidet, welche Basis-Ebene aktiv ist und welche Overlays der Nutzer aktiviert hat. Komposition — setzt alle Basis- und Overlay-Ebenen auf einmal zusammen, aber nur die aktiven rendern Kacheln; der Rest ist bereit, blitzschnell eingeblendet zu werden. Einzelne Ebene — jede Datenquelle (Orthofoto, Topo, Flurstücke, Forstreviere) hat ihre eigene Komponente mit eigener Ladestrategie. Lazy Loading — schwere Overlay-Ebenen werden erst bei der ersten Nutzung eingehängt, ohne den ersten Render der Karte zu blockieren.

Der Effekt ist auf den ersten Blick unsichtbar — was das größte Kompliment für Kartencode ist. Der Nutzer wechselt zwischen Orthofoto und OSM, die Kamera bleibt an Ort und Stelle, die Kacheln gleiten flüssig herein. Aus Sicht eines Jagdleiters, der mitten in der Jagd die Reviergrenzen prüft — die Karte funktioniert einfach, so wie sie soll.

// konzeptionell: eine Komposition, viele Ebenen, eine Karte
<MapComposition camera={camera}>
  // Basis-Ebenen — immer im Baum, eine aktiv
  <BaseLayers active={baseLayer} />

  // Overlays — lazy, erst bei erster Nutzung gemountet
  <Overlays visible={enabledOverlays} lazy />
</MapComposition>
"
Das ist eine Investition nicht nur in Technologie, sondern vor allem in das bessere Funktionieren unserer Jägergemeinschaft.
EG
Eugeniusz Grzeszczak
Landesjägermeister · Polnischer Jagdverband (PZŁ)
Quelle ↗
Inhaltsverzeichnis
  1. 01Projektkontext
  2. 02Herausforderungen
  3. 03Vorgehen
  4. 04Oberfläche
  5. 05Ergebnisse
  6. 06Architektur & Tech
  7. 07Dev Story
  8. Kontakt
Kontakt

Ein kleiner, klarer nächster Schritt.

Buchen Sie ein 15-minütiges Erstgespräch oder schreiben Sie uns kurz. Auf Deutsch oder Englisch – auf Wunsch mit einem deutschsprachigen Kollegen.

Termin buchen
15-minütiges Erstgespräch buchen
Über Google Calendar – öffnet sich in einem neuen Tab.
Schreiben Sie uns
Adresse
philosopht Dawid Michota
ul. Świętokrzyska 41A
26-001 Wola Kopcowa, Polen
USt-IdNr. PL6573002241
Treffen wir uns
Wir arbeiten remote, treffen uns aber gerne persönlich:
WarschauKrakauKielceLodzKattowitzRzeszówTarnówRadom
In späteren Gesprächsphasen und in der laufenden Zusammenarbeit kommen wir gerne zu Ihnen – in der DACH-Region, im übrigen Europa und in Nordamerika.
Oder senden Sie eine Nachricht
Unverbindlich · Antwort innerhalb von 24 Stunden
Den technischen Versand übernimmt Web3Forms. Datenschutzerklärung