Hirnworx
Interaktive, zoombare Weltkarte
Travel / Consumer App · 2025

Travl Tracker — iOS App

Native SwiftUI-App, die aus der Fotobibliothek automatisch besuchte Länder & Städte erkennt — komplett offline, ohne Cloud, mit Karte, Statistiken und Reise-Pass.

Die Idee: Deine Reisen liegen längst auf dem iPhone

Fast jeder trägt eine lückenlose Reisechronik mit sich herum — in der Fotobibliothek. Jedes Bild ist mit Aufnahmedatum und GPS-Koordinate versehen. Genau diese Daten sind der Ausgangspunkt von Travl Tracker: Statt Trips mühsam von Hand einzupflegen, liest die App aus, wo und wann Fotos entstanden sind, und rekonstruiert daraus automatisch die Länder und Städte einer Reisebiografie.

Der Anspruch war, diesen »Aha-Moment« ohne jeden Datenschutz-Kompromiss zu liefern. Klassische Reise-Tracker verlangen ein Konto, laden Standortverläufe in die Cloud und verlangen manuelle Pflege. Travl Tracker dreht das um: keine Anmeldung, keine Server, keine Übertragung — die gesamte Auswertung passiert direkt auf dem Gerät.

Atlas: Aus den EXIF-Daten der Fotobibliothek rekonstruierte Länderkarte
Atlas: Aus den EXIF-Daten der Fotobibliothek rekonstruierte Länderkarte

Der Foto-Scan — das Herzstück der App

Beim ersten Start scannt Travl Tracker die komplette Fotobibliothek über das PhotoKit-Framework. Für jedes Asset mit Standort werden Koordinate und Zeitstempel extrahiert und offline geocodiert. Das kann bei Zehntausenden Bildern dauern — deshalb läuft der Scan im Hintergrund, mit Fortschrittsanzeige und robuster Wiederaufnahme, falls er unterbrochen wird.

Danach greift der eigentliche Trick: Über einen PHPhotoLibraryChangeObserver bekommt die App gemeldet, wenn Fotos hinzukommen, sich ändern oder gelöscht werden. So wird nie wieder die ganze Bibliothek durchsucht — es werden nur die Deltas verarbeitet. Der Zustand des Scans (bereits verarbeitete Assets, letzter Stand) wird in einem eigenen ScanState in SwiftData persistiert.

  • Einmaliger Vollscan der Bibliothek, danach rein inkrementell
  • Delta-Sync über PHPhotoLibraryChangeObserver (neu / geändert / gelöscht)
  • Hintergrundverarbeitung mit Fortschritt und Wiederaufnahme
  • Persistierter ScanState — kein doppelter Aufwand bei App-Start
Der einmalige Bibliotheks-Scan mit Fortschritt — danach nur noch neue Fotos
Der einmalige Bibliotheks-Scan mit Fortschritt — danach nur noch neue Fotos

Offline-Geocoding ohne fremde Server

Damit kein Foto-Standort das Gerät verlässt, wird die Umkehr-Geokodierung komplett offline gelöst. Für Länder nutzt die App den Natural-Earth-Datensatz countries-110m als GeoJSON und bestimmt per Point-in-Polygon-Test, in welchem Land eine Koordinate liegt. Für Städte kommt der GeoNames-Datensatz cities15000 zum Einsatz, gegen den die nächstgelegene Stadt ermittelt wird.

Das Ergebnis ist eine Geokodierung, die ohne Netz funktioniert, keine API-Kosten erzeugt und — entscheidend — nie eine Koordinate an einen Dritten sendet. Genau diese Architektur macht das zentrale Datenschutz-Versprechen der App technisch einlösbar.

  • Länder: Natural Earth countries-110m, Point-in-Polygon
  • Städte: GeoNames cities15000, Nächste-Nachbar-Suche
  • Keine Netzwerkanfrage, keine API-Keys, keine Kosten pro Lookup

Von Fotos zu Reisen: Trip-Segmentierung & Korrekturen

Rohe Fotostandorte sind noch keine Reise. Travl Tracker bündelt sie zu sinnvollen Trips: Liegen zwischen zwei Aufnahmen an einem Ort mehr als 14 Tage, wird ein neuer Trip begonnen. So entsteht aus der Bilderflut eine nachvollziehbare Timeline aus Reisen statt einer diffusen Punktwolke.

Das Heimatland wird einmalig im Onboarding abgefragt, bleibt aber jederzeit editierbar — damit der Alltag zuhause nicht als Reise gezählt wird. Für Grenzfälle und fehlende Geodaten gibt es eine manuelle Ebene: Länder und Städte lassen sich von Hand ergänzen oder korrigieren.

  • Trip-Grenze bei einer Lücke von mehr als 14 Tagen
  • Heimatland einmal im Onboarding, jederzeit anpassbar
  • Manuelles Hinzufügen & Korrigieren von Ländern und Städten
Timeline: aus Foto-Zeitstempeln segmentierte Reisen
Timeline: aus Foto-Zeitstempeln segmentierte Reisen

Kernfeatures: Atlas, Weltkarte & Reise-Pass

Über der Datenbasis liegt eine Oberfläche, die das Gesammelte erlebbar macht. Der Atlas zeigt alle besuchten Länder auf einen Blick, die interaktive Weltkarte lässt sich zoomen und erkunden, und ein digitaler Reise-Pass sammelt Stempel für besuchte Länder — ein spielerischer Anreiz, die eigene Landkarte weiter zu füllen.

Ergänzt wird das durch Länder-Detailseiten mit besuchten Städten und Zeiträumen sowie Statistiken über Länder, Kontinente und Städte. Aus reinen Metadaten wird so eine ansprechende, persönliche Reisebilanz.

Interaktive, zoombare Weltkarte der besuchten Orte
Interaktive, zoombare Weltkarte der besuchten Orte

Freemium & Ergebnis: On-Device-Privatsphäre als Produkt

Der komplette Datenbestand — Country, Visit, City und ScanState — lebt lokal in SwiftData. Kein Cloud-Sync, kein Konto, kein Tracking: Das ist zugleich Datenschutz-Prinzip und Verkaufsargument. Die App startet als native SwiftUI-Anwendung für iOS 17+ im App Store.

Monetarisiert wird über ein faires Freemium-Modell mit einmaligem Kauf statt Abo. Kostenlos sind Foto-Scan, Atlas, Zähler, die interaktive Weltkarte und das manuelle Hinzufügen. Der einmalige »Travl Pro«-Unlock (StoreKit 2, 7,99 €) schaltet Statistiken, Timeline, Achievements samt Reise-Pass und die Länder-Details frei.

  • 100 % offline in SwiftData — keine Daten verlassen das Gerät
  • Free: Scan, Atlas, Counts, Weltkarte, manuelles Hinzufügen
  • »Travl Pro« (einmalig 7,99 €): Stats, Timeline, Passport, Länder-Detail
  • Native SwiftUI-App für iOS 17+ im App Store
Digitaler Reise-Pass mit Stempeln — Teil des »Travl Pro«-Upgrades
Digitaler Reise-Pass mit Stempeln — Teil des »Travl Pro«-Upgrades
Einblicke
Timeline deiner Reisen aus Foto-Daten
Timeline deiner Reisen aus Foto-Daten
Digitaler Reise-Pass mit Stempeln
Digitaler Reise-Pass mit Stempeln
Länder-Detail mit Städten & Besuchen
Länder-Detail mit Städten & Besuchen