Zum Inhalt springen
Entwicklungstagebuch

Die Liste hinter jeder App

14 Min. Lesezeitvon Manuel

Runara 2.0 und 2.1 sind da, und hinter jeder Funktion steht eine Liste, die niemand sieht: Bildschirmgrößen, Textgrößen, Berechtigungen, Widgets, Siri, Gesten, Sprachen, Foldables, alte Hardware. Wie ich jeden Punkt für Runara entschieden habe, samt Checkliste für deine eigene App.

Verlauf und die neu gestaltete Trainingsdetailansicht nebeneinander auf einem aufgeklappten iPhone Duo

Seit 1.7 habe ich hier nichts mehr geschrieben, und inzwischen ist Runara bei 2.0 und 2.1 angekommen. Mit 2.0 gestaltest du Watch-Screens im kostenlosen Online-Designer und holst sie per QR-Code oder Share-Code aufs Handgelenk, dazu kamen klarere Screens auf jeder Uhrengröße, längere Akkulaufzeit und eine lange Liste an Fehlerbehebungen. Version 2.1 hat den Verlauf-Tab um das herum neu gebaut, was jedes Training wirklich für dich getan hat: zuerst die Bereitschaft, die Trainingslast auf einen Blick, Wochen mit einem Balken pro Tag, und eine Trainingsseite mit Routen in Zonenfarben, Splits und dem Trainingseffekt der Einheit.

Beide Versionen haben ihre Changelogs. In diesem Beitrag geht es um etwas anderes, um den Teil der App-Entwicklung, der in keinem Changelog steht. Jede dieser Funktionen musste zuerst gegen eine lange Liste anderer Fragen entschieden werden: welche Bildschirmgrößen, welche Textgrößen, welche Geräte, welche Systemoberflächen. Diese Liste wächst jedes Jahr, und fast nichts davon sieht man, wenn eine App funktioniert.

Hier ist also diese Liste, aus der Sicht einer Lauf-App, die eine einzelne Person baut. Zu jedem Punkt: was Runara macht, und warum. Am Ende steht eine Checkliste, die du für deine eigene App durchgehen kannst.

Die versteckte Größe einer modernen App

Wer sich eine App vorstellt, denkt an den Hauptbildschirm. Bei mir ist das eine Handvoll Zahlen auf einer Uhr. Aber eine iPhone-App lebt 2026 auch auf dem Sperrbildschirm, in der Dynamic Island, auf dem Home-Bildschirm, in Siri, in Kurzbefehlen, hinter einer Hardware-Taste und im Teilen-Menü. Sie muss bei einem Dutzend Textgrößen funktionieren, in zwei Erscheinungsbildern, in mehreren Sprachen, für Menschen, die den Bildschirm nicht sehen können, und auf Hardware vom diesjährigen Flaggschiff bis zum fünf Jahre alten Modell mit müdem Akku.

Nichts davon ist optional in dem Sinn, dass die Plattform es ignoriert. Jeder Punkt ist entweder eine Entscheidung, die du triffst, oder eine, die für dich getroffen wird, meistens schlecht. Der einzige echte Fehler ist, nicht zu entscheiden.

Der Bildschirm selbst

Bildschirmgrößen. Das war für Runara nie eine Wahl. Die Apple Watch gibt es in Größen von 40 mm bis zur 49-mm-Ultra, und ein 42-mm-Display hat spürbar weniger Platz als ein 46-mm-Display. Ein Layout, das auf der großen Uhr perfekt aussieht, schneidet auf der kleinen ab. Deshalb werden die Watch-Screens eingepasst statt gezeichnet: Wenn einer Zelle der Platz ausgeht, gibt zuerst der Innenabstand nach, dann tauschen die Zeilen untereinander Höhe, und nur die Ziffer wird kleiner. Beschriftungen behalten ihre Größe. Meine Regel: Ein Wert darf schrumpfen, aber nie abgeschnitten werden, und ich prüfe jeden Screen auf der kleinsten Uhr und mit Extremwerten wie einer 10:23:45-Uhrzeit. Das iPhone fragt sogar die gekoppelte Uhr nach ihrer echten Bildschirmgröße, damit der Screen-Editor genau die Uhr zeigt, die du trägst.

Drehen. Die iPhone-App läuft nur im Hochformat. Alles darin, der Screen-Editor, der Verlauf, die Trainingsseite, ist als eine hohe Spalte gestaltet, und eine Querformat-Version wäre Layout-Arbeit für eine zweite App, für ein Telefon, das meistens in der Tasche oder am Oberarm steckt. Das ist die Art Nein, die man aufschreiben muss, denn sobald man iPad-Unterstützung erklärt, verlangt Apple jede Ausrichtung. Und ein Gerät fragt gar nicht erst: Auf dem inneren Display des iPhone Duo ignoriert das System die Hochformat-Sperre und zeigt die App trotzdem breit oder quer. Zurückzwingen lässt sie sich nur mit schwarzen Rändern um die ganze App, also passt sich Runara dort an (mehr zum Duo weiter unten).

Textgröße. Auf dem iPhone folgt der Text deiner Einstellung für dynamische Schrift. Auf der Uhr tun das die großen Live-Ziffern bewusst nicht. Sie sind ein Instrument, und ihre Größe ist bereits die größte, die in die Zelle passt; eine größere Textstufe könnte nur noch ins Abschneiden führen. Das ist ein Kompromiss, den ich bewusst eingegangen bin, nicht einer, den ich vergessen habe.

Hell und dunkel. Runara ist dunkel. Nicht „standardmäßig dunkel“, sondern dunkel. Die ganze Bildsprache, Volt auf Fast-Schwarz, Haarlinien, leuchtende Zahlen, kommt von der Uhr, wo schwarze Pixel keinen Akku kosten und im Rahmen verschwinden. Eine helle iPhone-App wäre ein zweites Designsystem zum Pflegen gewesen, für einen Look, der nicht zum Produkt passt. Die eine Ausnahme ist auf der Uhr: Einer der fünf Screen-Stile, Field Utility, ist ein helles Zifferblatt für grelle Sonne. (Diese Website folgt übrigens deiner Systemeinstellung. Anderes Medium, andere Antwort.)

Welche Geräte wirklich

iPhone, iPad, Mac, Vision Pro. Apples Plattformen verführen dazu, jedes Kästchen anzukreuzen. Runara läuft auf iPhone und Apple Watch, und sonst nirgends. Eine iPad-Version bräuchte eigene Layouts, jede Ausrichtung und Multitasking, und sie wäre eine App, um eine Uhr auf einem Gerät zu konfigurieren, das du nicht zum Laufen mitnimmst. Eine Mac- oder visionOS-App wäre noch weiter weg vom Kern. Die Mindestversionen sind iOS 26 und watchOS 26, weil das Liquid-Glass-Design vom ersten Tag an das Fundament war, und das war mir mehr wert als die paar Prozent Menschen auf älteren Systemen. Auch das habe ich aufgeschrieben, samt dem Satz „Das akzeptieren wir.“

Mehrere Fenster. Folgt direkt daraus: Eine reine iPhone-App hat ein Fenster. Auf dem iPad wäre das eine echte Frage, und eine schwierige. Am nächsten kommt Runara dem auf dem geöffneten Duo, wo ein Fenster zwei Bereiche nebeneinander zeigt, und das ist ein viel kleineres Problem als zwei Fenster, die sich einen Zustand teilen.

iPhone Duo. Das Foldable ist das eine Gerät, das die Annahme „eine hohe Spalte“ gebrochen hat. Zugeklappt ist sein äußeres Display breiter und niedriger als jedes andere iPhone, und das System macht aus der Tab-Leiste eine senkrechte Seitenleiste; Runara funktioniert dort wie auf jedem iPhone, mit Knöpfen, die ein Symbol tragen, damit die Seitenleiste sie zeigen kann. Aufgeklappt werden Verlauf, Pläne und Einstellungen zu Liste und Detail nebeneinander, der Screen-Editor stellt die Watch-Vorschau neben ihre Einstellungen, und die Watch-Screens füllen vier Spalten. Halb gefaltet richten sich die Bereiche und die Abstände zwischen den Spalten am Knick aus, und Kartenknöpfe halten Abstand zu Scharnier und Kameras. Die harte Regel dahinter: Jedes neue Layout schaltet sich erst bei einer Breite ein, die kein anderes iPhone je erreicht, also läuft auf jedem anderen iPhone genau der Code, der vorher lief, und Screenshots der normalen iPhones werden Pixel für Pixel verglichen, um das zu beweisen.

Gerätegenerationen. Das trifft auf der Uhr am härtesten. Jedes Modell führt dieselbe App aus, aber nicht gleich schnell, und der Akku einer älteren Uhr hat weniger zu geben. Version 2.0 enthielt eine ganze Runde Arbeit nur dafür: Eine manuelle Pause schaltet GPS und Sensoren in Ruhe, Sensoren laufen nur, wenn ein Widget auf deinen Screens sie braucht, der Live-Screen zeichnet nur neu, was sich geändert hat, statt der ganzen Ansicht, und mit gesenktem Handgelenk aktualisiert die Uhr alle fünf Sekunden statt jede Sekunde. Manche Funktionen hängen direkt an der Hardware: Die Doppeltipp-Geste braucht eine Series 9 oder Ultra 2 oder neuer, und der barometrische Höhenmesser greift auf Uhren ohne Barometer auf die GPS-Höhe zurück.

Das System rund um die App

Live-Aktivitäten. Während du auf der Uhr trainierst, zeigt das iPhone Zeit, Distanz, Tempo und Puls auf dem Sperrbildschirm und in der Dynamic Island. Die interessante Entscheidung war hier die Aktualisierungsrate. Die erste Version aktualisierte alle drei Sekunden, das sind rund 1.200 Bluetooth-Weckrufe für das Telefon pro Stunde. Seit 2.0 aktualisiert sie alle zehn Sekunden, plus sofort bei Pause und Fortsetzen, und die Uhrzeit läuft auf dem Telefon von selbst weiter, sodass alles trotzdem perfekt live aussieht.

Widgets. Runara hat Widgets für Home- und Sperrbildschirm zu Trainingslast und Form: kleine, mittlere und große, dazu runde und einzeilige für den Sperrbildschirm. Jede Größe braucht ihr eigenes Layout, und „es passt“ muss für jede davon in jeder Sprache geprüft werden. Was Widgets nicht tun, ist ein laufendes Training zu zeigen; das ist die Aufgabe der Live-Aktivität.

Komplikationen. Auf dem Zifferblatt bietet Runara einen Start-Knopf und drei Trainingslast-Komplikationen in den Familien rund, Ecke, einzeilig und rechteckig. Komplikationen sind winzig, und die kleinsten brauchten mehrere Anläufe, bis sie nicht mehr kaputt aussahen. Darüber habe ich geschrieben.

App Intents, Siri und Kurzbefehle. Runara hat genau einen Intent mit zwei Phrasen: „Training in Runara starten“ und „Neues Segment in Runara“, auf Englisch, Deutsch und Französisch. Ich könnte Dutzende Intents anbieten. Ich habe die zwei Dinge gewählt, die du mit vollen Händen wirklich tun willst, und sonst nichts, denn jeder Intent ist ein Versprechen, das mit jedem iOS-Update weiter funktionieren muss.

Action-Taste. Auf einer Ultra nutzt die Action-Taste denselben Intent: In Ruhe öffnet sie die Trainingsauswahl, während eines Trainings setzt sie ein neues Segment oder pausiert, je nachdem, was du eingestellt hast. Die Einstellung erscheint auf dem iPhone nur, wenn deine Uhr wirklich eine Ultra ist, denn eine Einstellung für eine Taste, die du nicht hast, ist nur Rauschen.

Gesten. Ein Doppeltipp auf den Bildschirm und die Hardware-Geste Doppeltippen, Zeigefinger an Daumen, tun dasselbe, standardmäßig ein neues Segment. Zwei Gesten, eine Einstellung, denn für die Person, die die Uhr trägt, sind es eine Geste. Langes Drücken vergrößert die Karte, die Digital Crown zoomt die Karte und bewertet deine Anstrengung, und wer den Doppeltipp auf „Nichts“ stellt, gibt die Geste ans System zurück.

Teilen. Jedes Training lässt sich als GPX-Datei oder als Poster-Bild teilen, ein 3D-Flyover als Video exportieren, und GPX-Dateien von überall lassen sich in Runara öffnen (seit 2.1 mit einem Prüfschritt, bevor etwas gespeichert wird). Teilen ist auch der Weg, auf dem die große Funktion von 2.0 arbeitet: Screens reisen per QR-Code oder Share-Code von der Website auf dein Telefon, ohne Konto und ohne Server, der weiß, wer du bist.

Berechtigungen. Runara fragt nach Apple Health (um Herzdaten zu lesen und Trainings zu speichern), dem Standort (für die Route), Bewegungsdaten (für die Schrittfrequenz), der Kamera (nur zum Scannen eines Screen-Codes) und der Fotomediathek (nur zum Speichern eines Flyover-Videos, und nur zum Hinzufügen). Die Fragen nach Kamera und Fotos kommen, wenn du diese Funktionen nutzt, nicht beim ersten Start. Spannend wird es nach einem Nein. Ein verweigerter Health-Zugriff lässt dich nicht mit einem leeren Verlauf zurück, der kaputt aussieht; er sagt, dass der Zugriff aus ist, und bringt dich an die richtige Stelle in den Einstellungen. Ein verweigerter Standort schaltet den Ortungsknopf der Karte ab und sagt warum. Eine verweigerte Kamera lässt dir immer noch den Share-Code zum Eintippen. Und HealthKit hat eine eigene Tücke: Es verrät einer App nie, ob der Lesezugriff verweigert wurde, „keine Daten“ und „nicht erlaubt“ sehen also gleich aus, und die App muss ihre leeren Zustände für beides formulieren.

Noch schwieriger ist eine neue Funktion, die eine Berechtigung braucht, die du nie hattest. HealthKit fragt für jeden Datentyp einmal, und nie wieder. Als die Bereitschaft anfing, die Herzfrequenzvariabilität zu lesen, hatte jeder bestehende Nutzer die alte Frage längst beantwortet. Runara merkt sich, welche Version seiner Berechtigungen du zuletzt beantwortet hast, und kann so „Health-Berechtigungen aktualisieren“ in den Einstellungen und einen „Zugriff erlauben“-Knopf direkt auf der Karte zeigen, die ihn braucht, statt stillschweigend nichts anzuzeigen. Der nächste Fall ist schon unterwegs: Die Bewertung, wie anstrengend ein Training war, kommt mit 2.2 und speichert Apples Anstrengungswert zusammen mit dem Training in Apple Health. Das ist ein neuer Datentyp zum Schreiben, also erscheint die Berechtigungsfrage für alle, die Runara schon vorher installiert hatten, genau in dem Moment, in dem sie bei ihrer ersten Bewertung auf Sichern tippen, wenn klar ist, warum gefragt wird.

Für alle, überall

Barrierefreiheit. VoiceOver liest jeden Messwert als ein Element, du hörst also „5 Kilometer pro Stunde“ statt einer „5“ und danach einer Einheit. Die Pulszonen bieten eine Farbpalette für Farbenblinde, denn ein Verlauf von Rot nach Grün scheitert bei etwa jedem zwölften Mann. Die ehrliche Lücke: Die Live-Werte sagen sich nicht selbst an, während sie sich ändern. Das steht auf meiner Liste, und ich sage es lieber hier, als so zu tun, als wäre die App perfekt.

Übersetzung. Runara gibt es auf Englisch, Deutsch und Französisch, jeder Screen, jeder Text, auch die Sprachansagen. Übersetzung ist viel mehr als Texte: Deutsche Beschriftungen sind länger und brauchten kürzere Fassungen für die kleinsten Watch-Zellen, Dezimalzeichen folgen der Sprache der Stimme, und Distanzen, Höhenmeter und Plan-Schritte folgen überall deiner Wahl zwischen Kilometern und Meilen. Jede Sprache ist eine dauerhafte Verpflichtung, denn jede neue Funktion muss dann in allen erscheinen.

Animationen. Die Regel ist einfach: Momente dürfen feiern, Live-Daten nicht. Ein neuer Pokal darf aufploppen, ein beendetes Training darf in seine Zusammenfassung überblenden, aber die Tempo-Ziffer rollt und hüpft nie, denn ein Instrument, das animiert, ist ein Instrument, das man nicht ablesen kann. Jede Animation der App läuft durch ein Tor, das sie sofort macht, wenn „Bewegung reduzieren“ aktiv ist, und bei gesenktem Handgelenk.

iCloud-Backup. Deine Screens, Einstellungen und Routen werden in deiner eigenen privaten iCloud gesichert, und das ist nicht dasselbe wie Synchronisieren. Das Backup wird einmal pro App-Start geschrieben, nie während du bearbeitest, sodass „Aus iCloud wiederherstellen“ auch als Rückgängig funktioniert. Kartenpakete werden gar nicht hochgeladen; sie sind jeweils Dutzende Megabyte groß und lassen sich einfach neu erzeugen. Runara selbst hat weiterhin keinen Server, kein Konto und keine eigene Cloud.

Runara auf einen Blick

BereichRunaras Entscheidung
BildschirmgrößenAlle Uhrengrößen, Layouts pro Zelle eingepasst
DrehenHochformat am iPhone, anpassungsfähig auf dem geöffneten iPhone Duo
TextgrößeDynamische Schrift am iPhone, feste Instrumenten-Ziffern auf der Uhr
iPad / Mac / visionOSNein, nur iPhone und Apple Watch
Mehrere FensterNein, aber zwei Bereiche auf dem geöffneten iPhone Duo
iPhone DuoJa, zugeklappt, aufgeklappt und halb gefaltet
BarrierefreiheitVoiceOver, Zonen für Farbenblinde, Bewegung reduzieren
Live-AktivitätenJa, Sperrbildschirm und Dynamic Island
WidgetsJa, Trainingslast in fünf Größen
KomplikationenJa, Start plus drei Trainingslast-Komplikationen
Siri und KurzbefehleEin Intent, zwei Phrasen
TeilenGPX, Poster, Flyover-Video, Screen-Share-Codes
BerechtigungenIm Kontext gefragt, bei Nein erklärt, bei Neuem erneut gefragt
GestenDoppeltipp auf dem Screen, Doppeltippen-Geste, langes Drücken, Digital Crown
Action-TasteJa, auf der Ultra
SprachenEnglisch, Deutsch, Französisch
AnimationenAbgesichert, nie auf Live-Daten
Ältere GeräteAkku- und Performance-Arbeit in 2.0
iCloudBackup, keine Synchronisation
Hell und dunkelNur dunkel

Die Checkliste

Wenn du eine App für Apples Plattformen baust, geh diese Liste durch, bevor du den ersten Screen schreibst, und noch einmal vor jedem großen Release. Das Ziel ist nicht, zu allem Ja zu sagen. Das Ziel ist, dass jede Antwort, Ja oder Nein, eine ist, die du gewählt hast. Markiere jeden Punkt mit Unterstützen oder Weglassen, schreib bei Bedarf einen Grund dazu, und lade die ganze Liste samt deinen Entscheidungen als Markdown-Datei herunter. Deine Antworten bleiben in deinem Browser.

  • Bildschirmgrößen: Habe ich das kleinste und das größte Gerät getestet, mit den längsten realistischen Werten?

  • Drehen: Macht das Querformat meine App besser, oder nur schwerer zu bauen?

  • Textgröße: Was passiert bei der größten Stufe der dynamischen Schrift, wo begrenze ich sie, und warum?

  • Plattformen: Dienen iPad, Mac oder Vision Pro meinen Nutzern, oder nur meiner App-Store-Seite?

  • Mehrere Fenster: Wenn ich das iPad unterstütze, können zwei Fenster meiner App gleichzeitig existieren, ohne den Zustand zu zerstören?

  • Barrierefreiheit: Kann jemand meine Kernfunktion nur mit VoiceOver nutzen? Trägt Farbe bei mir Bedeutung allein?

  • Live-Aktivitäten: Gibt es etwas Live-Wertes zu zeigen, und wie oft muss es wirklich aktualisieren?

  • Widgets: Welche Größen und Familien, und zeigt jede davon auf einen Blick etwas Nützliches?

  • Komplikationen: Welche Zifferblatt-Familien, und gibt es einen Weg mit einem Tipp in die App?

  • App Intents: Welche zwei oder drei Aktionen würden Menschen per Stimme oder Kurzbefehl auslösen?

  • Teilen: Was kann meine App verlassen, in welchem Format, und was kann hereinkommen?

  • Berechtigungen: Ergibt jede Funktion nach einem Nein noch Sinn, und wie frage ich erneut, wenn eine neue Funktion mehr braucht?

  • Neue Geräteklassen: Kommt eine neue Art Gerät oder Konfiguration, auf die meine App vorbereitet sein sollte?

  • Gesten: Welche Hardware-Gesten hat mein Publikum, und kollidieren meine eigenen Gesten mit denen des Systems?

  • Action-Taste: Gibt es eine Aktion, die eine physische Taste wert ist?

  • Übersetzung: Welche Sprachen, und bin ich bereit, jede künftige Funktion in allen auszuliefern?

  • Animationen: Respektiert jede Animation „Bewegung reduzieren“? Animiert etwas, das man ablesen muss?

  • Gerätegenerationen: Wie fühlt sich meine App auf dem ältesten unterstützten Gerät an, und was kostet sie den Akku?

  • iCloud: Backup oder Synchronisation, was genau wird gespeichert, und wie sieht eine Wiederherstellung aus?

  • Hell und dunkel: Beides, eins, oder dem System folgen, und habe ich jeden Screen in jedem Modus geprüft?

0 von 20 entschieden

Deine Antworten bleiben in diesem Browser.

Schreib die Antworten auf, auch die Neins und den Grund für jedes. Wenn dich in einem Jahr jemand fragt, warum sich die App nicht dreht, hast du die Antwort, und du kommst nicht in Versuchung, eine Entscheidung neu aufzumachen, die du schon durchdacht hast.

Und das ist nur die halbe Landkarte

Alles oben ist iOS und watchOS. Nimm Android dazu, und die Liste wächst nicht um ein paar Punkte, sie verdoppelt sich ungefähr: eine zweite Programmiersprache, ein zweites UI-Framework, Tausende Bildschirmgrößen statt einer Handvoll, Uhren vieler Hersteller mit unterschiedlichen Gesundheitsplattformen, Foldables, die ihre Form ändern, während deine App läuft. Nimm Tablets, Desktops, Fernseher oder Autos dazu, und jedes bringt seine eigene Liste mit. Deshalb ist Runara eine reine Apple-App, und deshalb tut dieser Beitrag nicht so, als würde er mehr abdecken. Eine einzelne Person kann ein Ökosystem ordentlich machen oder mehrere schlecht, und ich weiß, welche App ich auf meinen eigenen Läufen benutzen will.

Jetzt erhältlich

Runara 2.1 ist als kostenloses Update im App Store. Kostenlos ausprobieren, ein Kauf schaltet alles für immer frei, kein Abo. Kein Konto, kein Tracking, keine Werbung.

Wenn dich diese Liste als Entwicklerin oder Entwickler ein wenig müde gemacht hat, ist das verständlich. Mich hat sie auch mehr als einmal müde gemacht. Aber jeder Punkt darauf ist eine Chance, dass sich eine App anfühlt, als gehöre sie auf das Gerät, und dieses Gefühl ist das meiste von dem, was eine gute App von einer unterscheidet, die bloß funktioniert.