Garmin 製のウォッチフェイスが海外製のものが多く、デザインもあんまり好みのものがないため、自作できないかと思い調査を開始

TODO

  • サイドローディング試す
  • ForeAthlete は無理かも?なければフォーラムで聞く
  • 最終的にサンプルをストアにアップする

What’s garmin

https://ja.wikipedia.org/wiki/%E3%82%AC%E3%83%BC%E3%83%9F%E3%83%B3

  • アメリカ合衆国で創業されたGPS/GNSS機器メーカー
  • 製品
    • ウェアラブル
      • スマートウォッチである ForAthlete / Forerunner などはここに属する
    • 自動車用機器
    • 自転車用機器
    • 携帯機器
    • 航空用機器
    • アウトドア機器

Read Developer Site

https://developer.garmin.com/

なんか色々作成できるっぽい。

Connect IQ™ SDKがそれっぽい

Develop watch faces, data fields, widgets and apps for our wearable devices.

Connect IQ

https://developer.garmin.com/connect-iq/overview/ ざっくり注意書きを読む

Downloading SDK

    1. Download the SDK manager.
    • Accept & Download for Mac
    • SDK のダウンロード
    • DL後アカウントが必要らしい
    • https://apps.garmin.com/login
      • 開発用メール
      • 仮パスワードMで登録
    • 一応、 linux もあるけどこれは Ubuntu 専用かも? そろそろ Getting Started をみた方が良さそうな気がしてきた

Getting Started 確認

https://developer.garmin.com/connect-iq/connect-iq-basics/getting-started/ Monkey-C って何? →まさかの独自言語…???? どうやら Garmin 開発で使ってるぽい。 Java のラッパー? http://torufurukawa.blogspot.com/2016/07/monkey-c.html

どうやら公式は VS Code 使えとのことなので VS Code 使う。

The Monkey C Visual Studio Code Extension

Monkey Cをインストール Command + Shift + C で色々メニューが選べる _Monkey C: Verify Installation_を実行

ビルド時にアプリに署名するための鍵が必要らしい

  • RSA 4096 bit private key

以下に保存

Developer key has been set as /Users/hogehoge/.ssh/developer_key.

Your First App

https://developer.garmin.com/connect-iq/connect-iq-basics/your-first-app/

  • Command + Shift + P
    • New Project
    • 色々設定したらプロジェクト作成される プロジェクト中身
  • bin : バイナリファイル + デバッグファイル
  • resources : リソースコンパイラに渡す素材系ファイルとか位置情報とか
  • manifest.xml : APP のプロパティ

テストビルド

  • Command + Shift + P
    • Edit Products で対応デバイスを追加
  • source の .mc ファイルを選択して Run から実行可能
  • エミュレータが起動する

サイドローディング(テスト用に正規ストア以外からアプリを導入すること)

  • Command + Shift + P

    • Build for Device
    • 出力フォルダを選択
    • 生成された RPG ファイルを デバイスの GARMIN/APPS ディレクトリにコピーする
  • 「実行とデバッグ」でエミュレータを起動して、さらにコードを起動することで起動するっぽい?

  • GettingStartView 部分で View を定義している

仕様

manifest

  • applicationID
  • 対象デバイスリスト
  • 必要権限リスト
  • 対象言語リスト
  • 対象 barrelsリスト ?
    • “Monkey Barrels” : カスタムの C 言語ライブラリのこと

参考

https://qiita.com/junjun0011/items/b7da05a08ff151047ff0 https://www.narinarissu.net/entry/20160528/1464444328 非常に助かりました。