Wir erstellen eine Suite nativer mobiler Anwendungen als Ergänzung zu unserer vorhandenen Anwendung, die derzeit nur eine Webschnittstelle zum Server unterstützt. Die Anwendung kann von Clients in ihrer eigenen Infrastruktur installiert und gehostet werden oder von uns für Clients gehostet werden, die sie nutzen möchten. Große Unternehmenskunden entscheiden sich normalerweise für das Selbsthosting, während kleinere Kunden unsere Hosting-Option wählen.
Wir müssen mehrere Versionen der Anwendung unterstützen. Nicht alle Kunden möchten gleichzeitig ein Upgrade durchführen. Mit der Weboberfläche ist die Unterstützung mehrerer Versionen nicht schwierig, da die Weboberfläche automatisch die Serverversion verwendet, die der Serverinstallation zugeordnet ist. Bei mobilen Anwendungen, bei denen normalerweise nur eine einzige App in den App Stores verfügbar ist, wird die Unterstützung für verschiedene Ebenen der Server-API und -Funktionalität in der mobilen App zu einer Herausforderung. Ich bin interessiert zu wissen, wie andere Leute das Problem lösen. Meiner Meinung nach haben Sie Optionen wie:
- Unterstützt mehrere Versionen der App im App Store.
- Integrieren Sie Unterstützung in die mobilen Anwendungen, um automatisch die API-Version des Servers zu ermitteln, mit dem gesprochen wird, und um Anrufe an die entsprechenden Server-API-Endpunkte weiterzuleiten. Führen Sie außerdem eine Art Feature-Umschaltmechanismus ein, um Funktionen in der mobilen Anwendung basierend auf den in den verschiedenen Serverversionen verfügbaren Funktionen zu aktivieren / deaktivieren.
- Verwenden Sie den App Store nicht zum Bereitstellen Ihrer App. Verweist Benutzer auf eine versionierungsspezifische URL, über die sie die App herunterladen und installieren können.
Option 1 - IMO sorgt für Verwirrung bei den Benutzern der App. Es gibt auch keinen guten Migrationspfad von einer Version der App zur nächsten, da es sich tatsächlich um zwei separate Anwendungen handelt.
Option 2 - kann andererseits schnell sehr komplex werden, wenn Sie berücksichtigen, dass sich Ihre UI-Grafiken jetzt grundsätzlich an die Funktionen anpassen müssen, die in der Version der Server-API verfügbar sind, mit der gesprochen wird. Es muss auch die verschiedenen Versionen der Server-API-Aufrufe unterstützen, die es ausführen muss.
Option 3 - ist in der Android-Welt möglich, wenn Sie Ihre App von der Seite laden. Soweit ich weiß, wird dies in iOS nicht unterstützt, und ich bin mir nicht sicher, wie das Bild für Windows 10 Mobile-Apps in Zukunft aussehen wird.
Welche anderen Ansätze gibt es, um das Problem anzugehen? Bitte diskutieren Sie nicht die Tatsache, dass wir native Apps schreiben. Das frage ich nicht. Ich suche nach Anleitungen, wie andere Leute das Problem der Unterstützung mehrerer Versionen derselben nativen mobilen App angehen, die mit verschiedenen Versionen einer Server-API kommunizieren.