現在サーバーへのWebインターフェースのみをサポートしている既存のアプリケーションを補足するために、ネイティブモバイルアプリケーションのスイートを構築しています。アプリケーションは、クライアントが独自のインフラストラクチャにインストールしてホストすることも、それを利用したいクライアントのために自分でホストすることもできます。大企業のお客様は通常、セルフホスティングを選択しましたが、小規模のお客様はホスティングオプションを選択しました。
アプリケーションの複数のバージョンをサポートする必要があります。すべてのお客様が同時にアップグレードを希望するわけではありません。Webインターフェイスでは、サーバーのインストールに関連付けられたサーバーバージョンがWebインターフェイスで自動的に使用されるため、複数のバージョンのサポートは難しくありません。通常、App Storeで利用できるアプリが1つしかないモバイルアプリケーションでは、モバイルアプリでのさまざまなレベルのサーバーAPIと機能のサポートが課題になります。他の人が問題をどのように解決しているか知りたいです。私の心には、次のようなオプションがあります。
- アプリストアでアプリの複数のバージョンをサポートします。
- モバイルアプリケーションにサポートを組み込み、通信しているサーバーのAPIバージョンを自動的に決定し、関連するサーバーAPIエンドポイントに呼び出しをルーティングします。また、サーバーのさまざまなバージョンで利用できる機能に基づいて、モバイルアプリケーションの機能を有効/無効にするために、ある種の機能切り替えメカニズムを使用することも紹介します。
- アプリのデプロイにアプリストアを使用しないでください。アプリのダウンロードとインストールに使用できるバージョン固有のURLをユーザーに示します。
オプション1 -IMOはアプリのユーザーを混乱させます。また、実際には2つの独立したアプリケーションであるため、あるバージョンのアプリから次のバージョンへの移行パスは適切ではありません。
オプション2-一方、UIビジュアルは、基本的に、通信しているサーバーAPIのバージョンで利用可能な機能に適応する必要があることを考慮すると、すぐに非常に複雑になる可能性があります。また、必要なサーバーAPI呼び出しのさまざまなバージョンをサポートする必要があります。
オプション3-アプリのサイドローディングを行う場合、Androidの世界で可能ですが、私の知る限り、iOSではサポートされておらず、今後のWindows 10モバイルアプリの画像はどのようになるかわかりません。
この問題に取り組むために他にどのようなアプローチがありますか?私たちがネイティブアプリを作成しているという事実について議論しないでください。それは私が求めていることではありません。サーバーAPIの異なるバージョンと通信する同じネイティブモバイルアプリの複数のバージョンをサポートする問題に他の人々がどのように取り組んでいるのかについてのガイダンスを探しています。