4 Punkte von zxavi 2025-04-10 | 4 Kommentare | Auf WhatsApp teilen

Hallo, ich bin Solo-Entwickler.

In letzter Zeit ist Laufen mein Hobby, aber in den bekannten bestehenden Apps gab es die Funktion, die ich brauchte, nicht – also habe ich sie selbst gebaut.

Entwickelt wurde die App mit Flutter. Die erste Version zur Validierung des Konzepts war in etwa zwei Wochen fertig, aber um sie zu verfeinern und auf ein veröffentlichungsreifes Niveau zu bringen, hat es etwa 3 bis 4 Monate gedauert.

Sie ist derzeit im Apple- und Google-Store veröffentlicht und kann heruntergeladen werden. Wenn Sie die Website besuchen und auf die Links zu den jeweiligen Stores klicken, können Sie sie bequem beziehen.

Vorstellung des Dienstes

Pace Teller ist eine App, die während des Laufens in Echtzeit die erwartete Zielzeit für 10 km, den Halbmarathon und den Marathon anzeigt.

Warum ich sie gebaut habe

  • Während meiner „täglichen 5–6-km-Lauf-Challenge“ fragte ich mich plötzlich, welche 10-km-Zeit ich erreichen würde, wenn ich das aktuelle Tempo bis zum Schluss halte.
  • In Lauf-Apps kann man zwar die Durchschnittsgeschwindigkeit prüfen, aber die tatsächliche Zielzeit je nach aktueller Verfassung im Kopf abzuschätzen, ist nicht einfach.
  • Wer häufig läuft, kann das vielleicht grob einschätzen, aber für Menschen, denen selbst eine ungefähre Berechnung der erwarteten Zielzeit schwerfällt, habe ich diese App entwickelt.
  • Wenn man beim tatsächlichen Laufen die erwartete Zielzeit hört, hilft das enorm bei der Motivation für ein Ziel und bei der Anpassung des Zustands, etwa durch Temporeduzierung.
  • Eigentlich habe ich sie nur für mich selbst gebaut, aber nachdem ich sie ausprobiert habe und sie so gut fand, habe ich mich getraut, hier bei Show GN darüber zu schreiben.

Methode zur Berechnung der erwarteten Zielzeit

  • Die bisher gelaufene Strecke wird auf Basis des Durchschnittstempos berechnet, die verbleibende Strecke auf Basis des Tempos im jüngsten 20-%-Abschnitt. So wird in Echtzeit eine erwartete Zielzeit bereitgestellt.
  • Außerdem habe ich eine Sprachführung (TTS) integriert, damit man sich die Zielzeit ansagen lassen kann.
  • Eine Einschränkung dieser Berechnungsmethode ist allerdings, dass die erwartete Zielzeit übermäßig gut ausfallen kann, wenn das Tempo am Ende besonders hoch ist.
  • Derzeit wird nicht berücksichtigt, ob sich die Verfassung verbessert oder verschlechtert. Künftig plane ich jedoch eine Korrektur über Fragen an die Nutzer nach dem Training zu ihrem körperlichen Zustand.

Merkmale des Dienstes

  • Die meisten Kennzahlen, die grundlegende Lauf-Apps bieten, können aufgezeichnet werden.
  • Es gibt Filter nach Trainingseinheit sowie Kalender- und Statistikansichten.
  • Der Import und Export von GPX-Dateien wird unterstützt. (Ich habe es so gestaltet, dass sich Aufzeichnungen dieser App bequem in andere Dienste übernehmen lassen.)
  • Es gibt Funktionen zum Import von Strava-Daten sowie zum (automatischen) Upload zu Strava.
  • Bei Diensten wie RunKeeper, die alle GPX-Dateien exportieren, werden die Daten auf einmal eingespielt, wenn man die Dateien herunterlädt, komprimiert und importiert.
  • Nutzer von Galaxy-Geräten können Gesundheitsdaten importieren und die Herzfrequenz mit den Trainingsdaten verknüpfen.
  • Die App verwendet eine interne SQLite-Datenbank und speichert keine Daten auf externen Servern, wodurch sie schnell arbeitet.
  • Wenn man einen persönlichen Open Weather Map API-Schlüssel eingibt, werden auch Wetterinformationen automatisch aufgezeichnet (die Genauigkeit kann allerdings etwas geringer sein).
  • Englisch und Koreanisch werden unterstützt.

Geplante Funktionen

  • Ich möchte gern eine App entwickeln, die auf einer Watch läuft.
  • Besonders die Prognose für die Marathon-Endzeit interessiert laut Rückmeldungen viele Garmin-Nutzer, daher müsste ich in dem Fall wohl eine Garmin-App entwickeln.
  • Im Moment starte ich die Watch-App und diese App gleichzeitig und laufe, während ich beide parallel bediene.
  • Unzulänglichkeiten bei Kadenz- und Pace-Diagrammen möchte ich verbessern.
  • Ob ich eine Funktion zur Speicherung der Daten auf einem Server einbaue, überlege ich noch, aber die Wahrscheinlichkeit ist hoch. Aktuell können beim Löschen der App alle Daten verloren gehen, wenn sie nicht als GPX-Datei exportiert wurden. Wer jedoch den automatischen Upload zu Strava aktiviert, kann beruhigt sein, weil die Daten dann bei Strava gespeichert werden.
  • Ich denke auch über soziale Funktionen wie Community oder das Teilen von Erfolgen nach. Da Strava in diesem Bereich aber bereits sehr gut ist, bin ich unsicher, ob ich das wirklich hinzufügen sollte.
  • Auch die Idee, Laufstrecken als „Route“ aufzubereiten und einen Dienst anzubieten wie „Welche Strecke ist in dieser Gegend gut?“, beschäftigt mich. Allerdings gibt es das bereits in anderen Apps, daher bin ich auch hier noch unentschlossen.

Entwicklungsrückblick

  • Was ich bei der Entwicklung gespürt habe, war: „Wow, so eine App kann ein Solo-Entwickler so schnell bauen?“ Dabei habe auch ich das Staunen über „Entwicklung mit AI-Unterstützung“ erlebt, das viele wahrscheinlich schon kennen.
  • Wenn man iOS- und Android-Apps beide nativ baut, hatte ich oft einen Durchhänger, sobald eine fertig war und ich die andere noch bauen musste.
  • Deshalb habe ich mit Flutter angefangen, und zumindest was diesen „mentalen Stress“ betrifft, bin ich hochzufrieden.
  • Allerdings werden Packages und Libraries häufig aktualisiert, und ich hatte viel mit Abhängigkeitsproblemen zu kämpfen – das bereitet mir auch für die Zukunft Sorgen.
  • Da Daten wie die von GPS ausgegebene Geschwindigkeit nicht perfekt sind, hat es viel Zeit gekostet, die Qualität zu erhöhen, indem ich die Genauigkeit der Berechnungsformel auf verschiedene Weise verbessert habe.
  • Natürlich gab es mit viel Hilfe von AI auch oft Situationen, in denen ich mich im Kreis gedreht habe, aber ganz darauf verzichten konnte ich nicht.
  • Und wie immer ist es mühsam, in beiden Stores wiederkehrende Abonnements anzubinden.

4 Kommentare

 
kipsong133 2025-04-10

Abhängigkeitsprobleme und Ähnliches sind tatsächlich auch bei nativer Entwicklung etwas, worüber man sich in gleicher Weise Gedanken macht … haha

Könntest du vielleicht teilen, um welches Paket es sich handelt?

 
zxavi 2025-04-10

Ja, das stimmt schon ^^ Welches Paket meinen Sie? Meinen Sie, bei welchem Paket es Abhängigkeitsprobleme gab? Das kommt so häufig vor, und weil ich das Problem auch erlebt habe, als mein Verständnis von Flutter noch gering war, kann ich mich ehrlich gesagt nicht mehr gut daran erinnern ^^

 
seonymoon 2025-04-10

Strava stellt den Dienst in Korea bald ein ..!

 
zxavi 2025-04-10

Ja, die App wurde bereits aus dem Store entfernt. Das bedeutet aber nicht, dass der Service nicht mehr nutzbar ist. Bestehende Nutzer können ihn weiterhin verwenden, und er ist auch im Web verfügbar.