完成イメージ

  • 白背景に黒文字
  • 縦書きで情報表示
  • 全て漢字で表示

必要なタスク

  • 数値→漢字変換の関数
    • 0~9 を個別変換する関数
    • 10以上の数字をバラす関数
  • 背景を白くする
  • 縦書き表示
  • 漢字の表示
  • バッテリーなどセンサー情報取得

白背景

https://forums.garmin.com/developer/connect-iq/f/discussion/2137/newbie-struggling-to-set-background-color こちらのフォーラム曰く、レイアウト上に <drawable-list> タグで背景領域を置くのがよさそうとのこと

resources/layouts/layout.xml

<layout id="WatchFace">
<drawable id="background" />

...
</layout>

resources/drawable/drawable.xml

<drawables>
    <drawable-list id="background">
        <shape type="rectangle" x="0" y="0" width="fill" height="fill" color="Graphics.COLOR_WHITE" />
    </drawable-list>
</drawables>

漢数字を返す関数

    function NumberToKanji(num as Number) as Number {
        var strings = "";
        var upper_digit = num / 10;
        var lower_digit = num % 10;
        if (num > 10) {
            if (upper_digit > 1) {
                strings += DigitToKanji(upper_digit);
            }
            strings += "十";
        }
        strings += DigitToKanji(lower_digit);
        return strings as String;
    }

    function DigitToKanji(num as Number) as String {
        var character = "None";
        switch(num) {
            case 0: 
                character = "零";
                break;
            case 1:
                character = "一";
                break;
            case 2:
                character = "二";
                break;
            case 3:
                character = "三";
                break;
            case 4:
                character = "四";
                break;
            case 5:
                character = "五";
                break;
            case 6:
                character = "六";
                break;
            case 7:
                character = "七";
                break;
            case 8:
                character = "八";
                break;
            case 9:
                character = "九";
                break;
            default:
                break;
        }
        return character as String;
    }

表示がバグってるので、フォントを導入する

日本語フォント導入

~/Application%20Support/Garmin/ConnectIQ/Sdks/connectiq-sdk-mac-4.0.10-2022-02-08-277ce4444/CoreTopics.html#fonts

リソースコンパイラは TXT/PNG 形式のフォントが使える

導入方法 以下にリソースを配置

/resources/fonts/hogehoge.fnt
/resources/fonts/hogehoge.png

resources/resources.xml に以下を記述

<resources>
    <fonts>
        <font id="id_verdana" filename="fonts/verdana.fnt" filter="ABCDDEFGHIJKLMNOPQRSTUVWXYZ " />
    </fonts>

fnt が png を参照している感じか。 最悪 0 ~ 9 の数字に対応させることできるが、、、

BitMap Font ツール探す

とりあえず snowb.org を使用する https://snowb.org/

日本語入力→ export

零一二三四五六七八九十百千万億兆電歩時分秒日月年

https://snowb.org/ で成功。設定方法にコツがあるっぽい。多分色とか。おそらく xxx.fnt の以下の二行目の部分

info face="sample2" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=1 padding=1,1,1,1 spacing=1,1
common lineHeight=32 base=28 scaleW=1024 scaleH=1024 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0

resources.xml で定義されたフォントリソースは以下のように指定

<label id="TimeLabel" x="center" y="center" font="@Fonts.sample2_font" justification="Graphics.TEXT_JUSTIFY_CENTER" color="Graphics.COLOR_BLACK" />

Testing and Debugging

~/Library/Application%20Support/Garmin/ConnectIQ/Sdks/connectiq-sdk-mac-4.0.10-2022-02-08-277ce4444/CoreTopics.html#testinganddebugging

ストアリリース

Publishing to the Connect IQ Store

approval process を高速化するガイドライン

  • 不適切な行動やコンテンツはreject
  • 機能しなかったり頻繁に crash する場合はreject
  • チームの利用規約を超えて GPS データを使用した場合
  • トレードマークやコピーライトのあるコンテンツを許可なく使用した場合
  • ガイドラインは変更する可能性があります。

→割と緩い。普通にやっとけば違反しないはず

通った場合は、Garmin Connect IQ App Store に publish される 準備手順

  • サポート製品の一覧を記載したマニフェストファイルの確認
  • Export Project コマンドで出力した IQ ファイル(各デバイス向けのバイナリを含む)
  • データをアップロード

Submit Page https://developer.garmin.com/connect-iq/submit-an-app/

一旦WatchFace だとここまでで大丈夫そう?

データ収集する系は GDPR 対応が必要そう…

Connect IQ はグローバル プラットフォームであり、Connect IQ ライセンス契約に記載されているように、開発者は、データ保護とプライバシーに関連するものを含む、適用されるすべての法律にアプリを準拠させる責任があります。

これが結構厳しい。できれば専門家の意見を一度は聞きたいぐらいには難しい

プライバシーに関する具体的な責任は、Connect IQ ライセンス契約のセクション 2 に記載されています。

一通り読んでいればOK? WatchFace は外と連携してないから余程のことがない限り抵触しないと思うが。

アップロードプロセス

審査は72時間以内に完了します。
アプリが 1 つ以上の ANT+ プロファイルを使用していることを示す場合、通常、ANT+ 認定を完了するにはさらに 48 時間必要です。
何らかの理由でアプリが拒否された場合でも、絶望しないでください。 Connect IQ チームは、拒否の具体的な理由を電子メールで提供し、お客様と協力して問題を解決する場合があります。アプリは引き続き必要に応じて更新し、承認のために再送信できますが、承認されるまで Connect IQ アプリ ストアには表示されません。