AppSheet で作成するモバイルアプリは、接続が不安定あるいは完全にオフラインの状況でもシームレスに動作するよう設計されています。そのため、アプリが使用するデータはすべて、モバイル デバイスのローカル キャッシュに保存されている必要があります。このことは、アプリを設計するうえで重要な検討項目です。
意図する機能を実現するためには、データセットはなるべく小さくするのが理想です。
実際の制約
AppSheet では巨大なデータセットを扱うアプリは構築しないようにしてください。「巨大」とはどのくらいでしょうか。AppSheet アプリでは、1 つのアプリにある全データの圧縮後のデータサイズの上限が 5 MB または 10 MB(デバイスによって異なる)となっています。圧縮後のデータサイズはそのデータに重複がどのくらい含まれているかによるため、何行あるいは何列分に相当するかを計算するのは困難です。たとえば、多くの空白セルが含まれた大きなスプレッドシートは、それよりも小さく空白セルのないスプレッドシートよりもおそらく圧縮率が高くなります。一般的に、シート内のセルの数は少ないほどよいと言えます。
画像やドキュメントなどの外部データは、このデータサイズの制約対象にはなりません。多くの行を持つアプリケーションや画像を各行に含めることはもちろん可能です。画像とドキュメントは、デフォルトではデバイスのローカル キャッシュに保存されません。オフライン アクセスのために画像をキャッシュに保存するオプションを有効にした場合は、デバイスの別の場所(同じサイズ制約がかからない場所)に保存されます。
スプレッドシートに関する制約
パフォーマンスやファイルサイズ、数式や計算の数に基づいて、スプレッドシート プロバイダ独自の制約が設けられています。アプリを構築する際はこのことを念頭に置いてください。Excel のスプレッドシートで作業していてパソコンの CPU 使用率が 100% になり、数式が原因で更新に 1 分以上かかった経験がおありの方は、構築したアプリがそのスプレッドシートに接続すれば同じような動作になることがわかるでしょう。
各プロバイダの制約については、以下のリンク先の記事をご覧ください。
- Google ドライブ: Google ドライブに保管可能なファイル
- Excel と Office 365: Excel の仕様と制限
- Smartsheet: シートサイズとファイルサイズの上限
- Box: アップロードできるファイルサイズの上限*
- Dropbox: Dropbox のファイルのサイズ制限は?*
* Excel ファイルを使ってアプリを構築する際には、Excel の制約がクラウド プロバイダ全体に適用されます。
パフォーマンス上の懸念事項
実際には、定められた上限に達するはるか前にシステムのパフォーマンスが低下するため、これらの制約にはあまり意味がありません。パフォーマンス低下の要因は 3 つあります。
- スローな反復型開発 -- アプリとデータの整合性を保つために、アプリの開発中にデータセットが繰り返し確認されます。
- 長い同期時間 -- デバイスとバックエンド間でデータが同期される際、データセットのサイズによって遅延が生じます。
- 重いアプリ動作 -- データセットが大きいことにより、スクロールや検索などの操作においてアプリ自体の動作が重くなる可能性があります。