Daniel Wulf

Ich baue Flutter-Apps allein von der Idee bis in den Store — mitsamt Backend, Store-Freigabe und Datenschutz.

Nomad TravelGuide
Live im App Store, Android im geschlossenen Test
Vumble
Version 1.0 in Entwicklung
Verfügbar
15–25 Stunden pro Woche, remote, deutsche Zeitzone
Daniel Wulf, im Halbporträt vor einer unscharfen Häuserzeile, in gestreiftem Hemd

01Was ich anbiete

Wofür Sie mich buchen

Flutter-App von null

Konzept, Architektur, Umsetzung und Einreichung — eine Codebasis für iOS und Android. Sie brauchen kein zweites Team für die zweite Plattform.

Firebase-Backend

Datenmodell in Firestore, Cloud Functions für alles, was der Client nicht selbst entscheiden darf, Authentication und Push über Cloud Messaging. Regeln, die serverseitig greifen und nicht nur in der Oberfläche.

Store-Release und Compliance

Einreichung, Metadaten, Auflösen von Ablehnungen. Die Datenschutzerklärung prüfe ich gegen den tatsächlichen Code, nicht gegen eine Vorlage.

Übernahme bestehender Apps

Einarbeitung in fremden Code, Fehlerbehebung, Weiterentwicklung — auch dann, wenn die ursprünglichen Entwickler nicht mehr verfügbar sind.

15 bis 25 Stunden pro Woche, ausbaubar. Remote aus der deutschen Zeitzone, Zusammenarbeit über Git. Als Einzelunternehmer schließe ich Verträge direkt ab — Impressum und Datenschutzerklärung sind auf dieser Seite verlinkt.

02Projekte

Zwei Apps, zwei verschiedene Probleme

Beide Apps stammen vollständig von mir: Idee, Architektur, Code, Store-Auftritt, Rechtstexte. Technisch haben sie kaum etwas gemeinsam — und genau das ist der Punkt.

Nomad TravelGuide

Cloud, Backend und nutzergenerierte Inhalte

Firestore-Datenmodell, Cloud Functions, Moderation, serverseitiger Suchindex, Push an tausende Geräte, Medien-Upload.

Vumble

Sensorik, Hintergrundverarbeitung und Akkuverhalten

Standort- und Bewegungserkennung über Stunden, nativer Code auf iOS, Datenhaltung ausschließlich auf dem Gerät, Akkubudget als harte Grenze.

Das eine Problem löst man am Server, das andere auf dem Gerät. Beide habe ich allein gelöst — von der ersten Zeile bis zur Store-Freigabe.

App-Symbol von Nomad TravelGuide

Live im App Store · Android im geschlossenen Test

Nomad TravelGuide

Reise-App mit KI-Planer, Karte, Chat und Community. iOS und Android aus einer Flutter-Codebasis, Backend auf Firebase.

Schritt 2 von 5 im Reiseplaner: Suchfeld „Land suchen“ über einer Kachelauswahl von Ländern wie Albanien, Argentinien, Australien und Brasilien.
Schritt 2 von 5: Länderauswahl mit Suchfeld — die Datenbasis umfasst über 190 Länder.
Schritt 3 von 5: Vorschlagskarte „Akropolis & Parthenon“ mit Beschreibung, Dauer von 4 Stunden, Bewertung 4,9 und Preisangabe.
Vorgeschlagene Aktivität mit Dauer, Bewertung und Preisrahmen, bevor sie in den Plan wandert.
Social Hub mit Kacheln für Profil, Connect, Chat, Quests und Challenges.
Einstieg in den sozialen Teil: Profil, Kontakte, Chat, Quests und Challenges.

Reiseplanung verteilt sich normalerweise auf Suchmaschine, Karten, Buchungsseiten und ein Notizdokument. Nomad legt Planung, Inhalte und die Leute, die gerade dieselbe Strecke fahren, in eine App — iOS und Android aus einer Flutter-Codebasis.

Der Reiseplaner führt in fünf Schritten von Zeitraum, Ländern und Verkehrsmitteln bis zum fertigen Plan. Die Vorschläge kommen über die Gemini API, die Tagesstruktur rechnet mit echten Reisezeiten zwischen den Stationen statt mit einer Wunschliste.

Aus der Auswahl entsteht ein Tagesplan mit Aktivitäten samt Dauer, Bewertung und Preisrahmen. Was hineinkommt, lässt sich vor dem Erzeugen des Plans einzeln an- und abwählen.

Der soziale Teil ist der aufwendigere: Spots mit nutzergenerierten Fotos und Texten, eine Karte dazu, 1:1- und Gruppenchat, Quests, Challenges und ein Freundebuch. Sobald Nutzer Inhalte hochladen, wird aus einer App ein Betrieb — mit Meldungen, Moderation und Haftung.

  • Melde- und Moderations-Workflow, serverseitig durchgesetzt statt nur im Client versteckt
  • Zentraler Medien-Upload mit Videokomprimierung
  • Offline-Persistence und Bild-Caching für schlechte Verbindungen unterwegs
  • Aggregierte Nutzungsstatistik ohne Personenbezug
  • DSGVO vollständig selbst umgesetzt und gegen den eigenen Code geprüft

Eine Entscheidung

Firestore kann keine Volltextsuche. Die übliche Abkürzung ist eine Präfixsuche über Bereichsabfragen — sie findet nur, was vorne übereinstimmt, und scheitert an Groß- und Kleinschreibung, Umlauten und Wörtern in der Mitte eines Namens.

Stattdessen berechnet eine Cloud Function den Suchindex beim Schreiben: Der Text wird normalisiert, zerlegt und als Feld am Dokument abgelegt. Der Client fragt nur noch dieses Feld ab.

Der Preis sind zusätzliche Schreibvorgänge. Dafür stimmen die Treffer unabhängig von der Schreibweise, ohne einen weiteren Dienst einzubinden — den ich bezahlen, betreiben und in der Datenschutzerklärung als Datenempfänger erklären müsste.

App-Symbol von Vumble

Version 1.0 in Entwicklung

Vumble

App für aktive Mobilität: erkennt zurückgelegte Wege automatisch und rechnet sie in gesparte CO₂-Menge um — vollständig offline auf dem Gerät.

Tagesansicht mit 1,3 kg CO₂ gegenüber dem Auto, 193 aktiven Kalorien und 7,7 aktiven Kilometern, darunter die Aufteilung nach zu Fuß, Fahrrad und Fahrzeug.
Tageswerte und die automatisch erkannte Aufteilung nach Fortbewegungsart.
Maskottchen-Ansicht: Zustand „Voller Schwung“, Stufe 4 von 5, darunter die Liste aller Stufen.
Fünf Zustände des Maskottchens; die Stufe ergibt sich aus der Bewegung des Tages.
Profilansicht mit Spracheinstellung Deutsch/Englisch und einer Liste erteilter Berechtigungen für Aktivitätserkennung und Standort.
Erteilte Berechtigungen im Profil — Aktivitätserkennung und Standort, mehr braucht die App nicht.

Wer im Alltag das Auto stehen lässt, sieht davon nichts. Vumble erfasst die zurückgelegten Wege, erkennt die Fortbewegungsart automatisch und rechnet sie in zwei Zahlen um: eingesparte CO₂-Menge gegenüber derselben Strecke mit dem Auto und verbrauchte Kalorien. Die CO₂-Faktoren stammen aus den offiziellen Werten des Umweltbundesamtes.

Damit die Zahlen im Alltag ankommen, übersetzt die App sie in Vergleiche — so viel CO₂, wie eine bestimmte Zahl Bäume an einem Tag bindet — und packt sie in Teilen-Grafiken für Social Media. Ein Maskottchen mit fünf Zuständen, ein Tagesstreak sowie Tages- und Wochenberichte halten die Sache in Bewegung.

Eine Entscheidung

Auf iOS lag ein fertiges Flutter-Paket für die Ortung nahe. Es kann die Genauigkeit aber nicht umschalten, ohne das Tracking anzuhalten. Genau das braucht eine App, die den ganzen Tag mitläuft: grob, solange sich nichts tut, genau, sobald jemand losgeht.

Also habe ich den CLLocationManager nativ selbst angebunden und mit Significant Location Change kombiniert. Im Feldtest liegt der Akkuverbrauch bei unter einem Prozent über 48 Minuten Tracking.

Der Preis ist plattformspezifischer Code, der gepflegt werden muss. Ohne ihn wäre die App entweder ungenau oder nach einem halben Tag der größte Verbraucher im Akkumenü — und damit deinstalliert.

Die App läuft vollständig offline und hat keine Internet-Berechtigung. Alle Daten bleiben auf dem Gerät, es gibt kein Konto und keinen Server. Das ist keine Einstellung, die man umlegen kann, sondern die Architektur — und macht die Datenschutzerklärung entsprechend kurz. Zweisprachig ist die App von Anfang an.

03Skills

Womit ich arbeite

Ohne Prozentbalken. Stattdessen steht dabei, wo ich das eingesetzt habe.

Mobile
Flutter · Dart · iOS und Android · App Store Connect · Google Play Console
Zwei Apps aus je einer Codebasis für beide Plattformen. Die Einreichung von Nomad im App Store habe ich selbst bis zur Freigabe durchgezogen.
Backend und Cloud
Firebase: Firestore, Cloud Functions, Authentication, Storage, Cloud Messaging · Google Cloud Platform
Das komplette Backend von Nomad: Datenmodell, serverseitige Regeln, Moderations-Workflow, Suchindex, Push und Medien-Upload.
Sprachen
Dart · C · C# · C++ · Python
Dart in beiden Apps, C in der Firmware des LED-Matrix-Boards, C# in dessen Bedienoberfläche am Rechner.
Werkzeuge
Git und GitHub · VS Code · Xcode · Android Studio
Tägliche Arbeitsumgebung; die Release-Builds für beide Stores laufen über Xcode und Android Studio.
Elektrotechnik
STM32-Mikrocontroller · SPI · Schaltungsaufbau · SPS-Programmierung mit Siemens TIA-Portal
STM32F439 mit SPI-Ansteuerung im LED-Matrix-Board der Technikerarbeit; SPS und Schaltungen vier Jahre lang im laufenden Produktionsbetrieb.
Weiteres
DSGVO-Umsetzung in Produkten · technische Dokumentation · Arbeiten mit KI-Werkzeugen
Die Datenschutzerklärung von Nomad habe ich selbst geschrieben und Punkt für Punkt gegen den eigenen Code geprüft.

04Hintergrund

Vom Elektroniker zur Software

Ausbildung und danach vier Jahre als Elektroniker für Betriebstechnik bei der Firma Rieber: Störungen an elektrischen Betriebsmitteln im laufenden Produktionsbetrieb beheben, SPS-Automatisierung, elektronische Baugruppen anfertigen.

Von September 2024 bis Juli 2026 staatlich geprüfter Techniker Elektrotechnik mit Schwerpunkt Datentechnik an der Ferdinand-von-Steinbeis-Schule in Reutlingen. Die Technikerarbeit war ein LED-Matrix-Board mit STM32F439 und dem LED-Treiber TLC6C5748, angebunden über USB-C, angesteuert über SPI, Firmware in C, Bedienoberfläche in C#, in Zusammenarbeit mit dem Institut Dr. Foerster. Parallel dazu sind die beiden Apps entstanden.

Aus der Produktion bleibt eine Gewohnheit: Ein Fehler ist behoben, wenn die Anlage wieder läuft — nicht, wenn die Ursache gefunden ist.

Standort
Eningen unter Achalm, Baden-Württemberg
Sprachen
Deutsch (Muttersprache), Englisch (fließend)
Rechtsform
Einzelunternehmen

05Kontakt

Kontakt

Beschreiben Sie kurz, worum es geht — Projekt, Auftragsspitze oder eine Frage zur Zusammenarbeit.

daniel_wulf@outlook.de

Kein Formular, kein Newsletter. Eine E-Mail genügt.