iOS 開発者ガイド for SDK

Swift を使用してシンプルな HERE SDK アプリを作成します

このチュートリアルでは 、 Swift プログラミング言語を使用して簡単なアプリケーションを作成する方法について説明します。 Objective-C のチュートリアルと同じ です。このチュートリアルは、 HERE SDK を使用して簡単なアプリを作成するにあります。

この基本的なアプリケーションの開発タスクは次のとおりです。
  • 新しい Xcode プロジェクトを作成します
  • 必要なリソースとマップ ビューをプロジェクトに追加します
  • 地図サービスにアクセスするために、 HERE から資格情報を取得します
  • マップ ビューを初期化して、クライアントデバイスでレンダリングするためのマップインスタンスを作成します
このガイドの内容は、 Xcode 13.0 および iOS SDK に適用 16 されます。

SDK for iOS のサンプルプロジェクト

このチュートリアルで説明する Xcode プロジェクトのコピーは sample-apps、 SDK for iOS パッケージのフォルダにあります。 プロジェクトを実行するに SwiftHelloMap.xcodeprojREADME.txt は、をダブルクリックし、ファイルの指示に従います。

新しいシングルビューアプリケーションを作成します

  1. Xcode メニューから 、ファイル新規/プロジェクトを選択 して、新規プロジェクトダイアログボックスを開きます ( または、 Shift キーを押しながら Command キーを押しながら N キーを押します ) 。
  2. 作成するアプリケーションの種類として、 iOS > Application > Single View Application を選択します。 次へを押します。
  3. 次のダイアログで 、製品名HelloMap(など)と 組織 ID ( など edu.self)を入力します。
  4. [ 言語 ] の下の [Swift] を選択し 、 [ 次へ] をクリックします。
  5. プロジェクトを保存するディレクトリに移動 し、 [ 作成 ] を選択します。
  6. 次の手順で は、このプロジェクトで HERE SDK を使用するように設定します。

アプリケーションを設定します

  1. iOS for SDK アーカイブをローカルファイルシステムの任意の場所に展開します。
  2. NMAKit.xcframework を Xcode プロジェクトに追加します。 アプリのターゲットをクリックし 、 [ 全般 ] タブを選択します。 「フレームワーク、ライブラリ、および埋め込みコンテンツ」というセクションを探し、プラス記号 (+) をクリックし、「その他を追加」をクリックして、「ファイルを追加」をクリックします。 [ ファイル ] ダイアログボックスで 、NMAKit.xcframework [ フォルダ ] を選択 し、 [ 完了 ] をクリックします。
    図 1. NMAKit.xcframework を追加しています
  3. NMAKit.xcframeworkフレームワーク、ライブラリ 、および埋め込みコンテンツセクションに表示されていることを確認します。
    図 2. フレームワークを追加しました
  4. アプリケーションを実行します。 Xcode メニューバーで 、プロダクト実行を選択します。 プロジェクトが iOS シミュレータでエラーなく実行されていることを確認してください。
  5. SDK for iOS が Xcode プロジェクトで使用できるようになりました。 HERE SDK で動作するようにプロジェクトが設定されました。サンプルアプリケーションを拡張して、マップをレンダリングしてください。

マップ ビューを作成します

このセクションでは NMAMapView 、および NMAGeoCoordinates クラスを使用してマップをレンダリングします。

  1. を作成 NMAMapViewします。

    1. Main.storyboard ナビゲータでを選択し、 Command + Option + Control + 3 キーを押してユーティリティビューを開きます。 View オブジェクトを Object ライブラリから View Controller にドラッグアンドドロップします。 必要に応じて、ビューのサイズを変更して、表示領域全体を表示できるようにします。
    2. Interface Builder で、作成したビューをクリックし、 Command + Option + 3 キーを押してユーティリティビューで Identity Inspector を開きます。 クラスの値を UIView からに変更 NMAMapView し、 Return キーを押します。 [ ドキュメントのアウトライン マップ ビュー] に、ビューの名前が [ ビュー ] から [ ビュー ] に変更されたことが表示されます。
    図 3. マップビュー
  2. NMAMapView IN のアウトレットを作成 ViewControllerします。

    1. Main.storyboard ナビゲータでを選択します。
    2. Command + Option + Return キーを押して、 Assistant Editor を開きます。 表示されます ViewController.swift
    3. このファイルの先頭に次のインポートステートメントを追加します。
      import NMAKit
    4. キーボードの Control キーを押しながら、クリックし ViewController.swiftてマップ ビューからのインターフェイスブロックにドラッグします。 青色の線が表示され、ツールチップに「コンセントまたはコンセントの接続を挿入してください」と表示されます。 マウスボタンを離すと、ダイアログが表示され、アウトレットを作成できます。
    5. アウトレットに名前を付け mapView、他のデフォルトオプションを保持してから、 [ 接続 ] を選択します。

    図 4. 出口を作成します
  3. アウトレットがに NMAMapView 設定されました。 変更されたファイルは次のとおりです。

    
    import UIKit
    import NMAKit
    
    class ViewController: UIViewController {
    
      @IBOutlet weak var mapView: NMAMapView!
    
      override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
      }
    
      override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
      }
    
    }
    
  4. NMAMapViewviewDidLoad() 機能を viewWillAppear(animated) AND で置き換えて、セットアップおよびライフサイクルコードを実装 addMapCircle()します。
    
    override func viewWillAppear(_ animated: Bool) {
      super.viewWillAppear(animated)
      mapView.useHighResolutionMap = true
      mapView.zoomLevel = 13.2
      mapView.set(geoCenter: NMAGeoCoordinates(latitude: 49.258867, longitude: -123.008046),
        animation: .linear)
      // Note, logo is not shown when its size is greater than 1/8 of NMAMapView's height or width.
      mapView.copyrightLogoPosition = NMALayoutPosition.bottomCenter
      addMapCircle()
    }
    
    func addMapCircle() {
      if mapCircle == nil {
        let coordinates: NMAGeoCoordinates =
          NMAGeoCoordinates(latitude: 49.258867, longitude: -123.008046)
        mapCircle = NMAMapCircle(coordinates: coordinates, radius: 50)
        mapView.add(mapCircle!)
      }
    }
    
  5. HEREアプリケーションの資格情報を追加します。
    1. AppDelegate.swift ファイルを開き、 NMAKit 次のインポートステートメントをファイルの先頭に追加してインポートします。
      import NMAKit
    2. Add the following in didFinishLaunchingWithOptions function replacing YOUR_APP_ID, YOUR_APP_CODE and YOUR_LICENSE_KEY with the credentials that you received from your https://here-tech.skawa.fun.
      NMAApplicationContext.setAppId("YOUR_APP_ID",
          appCode: "YOUR_APP_CODE",
          licenseKey: "YOUR_LICENSE_KEY")
    注意 :didFinishLaunchingWithOptions HERE SDK 資格情報を設定するのに最適な場所ではない可能性があります。 たとえば、初期の View Controller が Storyboard 内にあり、その HERE SDK プロパティを宣言でインスタンス化する場合です。 この場合、インスタンス化は前に行われ、 didFinishLaunchingWithOptionsHERE SDK の動作は未定義になります。 この問題を回避 AppDelegate.swiftするには、のプロパティに資格情報セットアップを割り当てます。
  6. アプリケーションをビルドして実行します。 ビルドが正常に完了すると、次のスクリーンショットと同様のマップを表示するアプリケーションが作成され、ジェスチャを使用して操作できるようになります。

    図 5. アプリを実行しています アプリを実行しています
注 : 使用可能な認証オプションについて は、『 Identity & Access Management 開発者ガイド』を参照してください。