Search SDK for iOS
現在のバージョン:v2.7.0
- アプリに事前構築されたUIコンポーネントを追加
- 名前、カテゴリー、または座標で場所を検索
- お気に入りの場所を保存
- 検索履歴にアクセス
アプリでSearch SDKをMapbox MapsやNavigation SDKと共に使用している場合、SDK全体が相互運用性のために共通のSDKの同じバージョンを持っている必要があります。各Mapbox SDKで使用されている共通SDKのバージョンは、GitHubの対応するリリースノートで提供されています:
Mapbox Search SDK for iOSは、アプリに検索機能を統合するための必要なツールを提供します。このSDKには、個別に使用したり組み合わせて使用したりできる複数のコンポーネントが用意されており、カスタマイズされたエクスペリエンスを可能にします。数分でアプリに事前構築されたユーザーインターフェースを追加することができます。
Search SDKの構造
Search SDKは2つのフレームワークで構成されています:Search Core(MapboxSearch
)とSearch UI SDK(MapboxSearchUI
)。
Search Core
Search Coreには、構成、送信、解析がスムーズな検索リクエストのプロセスを効率化するクラスが含まれています。デバイスとシームレスに連携して、その位置情報と言語設定を取得します。さらに、検索結果をデバイスに直接キャッシュし、Search UI SDKの基盤として機能します。
Search UI SDK
Search UI SDKはSearch Coreを拡張し、アプリケーションに事前設計された検索UIコンポーネントを提供します。これらのコンポーネントは、スタイルの調整および結果のカスタマイズが可能です。
サポートされる検索パターン
Search SDKには、住所、場所、POIを検索するためのさまざまなクラスが用意されています。
テキストによる検索
PlaceAutocomplete
クラスを使用すると、場所の場所名や住所を入力して場所の位置を取得できます。これはフォワードジオコーディングとしても知られています。たとえば、「リンカーン記念館」と入力し、そのクエリに一致する場所の地理的位置(-77.050,38.889
)を取得できます。
カテゴリーによる検索
Discover
クラスを使用すると、カテゴリー(たとえば「レストラン」)を選択して、そのカテゴリーに属する興味のある場所(POI)のリストを取得できます。たとえば、劇場から徒歩圏内のレストランを地図上に表示したい場合、restaurants
カテゴリーを使用してカテゴリー検索を行うことができます。
座標による検索(リバースジオコーディング)
PlaceAutocomplete
クラスを使用してリバースジオコーディングも行うことができます。リバースジオコーディングを使用すると、地理座標を指定することで場所の名前や住所を取得できます。たとえば、-77.050, 38.889
を入力すると、2 Lincoln Memorial Circle NW
を取得できます。
検索履歴とお気に入り
Search SDKは、ユーザーの過去の検索データを活用してユーザーエクスペリエンスを向上させるように設計されています。ユーザーが以前にアプリ内で検索を行った場合、SDKは自動的に過去の検索履歴から結果を提案します。さらに、ユーザーがお気に入りの検索結果のリストを持っている場合、SDKは最近の結果だけでなく、現在のクエリに対応するお気に入りも含めて提案します。
履歴
履歴には、デバイス上でユーザーが選択した最近の検索結果が含まれます。ユーザーが結果を選択するたびに、Search SDKは自動的にその結果をユーザーの履歴に追加します。
Search UI SDKは、履歴を次のように活用します:
- ユーザーが空の検索バーをクリックすると、SDKは最近の検索結果を逆順に表示します。
- ユーザーがクエリを入力し始めると、SDKは履歴を使用してドロップダウンメニューの候補を入力します。
さらに、ServiceProvider
(ServiceProvider.shared.localHistoryProvider
)を介して、Search Coreを使用してデバイスの検索履歴にアクセスすることもできます。
お気に入り
「お気に入り」とは、ユーザーが将来の使用のために故意に保存した以前に実行された検索のコレクションを指します。
Search UI SDKは、お気に入りを次の2つの異なる方法で取り入れています:
- ユーザーは、検索結果内の星アイコンをクリックすることでお気に入りメニューをトリガーし、選択した場所を保存できるようになります。
- ユーザーは、「お気に入り」コンポーネントを介して保存されたお気に入りを管理することもできます。この機能を使用すると、ユーザーは保存されたお気に入りを削除または名前を変更することができます。
開発者は、Search Coreを使用してデバイスのお気に入りを取得することもできます。これは、ServiceProvider
クラスを使用して、特にServiceProvider
(ServiceProvider.shared.localFavoritesProvider
)を使用することで実現できます。
SDKを使用すべき理由
もし検索アプリケーションがモバイルデバイス(iOSおよびAndroid)向けである場合、Search SDKを使用することを強くお勧めします。Search SDKを使用することで、以下の利点を享受することができます:
コードの少なさ
開発者はわずかなコード行でSDKを素早く開始できます。これにより、コードが読みやすく、保守しやすく、エラーに対する脆弱性が低くなります。
ドロップインUIサポート
カスタムUIが不要で、すぐに開発を開始できます。Search SDKは、既存のコンポーネントやナビゲーションフローに大幅なバインドを必要としない、簡単に統合できるUIを提供します。
安定したSDK API
私たちの目標は、使用事例に対して一貫したインターフェースをサポートすることであり、基礎となる実装が進化しても、SDKバージョンを更新すると、アプリケーションやその統合コードを変更することなく問題を解決できるようになります。
エラーや落とし穴から身を守る
事前に組み込まれた統合例を使用することで、実験のスピードを上げ、非標準のAPI使用に伴う一般的な問題を回避することができます。
必要条件
Mapbox Search SDK for iOSはiOS 11.0とXcode 11.3で使用できます。
価格設定
Search SDKの使用料金は、使用する特定のMapbox検索サービスによって決まります。
Search SDKの基礎機能には複数のMapboxサービスが寄与しており、これらのサービスとそれに対応するSDKモジュールは次のとおりです:
機能 | SDKクラス | APIエンドポイント | 価格設定 |
---|---|---|---|
テキストによる検索 | PlaceAutocomplete(TEXT) | /search/v1/suggest | Search Box API(セッション) |
カテゴリーによる検索 | Discover() | /search/v1/category | Search Box API(リクエスト) |
座標による検索 | PlaceAutocomplete(COORDINATE) | /search/v1/reverse | Search Box API(リクエスト) |
住所フォームの記入 | AddressAutofill() | /autofill/v1 | Address Auto Fill(セッション) |