Estamos creando un conjunto de aplicaciones móviles nativas para complementar nuestra aplicación existente que actualmente solo admite una interfaz web para el servidor. La aplicación puede ser instalada y alojada por clientes en su propia infraestructura o alojada por nosotros mismos para clientes que quieran utilizarla. Los clientes de grandes empresas generalmente optan por autohospedarse, mientras que los clientes más pequeños eligen nuestra opción de alojamiento.
Necesitamos soportar múltiples versiones de la aplicación. No todos los clientes desean actualizar al mismo tiempo. Con la interfaz web, el soporte de múltiples versiones no es difícil ya que la interfaz web usa automáticamente la versión del servidor asociada con su instalación del servidor. Con las aplicaciones móviles en las que normalmente solo tiene una aplicación disponible en las tiendas de aplicaciones, el soporte para diferentes niveles de API del servidor y la funcionalidad en la aplicación móvil se convierte en un desafío. Me interesa saber cómo otras personas están resolviendo el problema. En mi opinión, tienes opciones como:
- Admite múltiples versiones de la aplicación en la tienda de aplicaciones.
- Desarrolle soporte en las aplicaciones móviles para determinar automáticamente la versión API del servidor con el que está hablando y enrutar llamadas a los puntos finales API del servidor relevante. También presente el uso de algún tipo de mecanismo de alternancia de funciones para habilitar / deshabilitar la funcionalidad en la aplicación móvil en función de lo que está disponible en las diferentes versiones del servidor.
- No use la tienda de aplicaciones para implementar su aplicación. Dirige a los usuarios a una URL específica de la versión que pueden usar para descargar e instalar la aplicación.
Opción 1 : IMO creará confusión para los usuarios de la aplicación. Tampoco hay una buena ruta de migración de una versión de la aplicación a la siguiente, ya que realmente son dos aplicaciones separadas.
Opción 2 : por otro lado, puede volverse muy complejo rápidamente si tiene en cuenta que las imágenes de su interfaz de usuario ahora básicamente necesitan adaptarse a cualquier funcionalidad disponible en la versión de la API del servidor con la que está hablando. También debe admitir las diferentes versiones de las llamadas API del servidor que debe realizar.
Opción 3 : es posible en el mundo de Android cuando se realiza una carga lateral de su aplicación, pero que yo sepa no es compatible con iOS y no estoy seguro de cuál será la imagen para las aplicaciones móviles de Windows 10 en adelante.
¿Qué otros enfoques hay para abordar el problema? No discuta el hecho de que estamos escribiendo aplicaciones nativas. Eso no es lo que estoy preguntando. Estoy buscando orientación sobre cómo otras personas están abordando el problema de admitir múltiples versiones de la misma aplicación móvil nativa hablando con diferentes versiones de una API de servidor.