補足情報
単体テスト、スレッドセーフ、依存関係の管理など、重要な補足情報を以下に示します。
単体テスト
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%RENDERINGUsageStatsには、RENDERINGやSEARCHなどの各Featureに対応するNetworkStatsのリストが含まれます。各NetworkStatsエントリーには、sentBytes、receivedBytes、requestCounter、およびそれぞれの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 はサポートされていません。ただし、お客様ご自身でラッパーを実装することはできます。しかし、このようなタスクに対するサポートは提供していません。
7 日前の更新










