Stiamo costruendo una suite di applicazioni mobili native per integrare la nostra applicazione esistente che al momento supporta solo un'interfaccia web per il server. L'applicazione può essere installata e ospitata dai client sulla propria infrastruttura o ospitata da noi stessi per i clienti che vogliono farne uso. I grandi clienti aziendali in genere scelgono di auto-ospitare mentre i clienti più piccoli scelgono la nostra opzione di hosting.
Dobbiamo supportare più versioni dell'applicazione. Non tutti i clienti vogliono aggiornare allo stesso tempo. Con l'interfaccia web, il supporto di più versioni non è difficile in quanto l'interfaccia web utilizza automaticamente la versione del server associata all'installazione del server. Con le applicazioni mobili in cui in genere è disponibile una sola app negli App Store, il supporto per i diversi livelli dell'API del server e le funzionalità nell'app mobile diventano una sfida. Sono interessato a sapere in che modo gli altri stanno risolvendo il problema. A mio parere hai opzioni come:
- Supporta più versioni dell'app nell'app store.
- Crea il supporto nelle applicazioni mobili per determinare automaticamente la versione API del server con cui sta parlando e indirizzare le chiamate agli endpoint dell'API del server pertinente. Introdurre anche l'uso di un qualche tipo di meccanismo di attivazione / disattivazione delle funzionalità per abilitare / disabilitare la funzionalità nell'applicazione mobile in base a ciò che è disponibile nelle diverse versioni del server.
- Non utilizzare l'app store per la distribuzione della tua app. Indirizza gli utenti a un URL specifico della versione che possono utilizzare per scaricare e installare l'app.
Opzione 1 - IMO creerà confusione per gli utenti dell'app. Inoltre, non c'è un bel percorso di migrazione da una versione dell'app alla successiva poiché si tratta in realtà di due applicazioni separate.
L'opzione 2 - d'altra parte può diventare rapidamente molto complessa se si tiene conto del fatto che la grafica dell'interfaccia utente ora deve sostanzialmente adattarsi a qualsiasi funzionalità disponibile nella versione dell'API del server che è parlando con. Inoltre, deve supportare le diverse versioni delle chiamate API del server che deve effettuare.
Opzione 3 - è possibile nel mondo Android quando esegui il caricamento laterale della tua app, ma per quanto ne so non è supportata in iOS e non sono sicuro di quale sarà l'immagine per Le app per dispositivi mobili Windows 10 stanno andando avanti.
Quali altri approcci ci sono per affrontare il problema? Per favore non discutere il fatto che stiamo scrivendo app native. Non è quello che sto chiedendo. Sto cercando indicazioni su come altre persone stanno affrontando il problema del supporto di più versioni della stessa app mobile nativa che parla con diverse versioni di un'API del server.