利用開始
このガイドでは、 HERE SDK for Flutter を使用してアプリを構築するための最初のステップについて説明します。 HERE SDK for Flutter は、 HERE platform からモバイルアプリケーションに最適な最新のアセットを提供できるようにカスタマイズされています。
作業を開始する前に、以下の内容を確認してください。
情報
開発を開始するには、HERE SDK パッケージを取得する必要があります。 内容は次のとおりです。
- HERE SDK プラグイン フォルダ。 これには、 HERE SDK バイナリが含まれています。
- 複数のドキュメントアセットとサンプルアプリ。
- アプリ に含める必要がある here_notice ファイル。オープンソースに関する通知を参照してください。
HERE SDK パッケージを取得するには、次の 2 つの方法があります。
次の手順では、計画を選択します。
HERE SDK の使用を自由に開始できます。 利用可能な基本プランの概要については、 HERE の [ 基本プランの価格設定 ] ページを参照してください。 プランの詳細 については、価格設定に関する FAQ を参照してください。
ご利用のプランに応じ て、 HERE SDK は、 1 か月あたりのトランザクション数および月間アクティブユーザー (MAU) などのその他のパラメータに基づいて請求されます。
詳細については、 商用利用規約を参照してください。
資格情報を入手してください
HERE SDK でアプリ を認証するには、次の 2 つの文字列が必要です。
- アクセスキー ID (
access_key_id
):アカウントの一意の ID 。 - アクセスキーシークレット (
access_key_secret
): 秘密キー。作成時に 1 回だけ表示されます。 ページから移動する前に、メモしておいてください。
HERE SDK を使用するために、他の資格情報 またはトークンは必要ありません。
You can register and manage your app as described in the Identity & Access Management guide. You can acquire credentials for you plan either from here-tech.skawa.fun or on the HERE platform portal:
- On here-tech.skawa.fun, after creating your project, generate an app to obtain an access key ID and access key secret. You can either choose an existing project or Select a plan for a new project. Then scroll down to the HERE SDK product family and click キーの作成.
- または、HERE Platform Portalでアプリのページに移動し、新しいアプリを登録します。登録が完了すると 、資格情報 を作成できます。
資格情報は、 GitHub にあるすべてのサンプルアプリで動作します。 Navigate Edition の 場合、 HERE の担当者に連絡して、一連の評価資格情報 を生成する必要があります。
資格情報 を取得すると、 HERE .client.id または アプリ ID も 表示されます。 これらの ID は、 HERE SDK の公開 API では必要ありませんが、 HERE サポートチームに連絡する場合に役立ちます。
アプリ 資格情報 およびプロジェクトの範囲
複数のアプリに同じ資格情報を使用する予定の場合は 、システム内のアプリを差別化する範囲を設定する必要があります。 資格情報を単一のアプリにのみ使用する場合は、この操作は不要です。
サンプルアプリを試してください
利用開始をする最も簡単な方法は、 GitHub の HERE SDK で利用できるサンプルプロジェクトのいずれかを試すことです。
任意の例を選択し、サンプルアプリのフォルダー内で main.dart
を開いて資格情報 ( キー / シークレット ) を設定します。
次に、 HERE SDK プラグインフォルダを追加します。
- ダウンロードした HERE SDK for Flutter パッケージを解凍します。 このフォルダーには、このドキュメントを含むさまざまなファイルが含まれています。
- 内部には、 HERE SDK for Flutter プラグインを含む TAR ファイルがあります。
- TAR ファイルを展開し、フォルダの名前を 'here_sdk' に変更して、サンプルアプリのディレクトリ内のフォルダ
plugins
に配置します。
最後に、デバイスが接続されているか、またはエミュレータ( Android )またはシミュレータ( iOS )が実行されていることを確認します。 flutter run
ターミナルの例のディレクトリから実行するか、または IDE 内からアプリを実行します。
サンプルのコードを自由に試してください。 以下のガイドを参照して、 HERE SDK を使用してアプリをビルドする方法についての詳細な概要を参照することもできます。
参照アプリケーションを試してください
HERE SDK for Flutter (Navigate Edition)の参照アプリケーションは 、 GitHubで利用できます。 iOS および Android デバイスを対象とした複雑でリリース準備が整ったプロジェクトがどのようなものかを示しています。これを、独自の HERE SDK ベースのプロジェクトのインスピレーションの源として、部分的にまたは全体として使用できます。アプリ の多くの部分が Explore Edition と重複していますが、ガイダンスは Navigate Edition が必要です。 現時点では、 HERE SDK 4.14.0.0 のみがサポートされています。
HERE SDK リファレンスアプリケーションの Flutter 用のスクリーンショット。 利用可能なアセットおよびコードスニペットの概要については、 このリファレンスアプリ ガイドを参照してください。
新しい Fluter プロジェクトを作成し、 HERE マップを表示します
最初のステップバイステップの例として、 "Hello Map" Flutterアプリケーションで、マップ上に -yes と表示するアプリケーションを開発します。HERE SDK を既存のアプリケーションに統合する場合は、この手順を省略できます。 特定の SDK コードは、ここに含まれていません。
Flutterを初めて使用する場合は、 flutter.de v のガイドに従って、最初のステップを実行してください。
このステップバイステップの指示に従うには、高度なFlutter、 Android 、 iOS の操作環境は必要ありません。
このガイドでは、Android StudioバージョンのDolphin | 2021.3.1パッチ1とXcodeバージョン14.2を使用しました。 さらに、次のものを使用しています。
すべてのサンプルアプリは、 Fluter 3.10.5 および DART 3.0.5 でもテストされています。
新しいバージョンも動作する可能性がありますが、動作保証はありません。 Flutter にバンドルされている DART バージョンを使用することをお勧めします。
注
このガイドでは、最小でサポートされているフラッタバージョン 3.7. 12 よりも古いバージョンのフラッターからアプリを移行する場合に必要となる変更については説明していません。 このガイドのすべてのサンプルアプリは、 Flutter V2 プラグインアーキテクチャに準拠しています。 デフォルトでは、 Android Studio で作成された新しいアプリプロジェクトは、フラッタバージョン 1.12 以降を使用する場合、 V2 プラグインで使用できる状態になっています。
ステップ 1 : フラッタプロジェクトを作成します
新しい HERE SDK for Flutter プロジェクトを作成するには、次の手順に従います。
まず、新しい Flutter プロジェクトを作成します。このプロジェクトの名前は "hello_map" です。 新しいFlutter Projectを任意の Android および iOS デバイス で実行して、Flutter SDK が正しく設定されていることを確認してください。 問題が解決しない場合は、Flutterのドキュメントを参照してください。
注
両方のプラットフォームをサポートしない場合は、 iOS または Android の手順をスキップできます。 HERE SDK for Flutter は、 Web およびデスクトップアプリをサポートしていません。
ステップ 2 : HERE SDK をアプリに統合します
すべてが正しく設定されていることを確認したら、ただちに HERE SDK for Flutter を統合してください。
注
HERE SDK は別のダウンロードとしてのみ利用できます。 MAVEN/Grade, CocoaPods 、または pub.de V 経由の Artifactory サポートはまだ利用できません。 今後のリリースでは、 SDK の依存関係管理を追加する予定です。
ダウンロードした HERE SDK for Flutter パッケージを解凍します。 このパッケージには、このドキュメントを含むさまざまなファイルが含まれています。
- ライセンスファイル。
- 開発者ガイド。
- API リファレンス。
- リリース ノート。
- HERE SDK for Flutter プラグインを含む TAR ファイル。 ファイルの名前は次のようになります :
here_sdk-<edition>-<version>.release.tar.gz
TAR ファイルを解凍し、フォルダの名前をhere_sdk
に変更 します。 プラグインフォルダーの内容は次のようになります。
スクリーンショット: HERE SDK プラグインフォルダの内容。 次に、プロジェクト内にフォルダーplugins
を作成し、名前を変更したプラグインフォルダーをこの新しいフォルダーにコピーします。 このオプションを使用すると、プラグインフォルダーの内容が hello_map/plugins/here_sdk
に含まれます。
Flutter Projectのファイルpubspec.yaml
を開き 、上からのパスをセクションdependencies
に追加します。 追加先が不明な場合は、次のようになります。
dependencies:
flutter:
sdk: flutter
cupertino_icons: ^0.1.3
# The following adds the HERE SDK for Flutter plugin folder to your application.
here_sdk:
path: plugins/here_sdk
もちろん、必要に応じてプラグインフォルダーの名前を変更し、パスを調整できます。
パスが正しく指定されていれば、ターミナルからflutter pub get
を実行でき、 HERE SDK がプロジェクトツリーに表示されます。 たとえば、 Android Studio を使用している場合は、External Libraries -> Flutter Pluginsの下に表示されます。
flutter pub get
を実行 (または Android Studio またはその他の IDE でそれぞれの Pub Get ボタンをクリック ) すると、 iOS 用の新しい Podfile が作成されます。 hello_map/ios/Podfile
を開き、プラットフォームを、サポートされている最小の iOS バージョンに設定します。
プロジェクトのグローバルプラットフォーム を定義するには、次の行のコメントを解除します。
platform :ios, '12.4'
次に、 Xcode を使用してhello_map/ios/Runner.xcodeproj
を開き、展開ターゲットを同じ iOS バージョンに設定します( Xcode を使用: [ General ] -> [ Deployment Info ] -> [ Target] を選択します ) 。 この手順は、リリースのために、後でターミナルからflutter build ios
を使用してアプリ をビルドする場合に必要です。
サポートされている Android SDK の最小バージョンを調整してください。 /hello_map/android/app/build.gradle
を開き、 minSdkVersion
を次のように変更します。
minSdkVersion 21
ステップ 3 : HERE SDK の初期化
HERE SDK は自動的には初期化されません。 代わりに、 HERE SDK を初期化する時点を自由に決定できます。 初期化はメインスレッドで同期的に行われ、約 100 ミリ秒かかります。
注
HERE SDK が無効であっても、資格情報の初期化に成功します。 資格情報が有効かどうかを確認するには、フィーチャエンジンを試すことをお勧めします。 資格情報が無効な場合、専用の 列挙型 (enum) 値エラーが発生します。 一部の機能では、他の機能よりも多くの権限が必要になる場合があります たとえば、 Explore Edition 用に取得した資格情報をOfflineSearchEngine と併用すると、Explore Edition のサブセットに含まれないエラーが発生します。
HERE SDK の機能を使用する前に、次のメソッドを実行して HERE SDK を初期化します。
void _initializeHERESDK() async {
SdkContext.init(IsolateOrigin.main);
String accessKeyId = "YOUR_ACCESS_KEY_ID";
String accessKeySecret = "YOUR_ACCESS_KEY_SECRET";
SDKOptions sdkOptions = SDKOptions.withAccessKeySecret(accessKeyId, accessKeySecret);
try {
await SDKNativeEngine.makeSharedInstance(sdkOptions);
} on InstantiationException {
throw Exception("Failed to initialize the HERE SDK.");
}
}
キーとシークレットの正しい資格情報を入力してください。 を呼び出すことで、 makeSharedInstance()
HERE SDK を使用するために必要なものをすべて初期化できます。 HERE SDK のコアクラスが呼び出され SDKNativeEngine
ます。 ボンネットの下では、このインスタンスは HERE SDK によって提供される他のエンジンによって使用されます。
メインスレッドでこのコードを呼び出してください。
注
4.12.1.0 よりも前の古い HERE SDK バージョンから移行する場合は、ファイルAndroidManifest
および ファイルplist
から資格情報 タグ ( 存在する場合 ) も削除してください。
HERE SDK では、 SdkContext
を使用してネイティブライブラリを初期化する必要があります。この処理は、 アプリ ウィジェット を開始する前に行う必要があります。 以下に、レイアウトから MapView
にアクセスする前に、ウィジェット のmain()
メソッドの initializeHERESDK()
を呼び出す例を示します。
initializeHERESDK()
と同様に、 HERE SDK を廃棄してリソースを解放することもできます。
void _disposeHERESDK() async {
await SDKNativeEngine.sharedInstance?.dispose();
SdkContext.release();
}
ステートフル ウィジェットのオーバーライドされた メソッドdispose()
でdisposeHERESDK()
を呼び出すことができます。
情報
ヒント : 「主な概念 」セクションでは、 HERE SDK を初期化するためのその他の方法を見つけることができます。
ステップ 4 : HERE マップを表示します
HERE マップ ビューの表示方法については、以下を参照してください。 ファイルmain.dart
からすべてのコードを削除し、次のコードで置き換えます。
import 'package:flutter/material.dart';
import 'package:here_sdk/core.dart';
import 'package:here_sdk/core.engine.dart';
import 'package:here_sdk/core.errors.dart';
import 'package:here_sdk/mapview.dart';
void main() async {
_initializeHERESDK();
runApp(MyApp());
}
void _initializeHERESDK() async {
SdkContext.init(IsolateOrigin.main);
String accessKeyId = "YOUR_ACCESS_KEY_ID";
String accessKeySecret = "YOUR_ACCESS_KEY_SECRET";
SDKOptions sdkOptions = SDKOptions.withAccessKeySecret(accessKeyId, accessKeySecret);
try {
await SDKNativeEngine.makeSharedInstance(sdkOptions);
} on InstantiationException {
throw Exception("Failed to initialize the HERE SDK.");
}
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'HERE SDK for Flutter - Hello Map!',
home: HereMap(onMapCreated: _onMapCreated),
);
}
void _onMapCreated(HereMapController hereMapController) {
hereMapController.mapScene.loadSceneForMapScheme(MapScheme.normalDay, (MapError? error) {
if (error != null) {
print('Map scene not loaded. MapError: ${error.toString()}');
return;
}
const double distanceToEarthInMeters = 8000;
MapMeasure mapMeasureZoom = MapMeasure(MapMeasureKind.distance, distanceToEarthInMeters);
hereMapController.camera.lookAtPointWithMeasure(GeoCoordinates(52.530932, 13.384915), mapMeasureZoom);
});
}
}
注
Nullの安全性は、デフォルトでサポートされています Dart ファイル// @dart=2.9
の先頭に次のコメントを追加することで、オプションで無効にすることができます。
HereMap
はすでにステートフルウィジェットとして実装されているため、アプリの home
として直接設定できます。 HereMapController
インスタンスが作成されると、プライベート _onMapCreated
コールバックによって通知されます。 HereMapController
を使用すると、マップを操作できます。
マップ上にベクタータイルを表示するには、まずマップ スキーム を読み込む必要があります。 ここでMapScheme.normalDay
を読み込みます 。 演習として、上記のマップ スキーム を次のように置き換えることができます。MapScheme.satellite
。 何を手に入れますか? 通常 の夜間 の設定など、他のマップ設定も試してみてください。
マップ上のビューは 、オブジェクトcamera
を介して定義できます。 上の例では、ドイツのベルリンにある場所を示しています。
一般的に、シーンがロードされるまでマップ操作を待機することをお勧めします。 たとえば、カメラ操作はシーンがロードされるまでキューに入れられますが、他の操作はマップ シーンなしでは影響を受けません。
さらに、 SDKNativeEngine.sharedInstance?.dispose()
および SdkContext.release()
を呼び出してアプリ から移動する場合は、リソースを解放することをお勧めします。 HERE SDK が自動的に初期化されると、が暗黙的に作成され、設定されます。 SDKNativeEngine
これは 、 ステートフル ウィジェット のオーバーライドされたメソッドdispose()
で行うことができます。 簡単にするために、この操作は上記の例では省略されていますが、 GitHub で利用可能な他のサンプルアプリで確認できます。 初期化の詳細については、 こちらを参照してください。
アプリが何らかの方法でシャットダウンしている場合 、 を廃棄する SDKNativeEngine
ことは必須ではありませんが、これを行っても害はありません。また、進行中の要求をキャンセルして HERE SDK サービスをシャットダウンすることをお勧めします。 一方、いずれかのウィジェットのみが削除され、アプリの他の部分がまだ HERE SDK を必要とする場合は、 HERE SDK を早期に廃棄しないように注意してください。 一般に、各ウィジェットの HERE SDK を個別に初期化 / 廃棄することもできます。
ステップ 5 : アプリを実行します
次に、アプリを構築して実行します。 デバイスを接続するかまたは 、エミュレータまたは シミュレータを起動 してアプリのディレクトリから flutter run
を実行するか、または IDE 内からアプリを実行します。問題が解決した場合は、画面に HERE マップが表示されます。
スクリーンショット: メインマップ スキームの表示
スクリーンショット: 衛星マップ スキームの表示 HERE SDK for Flutter を最大限に活用するための最も一般的な使用方法については 、「主な概念 」セクションを参照してください。
含まれている HERE SDK iOS フレームワーク (hersdk.xcframework)はファットバイナリではありませんが、いくつかのアーキテクチャ用のフレームワークのセットが含まれてい ます。これらのフレームワークは、デバイス (arm64) およびシミュレータ (x86_64) 用に構築されています。 そのため、複数のアーキテクチャが含まれています。 これにより、シミュレータ および 実際のデバイスに簡単に展開できます。 また、Xcode のクラッシュを表すデバッグシンボル (dSYM) も含まれています。 dSYM ファイルを使用してクラッシュ HERE をシンボル化する方法については、その他の詳細情報を参照してください。
注
ファイルサイズは展開時に Xcode によって最適化され、不要なフレームワークは削除されます。
HERE SDK フレームワークは Apple の XCFramework バンドルタイプ(XCFW) に準拠しているため、 Appleの アプリ Store 経由で iOS デバイスにアプリを配布するために使用できます。
次のステップ
この「利用開始」は、出発点にすぎません。 アプリの例を確認し、 API リファレンス を参照して、よりエキサイティングな機能を見つけてください。 次のリリースでは、チュートリアルとサンプルアプリをさらに計画しています。 HERE SDK for Flutter をご利用いただき、ありがとうございます。
トラブルシューティング
問題が発生した場合 は、まず最小要件とサポートされているデバイスを確認してください。
post_install do |installer|
installer.pods_project.targets.each do |target|
flutter_additional_ios_build_settings(target)
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
end
end
end
サポートが必要な場合
この製品またはその他の HERE 製品についてサポートが必要な場合は、以下のいずれかのオプションを選択してください。