オフラインモバイルアプリの構築
目次
OutSystemsは、オフラインやネットワーク状況が良くない場合でも実行できるアプリケーションの構築に必要なすべてのツールを提供します。OutSystemsで構築したアプリケーションは、アプリケーションのコンテンツすべてを自動的にユーザーのデバイスに保存して、パフォーマンスの向上とオフラインアクセスを実現します。また、OutSystemsのビジュアル言語は、どのデータをデバイスに移すかを管理するのに必要な機能をすべて備えています。
OutSystemsを使用すると、パフォーマンスのためにデータとコンテンツをキャッシュに格納するだけのごくシンプルなアプリから、オフライン計算を行い複雑な競合解消を必要とする非常に複雑なアプリまで、すべてのオフライン要求にすばやくかつ簡単に対応できます。
オフラインでの課題
オフラインアプリには、以下のような解決すべき課題があります。
- ローカルにデータを保存するための容量の小ささ
- デバイスとサーバー間のデータ同期
- データ競合
- クライアント側コードの期限切れ
ローカルにデータを保存するための容量が限られているという問題に対応するため、OutSystemsではデバイスに保存する情報を視覚的に定義できます。つまり、ビジュアル言語のスピードと柔軟性を損なうことなく、どのデータをオフラインに保存するかを完全に管理できるのです。
同様に、データ同期もすべてOutSystemsのビジュアル言語で行います。これにより、同期プロセス発生のタイミングを管理でき、業務の仕様がいかに複雑でも最適な同期パターンを柔軟に使用できます。
同期パターンの詳細については、オンラインヘルプの「オフラインデータの同期パターン」の記事をご覧ください。
オフラインアーキテクチャ
以下の図は、OutSystemsを使用して構築した典型的なオフライン対応アプリケーションのランタイムアーキテクチャを示したものです。
ネイティブアプリケーションには、接続がなくサーバーからスタンドアロンの状態での実行に必要なリソースがすべて含まれています。接続可能な場合は、アプリケーションは自動的に最新バージョンのリソースを確認し、更新します。
デバイス上のデータは、SQLiteを基盤テクノロジーとして使用してローカルデータベースに保存されます。データストレージの物理的な大きさ以外に保存データ量を制限する要素はなく、アプリを閉じても、デバイスを再起動しても、充電がなくなってもデータは保持されます。
機密情報を保護する必要がある場合、アプリケーションのデータ暗号化モジュールをアクティベートするだけで行えます。これにより、デバイス上のデータはセキュアな256-bit AES暗号化で保護されます。
OutSystemsのビジュアル言語では、デバイスとサーバー間の同期プロセスを完全に管理できます。このプロセスはご利用のアプリケーションからいつでも開始できます。また、ユーザーのログイン時、アプリケーションの起動時、サーバー接続の復旧時といった特定のインスタンスで自動的に開始することもできます。
バックエンドでは、クライアントがサーバーとデータを送受信できるようREST APIが自動的に生成され、公開されます。認証済みのユーザーのみが同期プロセスを開始でき、すべての接続をSSLで実行するセキュアなAPIであるため、データをセキュアに保つことができます。