14

私はセットアップを持っており、 と を使用しSearchViewて疎結合のアーキテクチャを持っています。RetrofitOtto

Android の検索、または一般的なモバイル アプリケーションのベスト プラクティスとは何なのか疑問に思っています (これは、iOS にも同様に適用できることを意味します)。

具体的には、AutoCompleteTextViewで提案を処理するために を使用してSearchViewおり、データは から直接取得されますAPISearchViewユーザーがテキストを変更するたびに API 呼び出しが開始されるため、これがベスト プラクティスであるとは思いません。

SQLite に Cache を保存し、そこから結果を ping することを考えていますが、ユーザーが最も即時のデータを必要とする場合はどうすればよいでしょうか? それをどのように処理しますか?それはどのようなパターンを採用しますか?

Android での検索に対する最適なアーキテクチャまたはアプローチについてご意見をお聞かせください。

4

3 に答える 3

1
  • まず、検索属性であるインデックスとして列を作成する必要があります。
  • その列のみをsqliteデータベースに保存する必要があります。ユーザーが検索を行うときに、テーブルからオプションを選択するために使用されます。
  • 次に、検索バーで選択した単語の後に、検索結果の api を呼び出します。
于 2015-07-20T13:28:36.470 に答える
0

したがって、この質問に十分な方法で答えるには、ここでの他の回答に満足できなかったため、この問題で考慮すべき手順がさらにいくつかあります。

まず、この問題にどのように取り組むかについて、いくつか質問する必要があります。

  • オートコンプリートはありますか?
  • 捜索範囲は?
  • キャッシングはありますか?

そして、さらに多くの質問。

おそらく、最初にカスタム アダプターを構築して検索でのクエリを処理し、次にユーザーのクエリに積極的なキャッシュを実装します。これは、ユーザーのクエリが非常に重要であるという意味で重要です。Autocompleteオートコンプリートを実装し、テキストが変更されるたびにサーバーに ping を実行させるには非常にコストがかかるため、キャッシュされた結果のみを使用することはおそらく理にかなっています。

SQLiteキャッシュは、Androidのヘルパーを使用して実現できます。これはコストがかかる可能性がありますが、単純なクエリ オブジェクトを扱っています (これは API のケースであるため、オブジェクトはメモリまたはバイト サイズが高価である必要があります)。

于 2015-09-26T22:19:29.620 に答える