• Wieder einmal haben uns unsere Apfeltalker tolle Fotos zur Abstimmung eingesandt. Welches ist Euer Favorit? Stimmt mit ab! Hier geht es zur Abstimmung --> Klick
  • Es ist bereits Apfeltalk-Tradition und wir möchten sie auch in diesem Jahr fortsetzen: Unser Apfeltalk-Weihnachtslogo-Wettbewerb hat begonnen! Gestaltet für uns das Weihnachtsbanner, das im Monat Dezember bis zum Weihnachtsfest unsere Webseite schmücken soll. Lasst Eurer Kreativität freien Lauf! Hier geht es zum Wettbewerb --> Klick

App und Backend API -> Was tun bei Versionskonflikten?

The_Unknown

Cox Orange
Registriert
20.10.12
Beiträge
99
Hallo in die Runde,

in Kürze veröffentliche ich meine erste App im AppStore. Wie es bei Apps oft vorkommt, gibt es ein Backend (aka eine API), über die eine Vielzahl von Informationen durch die App abgeholt wird (Nutzerdaten, Faq, Business-Logik, ...).

Nun stelle ich mir die Frage, was ich tue, wenn sich mal die API ändert, sodass sie inkompatibel mit manchen App-Versionen wird. Wie geht ihr mit so etwas um?

Ich kann mir da 2 Varianten vorstellen:

Variante 1: App-Nutzer werden bei einem API-Update gezwungen, auf die letzte Version upzugraden, damit alles wieder kompatibel ist.

Variante 2: Die API verarbeitet Anfragen jeder App-Version anders. An v1 liefert sie andere Infos als an v2.

Folgende Probleme ergeben sich daraus:

Variante 1: Das nervt die meisten Nutzer sicherlich. Dazu kommt, dass man bei Apple auch nicht soooo genau planen kann (nur auf 1 Tag genau). Bei Android weiß ich es nicht genau. Jedenfalls kann es sozusagen eine Art Downtime beim Nutzer geben, die 23h und 59 min lang ist, wenn Apple noch nicht freigeschaltet hat, das Update also noch nicht im AppStore für den Nutzer verfügbar ist.

Außerdem habe ich Variante 1 noch niemals in freier Wildbahn erlebt ;) Ich führe Updates aber eh immer im Hintergrund aus.

Variante 2: Das Problem ist hier neben dem Vorhalten mehrerer Stände, dass trotzdem alle Stände auf der gleichen Datenbank arbeiten müssen, damit keine Asynchronitäten entstehen. Dem Gefühl nach könnte das extrem aufwendig werden und für ein Hobby-Projekt irgendwie zu krass, oder?

Was meint ihr dazu? Habt ihr mit sowas Erfahrungen? Gibt es Best-Practices wo man sich einlesen kann?

Ciao The_Unknown
 
Variante 2 ist der richtige Weg ;). In jede Angfrage kommt zusätzlich die API-Version rein.