GarminのWatchFaceアプリの開発環境を構築する

# はじめに
GarminのWatchFaceを開発するための開発環境を構築するうえで、構築手順をまとめていきます。
数年前に調べたときはEclipseが対象だったので心が折れていたのですが、
現在はVisualStudioCodeで実行できることがわかったので始めることにしました。

Garminは **Garmin Connect Developer Program API** と **Connect IQプログラム** を提供しています。
ざっくりとした違いは下記のとおりです。
- Garmin Connect Developer Program API
ライセンス料やメンテナンス料は発生しませんが、ビジネスでの使用のみを目的
心拍数、睡眠、歩数など情報の取得
- Connect IQ
時計の盤面、データフィールド、ウィジェット、アプリケーションを作成することができる

今回はWatchFaceの作成を目的＋個人利用目的のため **Connect IQ** を利用します。

# 前提条件
- Windows11 Pro
- VisualStudioCode インストール済み
- Java SDK インストール済み
- Venu 2S（当方の端末）

# Connect IQ SDK マネージャーのインストール
下記ページからPCにあったSDKのインストールを行います。
https://developer.garmin.com/connect-iq/sdk/

ダウンロード後、フォルダを解凍し「sdkmanager.exe」を起動すると英語の画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/90b162fd-13d1-13b6-42bb-51727680e029.png)

英語はわからないのでDeepLで全部翻訳していきます。

```text:日本語訳
コネクトIQへようこそ！
SDKマネージャーは、お客様の開発環境を最新のSDKとデバイスに保ちます。
作業を始める前に、開発者アカウントにログインしてください。
```
Garminをすでに利用している場合、アカウントを所持していると思うのでログインすると下記画像のように「Next」が活性化されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/4f0c0e7d-eb30-6442-07cf-2229a15923df.png)
※赤で塗りつぶした箇所にはユーザー名が表示されました。

Next >
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/ab6a8c89-6236-6c54-5a82-2bac98ace159.png)

```text:日本語訳
SDK Managerはアップデートを自動的にインストールし、ソフトウェアを最新の状態に保つことができます。
SDKマネージャーによる自動アップデートを許可しますか？

・アップデートを自動的にインストールする
・アップデートが利用可能になったら通知する
```
お好みで設定してください。(私は「Notife～」にしました)

Next >
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/f830c753-acf5-39b7-32fc-58c8a40faf44.png)

```text:日本語訳
SDK Managerはバックグラウンドで動作しているときでも、新しいSDKをインストールすることができます。
SDKがバックグラウンドで更新されるようにしますか？

・新しいSDKを自動的にダウンロードする
・新しいSDKが利用可能になったら通知する
```
お好みで設定してください。(私は「Notife～」にしました)(読めない文字は無視)

Next >
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/322fb4bc-60d9-4009-db96-c746a9540e0b.png)

```text:日本語訳
SDK ManagerはバックグラウンドでConnect IQデバイスライブラリを更新できるため、常に最新のデバイスに対応した開発が可能です。
Connect IQデバイスライブラリをバックグラウンドで更新しますか？

・デバイスライブラリの自動更新
・新しいデバイスのアップデートが利用可能になったら通知

どのデバイスアップデートを受信しますか？
・時計およびウェアラブル
・サイクルコンピューター
・アウトドア・ハンドヘルド
```

お好みで設定してください。(私は「Notife～」+「Watchs ～」にしました)

Finish を押下すると新しくダウンロードする対象デバイス情報の一覧が表示されました。(OKボタンしか押せなかったのでそのまま押下)

自動でConnectIQ SDK Managerの画面が開きます。
SDKタブにはダウンロード可能なSDKの一覧が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/aaade77f-21e9-44f7-50f9-4da065be011f.png)
グルグルして一覧が表示されない場合は、立ち上げ直すことで改善する場合があります。(私はそれで直りました。)

Devicesタブをクリックすると開発対象として可能な機種リストが開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/c465221f-82d9-780c-2ca7-f07daceccb4f.png)
SDKダウンロード時にダウンロードされると思いますが、されていなかった場合、自身の開発したい対象横のダウンロード画像をクリックしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/5f39d0e2-945d-3b71-7a7d-e79e8373107f.png)

以上でSDKマネージャーの設定は完了です。
画面を閉じて問題ありません。

※余談
左上の「File」から「Preferences」を選択するとインストール時の設定を変更することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/a25e9740-7cfb-a3f6-ef60-e24a8920eb4a.png)

# Visual Studio Code の準備

 [拡張機能]メニューから **Garminの提供している「Monkey C」** をインストールしてください。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/d8d32c0b-c03f-b60f-1ffc-07deba1cb7ac.png)
他にも「Monkey C」が存在しているため注意してください。
拡張機能をインストール後、Visual Studio Code を再起動します。

# 開発者キーの生成

Ctrl + Shift + P ( Mac の場合はCommand + Shift + P )を使用してコマンド パレットを呼び出し、「Monkey C: Verifi Installation」と入力します。
実行すると、初回はdeveloper keyの入力を求められますが、現時点でkeyを持っていないため、後者の「Generate developer key」をクリックしKeyを生成し、任意のフォルダにkeyを作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/2bd2357a-2cc1-3403-23e5-afe8d467d4e6.png)

Key作成後、再度「Monkey C: Verifi Installation」を実行し、右下に下記画面が表示されれば完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/320059/6a12799d-7bc0-803d-f7a1-679961ad6e0d.png)

JavaSDKがPCにインストールされていなかった場合、ここでエラーが表示されます。（ここガバポイント）

# おわりに

以上で環境構築は完了です。
不足があった際にはコメントを頂けますと幸いです。
また何かありましたら追記します。