ガイド変更履歴HERE SDK API references
ガイド

補足情報

単体テスト、スレッドセーフ、依存関係の管理など、重要な補足情報を以下に示します。

単体テスト

HERE SDKを使用するアプリロジックの単体テストを簡単に記述できます。以下に、XCTestを使用した例を示します。

func testAngle() throws {
    // Static creation of angle object.
    let angle = Angle.fromRadians(angle: 0.174533)

    let angleInDegrees = angle.degrees
    // Round the test angle to 1 significant decimal.
    let roundedAngleInDegrees = round(angleInDegrees)

    let expectedAngleInDegrees: Double = 10
    XCTAssertEqual(roundedAngleInDegrees, expectedAngleInDegrees, "This is a message for a failed test.")
}

単体テストを記述する際に、HERE SDKを初期化する必要はありません。

「UnitTesting」サンプルアプリで、その他のユースケースの例を確認してください。

HERE SDKの使用状況統計情報を追跡する

HERE SDKは、UsageStatsを使用してネットワークの使用状況を監視する方法を提供します。このクラスは、アップロードおよびダウンロードされたデータに関する統計情報を収集します。sdkNativeEngine.getSdkUsageStats()sdkNativeEngine.enableUsageStats()を使用してネットワークの統計情報を取得します。カウンターをリセットするには、sdkNativeEngine.clearPersistentUsageStats()sdkNativeEngine.clearUsageStatsCache()を使用します。トラッキングを有効化するには、次を使用します。

SDKNativeEngine.sharedInstance?.enableUsageStats(enabled: true)

有効化すると、HERE SDKは異なるモジュール間でネットワーク使用状況を追跡します。追跡したデータを取得して記録するには、次のメソッドを使用します。

func logUsageStats() {
    let currentUsageStats: [UsageStats] = SDKNativeEngine.sharedInstance!.sdkUsageStats
    for usageStat in currentUsageStats {
        print("UsageStats: Network Usage for feature: \(usageStat.feature)")
        for currentNetworkUsage in usageStat.networkStats {
            print("UsageStats: Bytes sent: \(currentNetworkUsage.sentBytes)")
            print("UsageStats: Bytes received: \(currentNetworkUsage.receivedBytes)")
            print("UsageStats: Network requests sent: \(currentNetworkUsage.requestCounter)")
            print("UsageStats: For method: \(currentNetworkUsage.methodCall)")
        }
    }
}

使用されたある機能の出力例は次のようになる場合があります。この場合、renderingが使用されており、これはrenderingマップデータレイヤーに関連しています。

Network Usage for feature: rendering
Bytes sent: 12843
Bytes received: 257590
Network requests sent: 10
For method MapContent%RENDERING

UsageStatsには、RENDERINGSEARCHなどの各Featureに対応するNetworkStatsのリストが含まれます。各NetworkStatsエントリーには、sentBytesreceivedBytesrequestCounter、およびそれぞれのFeatureで対応するmethodCallが含まれます。UsageStatsは、現在のアプリセッションでのみ保持されます。

他の設定と同様に、enableUsageStats() の呼び出しは HERE SDK によって保持されません。そのため、UsageStats が実行時以前に有効になっており、ネットワーク統計の追跡を継続する場合は、HERE SDK を初期化する前に毎回これを有効にします。また、収集されたデータは、デバイス上で実行されたアプリの HERE SDK の使用量のみを集計していることに注意してください。

スレッド セーフ

HERE SDK はスレッド セーフであることは保証されておらず、メイン スレッドから SDK を呼び出す必要があります。内部的には、HERE SDK はほとんどの作業をバックグラウンド スレッドにオフロードしますが、コードへのコールバックは常にメイン スレッドで行われます。一般的に、スレッド セーフの確保は呼び出し元の責任です。たとえば、コードが同期されていない限り、さまざまなスレッドで 1 つのエンジンを再利用することは安全ではありません。

依存関係の管理

現在、CocoaPods を使用した依存関係管理はサポートされていません。つまり、HERE SDKフレームワークは、「利用開始」セクションで説明されているように、アプリケーションプロジェクトにローカルにコピーする必要があります。

HERE SDK を他のフレームワークと使用する

HERE SDK は他のフレームワークと併用できます。たとえば、希望する場合はオープン ストリート マップと SearchEngine を結合できます。

  • Xamarin:HERE SDK は Xamarin をサポートしていませんが、HERE SDK が提供する公開 API に Xamarin のラッパーを実装できます。HERE SDK に変更を加えて Xamarin 向けの関連するテスト ツールをサポートするお約束はできません。

  • React Native:React Native はサポートされていません。ただし、お客様ご自身でラッパーを実装することはできます。しかし、このようなタスクに対するサポートは提供していません。