# パフォーマンス

Adaloは、強力なビルダー、豊富なコンポーネントマーケット、そしてサポート体制の整ったコミュニティを活用して、モバイルアプリの構築とローンチを複雑なプロセスから簡素化します。ただし、ご自身のアプリは依然として複雑なシステムであることを覚えておくことが重要です。基本的なAdaloアプリでも、データベース、多数のコンポーネントとロジックを備えた複数の画面、Google Maps、Zapier、DreamFactoryなどのサードパーティーサービスとの統合が必要です。すべてが正常に機能するためには、データベース、ページのレンダリング、ネットワークの相互作用がすべてシームレスに連携する必要があります。

さらに、アプリがデータベースにクエリを実行したり、複雑なロジックを実行したり、サードパーティーネットワークと通信したりするたびに、アプリのパフォーマンスが低下します。したがって、アプリを構築する際に常にパフォーマンスを考慮することが重要であり、このセクションではアプリを高速化する方法についてのガイダンスを提供します。

### スコアとしてのパフォーマンスを考える

GTMetrixやLighthouseなどのWebアプリケーションパフォーマンスツールは、Webアプリケーションのパフォーマンスに数値スコアを割り当てます。スコアは0が完全な失敗であり、100が完璧であることを示します。実際、アプリケーションが100のスコアを達成することは非常にまれですが、それが開発者が試みるのを止めるべきではありません！

モバイルアプリのパフォーマンスについても同様の考え方で考え、特定のアプリケーションの変更や追加がパフォーマンスにどのように影響するかを定期的に考えることをお勧めします。画像が適切に最適化されているか、画面上のロジックを簡素化できるか、複雑な画面を複数の画面に分割すべきかなど、自分に問いかけてみてください。これらの質問にどのように対応するかによって、パフォーマンススコアが上下するため、賢明に選択してください！

### 画像の最適化

この考え方の最も理解しやすい例は、ロゴや写真などの画像に関連しています。さまざまなオンラインリソースによると、現在の平均LTE接続速度は20-30 Mbpsです。安全を考慮して、このうち低い数値を採用しましょう。これは、非圧縮の1 MBの画像をダウンロードするのに0.4秒かかることを意味します。それはそれほど多く聞こえないかもしれませんが、もしアプリに1 MBのサイズの画像が10枚含まれる画像ギャラリーがあった場合はどうでしょうか？その場合、ユーザーはこれらの画像をダウンロードするのに4秒も待たなければなりません。

Adaloは、コレクションからアップロードされた画像を表示するためにImgixというサービスを使用しています。これにより、以下に示すようにURLオプションを使用して画像を表示できます：

<figure><img src="/files/vgGx9TBVlW00V0MTM3Sr" alt="" width="375"><figcaption></figcaption></figure>

[Imgix APIドキュメント](https://docs.imgix.com/en-US/apis/rendering/overview)を使用すると、URLの末尾にこれらのパラメータを追加して画像を調整できます。[出力品質](https://docs.imgix.com/en-US/apis/rendering/format/output-quality)のパラメーター "q" を使用することで、ファイルサイズに関して大きな違いを生むことができます。\
\
以下は、iPhone 16 Proで撮影された画像の例です。 [パラメータなし](https://adalo-uploads.imgix.net/89b60d16f864d2dee947e2363340be314eb6c40a27787405fd5411b5d73e2f22.jpg) - 6.7 MB\
[?q=30を使用](https://adalo-uploads.imgix.net/89b60d16f864d2dee947e2363340be314eb6c40a27787405fd5411b5d73e2f22.jpg?q=30) - 2.1 MB

以下はビルダーでの表示方法です:

<figure><img src="/files/JLKtpMcQ4Tzct245QliN" alt="" width="375"><figcaption></figcaption></figure>

また、<https://compressor.io/>のような画像圧縮ソフトウェアやサービスを使用して、これらの画像をアプリに追加する前に圧縮することもできます。これにより、1MBの画像を40 kBまでサイズを縮小できます。同じ10枚の画像でも、ダウンロードにかかる時間はわずか0.16秒になります！

{% hint style="info" %}
異なるファイルサイズや接続速度に基づいてファイルのダウンロード時間を見積もるために、<https://www.omnicalculator.com/other/download-time>などのオンラインツールを使用できます。
{% endhint %}

<https://compressor.io/>は、あなたの代わりに効率的に画像を圧縮する多くの無料オンラインサービスの1つに過ぎません。そして、そうしたサービスに画像をアップロードすることに躊躇している場合でも、MacOS Previewのような単純なグラフィック編集ソフトウェアでも圧縮機能が提供されていることを覚えておいてください。

### コンポーネントの選択

Adaloは、多数のネイティブ（Adaloおよび広範なReactコミュニティによって構築された）およびサードパーティ（Makersによって構築された）コンポーネントをサポートしています。私たちの総合的な目標は、Makersが自分たちが望む方法でアプリをデザインするための最大限の柔軟性を提供することです。ただし、あるコンポーネントが他よりもパフォーマンスが優れていることは疑いの余地がありません。その代表例がリストです。

Adaloは、シンプルリスト、カードリスト、イメージリスト、アバターリスト、水平カードリスト、水平チップリスト、カスタムリスト、テーブルを含む8つの異なるリストタイプをネイティブでサポートしています。これらのリストテンプレートは、ビルダーのコンポーネントタブの下にあります。

<figure><img src="/files/Xfwt3z58iZuDkTnkiROP" alt="" width="216"><figcaption><p>Adaloのリストタイプ</p></figcaption></figure>

カスタムリストは、他のリストタイプがあなたのニーズを満たすことができない場合にのみ使用することを意図しており、私たちの包括的なベンチマークによると、その使用はパフォーマンスに影響を及ぼす可能性があります。したがって、カスタムリストを選択する前に、他のリストタイプで要件を満たすことが合理的に可能かどうかを必ず確認することが\_重要\_です！

#### レコード数の制限

パフォーマンスの問題のもう1つの一般的な原因は、レコードの過剰な取得に関連しています。Adaloビルダーには、取得されるレコード数を調整するためのいくつかのオプションが含まれており（スクリーンショットを参照）、取得されるアイテムの最大数を設定するオプションもあります。たとえば、画面に最新の10個の製品のみを表示する場合は、製品カタログの作成日に従ってソートし、アイテムの最大数フィールドに10を割り当ててください！

<figure><img src="/files/JvIM6cidBeXTSLGPeuVk" alt=""><figcaption><p>Managing record retrieval count</p></figcaption></figure>

この特定のトピックについては多くのことが言えると思います。今後数週間でこのセクションに戻り、さらに詳しく説明していくことになるでしょう。

#### リスト内の制限計算

計算が実行されるたびに、サーバーとアプリが動作するデバイスに負荷（小さいか大きいかに関わらず）がかかります。20個のアイテムからなるリストがある場合、そのリスト内の各アイテムは計算を行わなければならず、サーバーとデバイスは20個の異なる計算を処理する必要があります。リストが接続されているコレクションからプロパティの合計または合計を取得することが推奨されています。例えば、コメント数を持つ投稿のリストがある場合、投稿にはコメントの数値プロパティがあります。新しいコメントが投稿されると、投稿内の数値プロパティを更新できます。これにより、投稿をスクロールする際に、毎回新しい投稿が読み込まれるたびに計算を行うのではなく、コメント数のプロパティが表示されます。

### 結論

Adaloチームはアプリのパフォーマンスを向上させるために昼夜を問わず取り組んでおり、インフラストラクチャとソフトウェアの大幅な改善を行っています。しかし、最終的にはこれはチームの取り組みです！アプリのパフォーマンスをスコアとして考え、新機能がそのスコアを上げるか下げるかを自問してください。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.adalo.com/ja/performance.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
