モバイルアプリ更新のシナリオ
モバイルアプリの開発時に[1-Click Publish]をクリックすると、アプリの新しいバージョンをインストールしなくても、自動的にアプリの更新を行うことができます。アプリとサーバーの接続が確立すると、ユーザーのデバイスで実行されているモバイルアプリが更新を自動的に検出します。ある環境で生成されたモバイルアプリパッケージは、同じ環境でパブリッシュされた開発や変更のみを受け取ります。
入手可能な新しいアプリバージョンの検出
サーバー上の最新バージョンに合わせて更新するために、アプリが新しいバージョンを確認するタイミングがいくつかあります。このタイミングは以下のとおりです。
- アプリの起動
- 画面間の移動
- サーバーの呼び出し。たとえば、サーバーアクションやサーバーのAggregateを実行するとき
サーバー上に新しいバージョンがある場合、アプリが自らを更新し、ユーザーにフィードバックメッセージが通知されます。
シームレスなアップグレードと注意を要するアップグレード
シームレスなアップグレード: 新しいバージョンが入手可能であることが検出されると、すべての新しいリソースのキャッシュがバックグラウンドでアプリによって開始されます。すべてのリソースがキャッシュされると、次のナビゲーションイベントのときに更新がトリガーされます。これは、画面の遷移のときなどです。アプリが完全に更新され遷移先の画面が読み込まれると、ユーザーに更新の通知とフィードバックメッセージがアプリによって表示されます。更新に時間がかかる場合は、遷移先の画面に移動する前にスプラッシュ画面が表示されます。これがシームレスなアップグレードとされます。
注意を要するアップグレード: 新しいアプリバージョンで変更された画面をユーザーが使用している場合、注意を要するアップグレードが発生することがあります。サーバーアクションなどのサーバーとのやりとりが必要なアクションをユーザーが実行しており、そのアクションのシグネチャが異なっている場合、アクションは失敗し、新しいバージョンが入手可能であり、続行するには新しいバージョンが必要であることを示すフィードバックメッセージが表示されます。そのメッセージをクリックするとアプリが更新されます。更新後、更新された画面が読み込まれ、アプリが最新であることを示すフィードバックメッセージが表示されます。
画面上にFormウィジェットがある場合、必要な更新に関するメッセージとともに、アプリを再度読み込む必要があるため、ユーザーがFormに入力した情報が失われることを示すメッセージも表示されます。ローカルストレージやクライアント変数に保持されたデータには影響を及ぼしません。
デバイスでの更新が実行できない場合
パブリッシュ手順で問題がなかったときでも、ユーザーのデバイスでアプリの自動更新を実行できない場合があります。考えられる原因は以下のとおりです。
- ネットワークの接続状況が悪く、更新に必要なリソースをダウンロードできない
- 自動更新ができないローカルデータモデルのアップグレード
ユーザーのデバイスで更新を実行できない場合、完全に動作する最新バージョンにモバイルアプリがロールバックします。また、更新が実行できなかったことと、アプリの再起動と更新の再試行が必要となる可能性があることを示すメッセージが表示されます。
ローカルストレージデータモデルの更新中にエラーが発生する場合は、既存データが新しいデータモデルと互換性がない可能性があります。この場合、問題が続く場合はアプリの再インストールが必要となる可能性があることを示すメッセージが表示されます。再インストールを行うと現在のアプリのデータは消去されます。
問題と原因が環境のログに記録され、Service Centerでこれらのログを確認できます。これらのログで原因を特定し、アプリの新しいバージョンで修正を行うことができます。
新しいビルドをインストールする必要がある場合
1-Click Publishが実行されるたびに変更はアプリに自動的に反映されますが、場合によっては更新したアプリパッケージをデバイスにインストールする必要があります。これは次のような場合に起こります。
- モバイル プラットフォームの構成を変更した場合
- Extensibility Configurationsプロパティを変更した場合(モバイルプラグインの変更、追加、削除や、ステータスバーの透明度、カスタムアイコン、スプラッシュ画面の変更など)
- プラグインの外部リソースを更新した場合
- アプリ名を変更した場合
- エントリモジュールまたはその名前を変更した場合
- アプリのアイコンを置き換えた場合
- アプリのメインカラーを変更した場合
これらの変更をパブリッシュすると、更新されたアプリのユーザーエクスペリエンスに影響が出ることがあります。プラグインの場合は、クラッシュが起こらないよう、最新バージョンがデバイスにインストールされるまでアプリにフォールバックを実装することをお勧めします。これらの潜在的問題は、ユーザーが最新のアプリパッケージにアップグレードすると自動的に解決されます。
デバイスにインストール済みであり、Debugビルドタイプを使用して生成されたAndroidアプリの場合、新しいバージョンをインストールする前に、以前のバージョンをデバイスからアンインストールします。これにより、新しい機能が正しく動作することが保証されます。
最初のモバイルアプリ生成の後、[1-Click Publish]をクリックすると、OutSystemsが上記の条件で新しいアプリパッケージを生成します。生成したアプリパッケージは、Service Studio、Service CenterおよびLifeTime経由でダウンロードすることができます。これにより、環境からダウンロード可能な最新のアプリパッケージを、アプリ開発と確実に同期させることができます。