AppSheet アプリは、モバイル デバイスがオフラインでネットワークに接続されていない場合でも、そのデバイスで使用できます。これが可能であるのは、アプリの実行に必要な情報(アプリの定義やデータのほかに、必要に応じて画像やドキュメントなど)がモバイル デバイスにローカルに保存されているためです。ウェブブラウザでアプリを実行している場合は、オフラインのブラウザでの実行をご覧ください。
セキュリティ フィルタをアプリで使用すると、アプリとスプレッドシート内のデータとの同期を限定できます。
次の各セクションでは、オフラインと同期を設定して使用する方法について説明します。
- オフラインと同期の設定
- 設定プロパティ
- Delayed sync
- オフラインでの使用に関する考慮事項
- オフラインでの起動
- 長期間にわたるオフラインでの使用
- ログイン状態でのオフライン
- オフラインのブラウザでの実行
オフラインと同期の設定
オフラインと同期を設定するには、次の手順を行います。
- アプリエディタでアプリを開きます。
- [Settings] > [Offline mode] を選択します。
- 必要に応じ、各セクションを開いてオフライン モードのプロパティを設定します。
- [Settings] > [Performance] を選択します。
- 必要に応じ、各セクションを開いてパフォーマンスのプロパティを設定します。
- 完了したら、次のいずれかを選択してアプリを保存します。
- Save - アプリを保存します。
- Save & verify data - アプリを保存し、外部依存関係に基づいてアプリが実行可能であるかどうかを確認します。
デフォルトでは新しいエディタが有効になっていますが、いつでも以前のエディタに戻すことができます。
以前のナビゲーションをお使いの場合
オフライン モードを設定するには、次の手順を行います。
- アプリエディタでアプリを開きます。
- [Behavior] > [Offline/Sync] を選択します。
- 必要に応じ、各セクションを開いてプロパティを設定します。
- 完了したら、次のいずれかを選択してアプリを保存します。
- Save - アプリを保存します。
- Save & verify data - アプリを保存し、外部依存関係に基づいてアプリが実行可能であるかどうかを確認します。
設定プロパティ
オフラインと同期の設定に使用できる設定プロパティの概要を以下のセクションに示します。
オフライン モードのプロパティ
オフラインでの使用に関するプロパティを設定します。詳細については、データがキャッシュされる場所をご覧ください。
プロパティ | 説明 |
The app can start when offline | インターネット接続がない場合でもアプリを起動できるようにします。変更は、ユーザーが次回オンラインになるまで同期されません。オフライン時にアプリを起動できるようにするをご覧ください。 |
Store content for offline use | すべての画像とファイルをオフラインでアクセスできるようにします。画像とドキュメントをキャッシュに保存するをご覧ください。 |
同期パフォーマンスのプロパティ
パフォーマンスのプロパティを設定します。
アプリからクラウドへの同期
アプリからクラウドへの同期に関するプロパティを設定します。
プロパティ | 説明 |
Sync on start | アプリが起動するたびにデータを同期して、最新のデータをユーザーが利用できるようにします。 |
Delayed sync | 変更があるたびに同期するのではなく、変更後にユーザーが同期を開始した場合にのみ同期します。Delayed sync をご覧ください。 |
Automatic updates | 現在のユーザーによって変更が行われると、その変更を自動的に送信します。他のユーザーによって行われた変更を約 30 分ごとに自動的に取得します。自動更新の設定をご覧ください。 |
次の表に、Delayed sync プロパティと Automatic updates プロパティの設定の組み合わせを簡単に示します。
プロパティ | 即時同期 | 自動同期(30 分ごと) | 同期完了までの待ち時間の発生 | 手動同期が必要か |
Delayed sync Automatic updates ヒント: ほとんどのユースケースに最適です。
|
はい | はい | いいえ | いいえ |
Delayed sync Automatic updates ヒント: オフラインでアプリを使用することを想定している場合や、同期の発生時期を制御する必要がある場合に最適です。 |
いいえ | いいえ | はい(モバイル) いいえ(デスクトップ(プレビュー)) |
はい |
Delayed sync Automatic updates ヒント: 使用するデータを自動化によって、または直接データソースによって更新するアプリに最適です。 |
はい | はい | はい(モバイル) いいえ(デスクトップ(プレビュー)) |
いいえ |
Delayed sync Automatic updates |
はい | いいえ | はい(モバイル) いいえ(デスクトップ(プレビュー)) |
いいえ |
クラウドからデータソースへの同期
クラウドからデータソースへの同期に関するプロパティを設定します。
プロパティ | 説明 |
Server caching |
クラウド プロバイダから毎回データを取得するのではなく、AppSheet サーバーにデータを保存します。大規模なテーブルの同期が改善されますが、更新頻度が非常に低い読み取り専用データにしか使用できません。 |
Delta sync |
前回の同期以降に変更されたテーブルのみを更新します。これにより同期が改善されますが、特定の場合(スプレッドシートに外部数式が含まれる場合や、同期のたびに仮想列を更新する必要がある場合など)には使用できません。同期の速度を改善するもご覧ください。 |
Quick sync |
オンにした場合、他のユーザーによる変更が保存されるとすぐにその変更が表示されます。ユーザーに表示されるのは、同じアプリのバージョンを使用している他のユーザーによって行われた変更だけです。
Quick sync を使用する場合、最適な結果を得るには、[Start on sync] と [Automatic updates] をオンにすることをおすすめします。
高度なセキュリティ フィルタをアプリで使用している場合、データソースで値が自動的に計算される場合(たとえば、Google スプレッドシートのデータソースで数式を使用している場合)、または正しく計算するには完全な同期が必要となる仮想列がアプリに含まれている場合、この機能は使用しないでください。
詳細については、Quick sync を使用して他のユーザーによる変更をすぐに表示するをご覧ください。
個々のデータ更新は AppSheet サーバーのキャッシュに保存されます。データ所在地に関する厳格な要件がある場合は、この機能を使用しない方がよいでしょう。
|
Delayed sync
同期は、データの更新をデバイスからバックエンドに送信し、最新のアプリ定義とデータをバックエンドからデバイスに取得するステップです。アプリに Delayed sync を選択した場合、アプリのデータについて、編集、削除、追加などが発生してもすぐには同期されません。ユーザーが明示的に同期を選択するまで、変更はキューに登録されます。このオプションは、オフライン環境でアプリを使用することを想定している場合や、同期の発生時期を制御する必要がある場合に選択してください。たとえば、Delayed sync により、ネットワーク データ帯域幅を使用するタイミングを制御できます。
断続的な接続
Delayed sync が有効になっていないアプリでは、デバイス上のデータが変更されるたびに変更を同期しようとします。ただし、接続された環境でも、接続が断続的になる問題が発生して、同期に失敗する場合があります。この場合、AppSheet は自動的に変更をキューに登録し、デフォルトで Delayed sync 動作になり、データの損失を防ぎます。RowNumber をキーとして使用している特殊なケースを除き、同期の再試行が繰り返されてもデータの重複や破損は発生しません。詳細については、キーとはをご覧ください。
オフラインでのコンテンツの表示
すべてのスプレッドシートやテーブルのデータはデバイスに自動的にコピーされるため、オフラインでも使用できます。ただし、画像やドキュメントはサイズが大きいため、デフォルトではデバイスにコピーされません。Offline Content Caching を有効にすると、画像とドキュメントをデバイスにコピーするよう AppSheet に指示できます。他のすべてのオフライン データ キャッシュと同様に、オンライン時にモバイル デバイスでアプリを最初に実行したときに、画像とドキュメントがデバイスにコピーされます。画像とドキュメントは、同期が発生すると必要に応じて更新されます。キャッシュの詳細については、データがキャッシュされる場所をご覧ください。
画像やドキュメントの数とサイズによっては、すべてのコンテンツがダウンロードされてデバイスに保存されるまでに数分かかる場合があります。クライアントで画像やドキュメントを表示しても、そのコンテンツがダウンロードされて保存されたとは限りません。初めてコンテンツをダウンロードするときは、デバイスをネットワークに接続し、アプリケーションを起動して、数分経過してから切断する必要があります。その後、オフラインにして、すべての画像とドキュメントがダウンロードされてデバイスに保存されているかどうかを確認します。保存されていない場合は、再接続し、十分な時間を置いて、画像とドキュメントをダウンロードして保存できるようにしてください。
画像やドキュメントといったコンテンツのオフラインでの表示は、PDF ファイルを扱うで説明されているように、その画像またはドキュメントへのリンクに相対パスが使用されている場合にのみ機能することに注意してください。
オフラインでの使用に関する考慮事項
次のデータ型については、下記のオフラインでの使用に関する考慮事項を確認してください。
地図
LatLong
入力でデバイスの GPS を利用できるため、この入力によってユーザーの現在位置を取得できます。ただし、アプリがオフラインの場合、地図表示で位置を示すことはできません。オフラインでの使用を目的に Google マップのデータをキャッシュに保存することは、Google 利用規約に違反するため、AppSheet ではできません。Google 独自のマップアプリでは、オフラインで使用するために地図領域をダウンロードすることが可能ですが、この機能は地図を使うサードパーティ アプリでは利用できません。
動画
Video
列データ型はオフラインでは利用できず、読み取り専用であり、(現在は)データ キャプチャをサポートしていません。ただし、このデータ型を使用して動画コンテンツを再生することはできます。Video
型は、MP4 動画の URL または YouTube の埋め込み URL(https://www.youtube.com/embed/{id}
の形式)をサポートしています。
音声ファイル
File
列データ型は、画像などのデータとは異なり、現時点ではローカルに保存されません。
オフラインでの起動
手軽に導入できる方法をお使いの場合は、ホーム画面のアイコンからアプリを起動することに慣れているでしょう。デフォルトでは、ホーム画面のアイコンからアプリを起動するには、モバイル デバイスがオンラインである必要があります。一度起動すれば、アプリはオフラインでも断続的な接続でも機能できます。
ただし、デバイスがオフラインのときにアプリを起動できるようにする場合は、[The app can start when offline] オプションを設定する必要があります。この設定は、デバイスにアプリをインストールする前に行う必要があります。アプリがすでにホーム画面にインストールされている場合は、ショートカットを削除し、オフライン オプションを有効にした後に再インストールする必要があります。それ以外の場合は、AppSheet アプリ自体から起動する必要があります。
長期間にわたるオフラインでの使用
接続のない完全にオフラインの状態で、長期間(数日や数週間)実行しないでください。これには、次の 2 つの理由があります。
- アプリ作成者がアプリ定義に変更を加えることがあり、その場合、ユーザーのアプリは最新の状態ではなくなります。
- 基盤となるデータが変更されている場合があります。オフラインのアプリで独自のデータ変更を行った場合、比較的長い期間を置いてから、最終的な同期によって古い更新が適用されるため、その間に他のユーザーが行った変更がオーバーライドされてしまいます。
ログイン状態でのオフライン
ログインを必要とするアプリの場合、ユーザーは認証の有効期限が切れたときに再度ログインを求められることがあります。これは、デバイスが接続されているときの同期時にのみ発生します。
オフラインのブラウザでの実行
お客様によってはウェブブラウザ(全画面または iframe)でアプリを実行することがあります。これは、モバイルアプリがサポートされていない Windows Phone などのモバイル プラットフォームで実行する場合に特に便利です。
AppSheet アプリケーションを最初に読み込むとき、ブラウザはオンラインである必要があります。一度アプリを読み込めば、デバイスがオフラインの場合でもネットワーク接続が断続的な場合でも、アプリを使用できます。ただし、オフラインでは画像とドキュメントのキャッシュは機能しません。オフラインでも、ページが閉じられたり取り出されたりしない限り、この方法で作業を続けることができます。フォーム内の画像やドキュメントを除くすべての種類のデータについて、保存された変更は、ページの再読み込みまたはブラウザの再起動後も保持されます。画像やドキュメントについては、ブラウザのタブを閉じる前に同期を実行する必要があります。そうしないと、取得された画像やドキュメントのコンテンツは失われます。