wsl2 ubuntu22.04 に fitbit 文字盤開発環境を構築する

wsl2 ubuntu22.04 に fitbit 文字盤開発環境を構築する

2023/10/19 21:00:00
Program
Ubuntu, Fitbit

前提 #

  • wsl2 ubuntu22.04 を開発環境とする
  • fitbit 文字盤シミュレータはwindowsホストにインストールする

windows10 を最新状態に更新 #

windows update を実施する

wsl2 を有効にする #

コマンドプロンプト(cmd.exe)を起動

$ wsl --update
$ wsl --install

windows terminal インストール #

以下からダウンロードしてダブルクリックするとインストールが開始される。
※ .msixbundle は複数アーキテクチャ向けの MSIX パッケージを一つのファイルにバンドルしたもの。実行すると実行環境に応じたものがインストールされる
https://github.com/microsoft/terminal/releases/download/v1.18.2822.0/Microsoft.WindowsTerminal_1.18.2822.0_8wekyb3d8bbwe.msixbundle

cascadia-code フォント インストール #

以下からダウンロードする。
https://github.com/microsoft/cascadia-code/releases/download/v2111.01/CascadiaCode-2111.01.zip
ダウンロード後、展開して以下のファイルをダブルクリックするとインストールされる CascadiaCode-2111.01/ttf/CascadiaMonoPL.ttf

wsl2作業エリアを作成 #

コマンドプロンプト(cmd.exe)を起動

# Cドライブ直下に移動
$ cd \

# wsl2 作業エリアを作成
$ mkdir work
$ cd work
$ mkdir fitbit
$ cd fitbit
$ mkdir wsl2images

fitbitアカウント作成 #

fitbit のスマートウォッチを持ってなくても登録できる。また開発も可能であることは確認済み。
実機があるとシミュレータを使わずに文字盤作成可能。
※既に取得済みの場合はスキップ

  1. 以下のサイトから 「 Sign up here 」をクリックしてユーザ登録する https://www.fitbit.com/signup
    ※google アカウント認証の方が便利かもしれないので、事前に google アカウントを準備したほうがいいかもしれない。
    ※Sign up here が見つからない場合は以下の公式トップから選択したほうがいいかもしれない。
    https://dev.fitbit.com/getting-started/
  2. fitbitギャラリ認証 どうも文字盤開発には、ギャラリ認証が必要なので以下のサイトから同じアカウントで1度だけ認証しておく
    https://gam.fitbit.com/

シミュレータインストール #

以下からダウンロードして起動するだけ。
起動時に、fitbit ユーザアカウントが必要

fitbit開発用ubuntu インストール #

新規に wsl2 fitbit開発(ubuntu22.04) を構築する場合 #

作成済みのwsl2 fitbit開発(ubuntu22.04) を使用する場合は次章にスキップ

wsl2 ubuntu22.04 環境構築は以下のURLを参照すること
https://blog.oya3.net/docs/ubuntu/22.04/ubuntu-settings/

google-chrome ブラウザでfitbit認証できるようにしておく #

# 準備:fitbitでブラウザ認証が必要なので gnome-keyring をインストールしておくこと
$ sudo apt install gnome-keyring
# 上記コマンドが失敗する場合、以下を実施後、再度実行する
$ sudo apt install libsecret-1-dev
$ sudo apt install libsecret-1-0

nodenv で fitbit 文字盤プロジェクトを作成する #

# nodenv で対応
$ anyenv install nodenv

$ exec $SHELL -l

$ nodenv versions
Warning: no Node detected on the system
$  nodenv install 14.17.0
Downloading node-v14.17.0-linux-x64.tar.gz...
-> https://nodejs.org/dist/v14.17.0/node-v14.17.0-linux-x64.tar.gz
WARNING: node-v14.17.0-linux-x64 is in LTS Maintenance mode and nearing its end of life.
It only receives *critical* security updates, *critical* bug fixes and documentation updates.
Installing node-v14.17.0-linux-x64...
Installed node-v14.17.0-linux-x64 to /home/developer/.anyenv/envs/nodenv/versions/14.17.0

$ nodenv rehash
$ nodenv versions
  14.17.0

$ nodenv global 14.17.0

# fitbit 文字盤プロジェクトを作成
$ mkdir fitbit
$ cd fitbit
$ npx create-fitbit-app my-first-clock
# No package 'libsecret-1' found が発生する場合はubuntu にインストールする
#  $ sudo apt install libsecret-1-dev

...
found 2 vulnerabilities (1 moderate, 1 high)
  run `npm audit fix` to fix them, or `npm audit` for details
? What type of application should be created? clockface                                 <--- clockface
? What should the name of this application be? My First Clock                                  <--- 好きな名前
? Should this application contain a companion component? No                                    <--- 他の機能と連携が必要な場合にYにする。文字盤だけなら不要
? Which platforms should this application be built for? Fitbit Versa 3, Fitbit Sense           <--- 作成する文字盤の機種を選択。現状versa3 とsense しか選択できない。。。
Creating device component

$ cd my-first-clock
$ npx fitbit # ブラウザ起動でfitbit認証画面が表示される。
             # fitbitアカウントで認証すること
             # fitbitターミナルにログインされる
# 1度目は以下の内容が表示される場合がある。なので2度実行してみる
Failed to read auth token from keychain: [object Object]
# 2度目はgoogle-chromeでfitbit認証画面が表示される
$ npx fitbitNo login information, starting login...
Logged in as kazunori oya <kazunori.oya3@gmail.com>
> fitbit$ bi     <--- ビルド+シミュレータにインストールされる
> logout   <--- ログアウトはできるが、ブラウザ認証はクッキーに残るようなので、いちいちブラウザのキャッシュをクリアする必要がある

作成済みのwsl2 fitbit開発(ubuntu22.04) を利用する場合 #

コマンドプロンプト(cmd.exe)を起動

# 作業エリアに移動
$ cd \
$ cd work\fitbit
# ダウンロード
$ curl https://oya3.net/wsl2images/20231019.ubuntu22.04.fitbit.tar --output wsl2images\20231019.ubuntu22.04.fitbit.tar
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   101  100   101    0     0     92      0  0:00:01  0:00:01 --:--:--    93
# 内容確認
$ dir
2023/10/19  20:47    <DIR>          .
2023/10/19  20:47    <DIR>          ..
2023/10/19  20:47               101 20231019.ubuntu22.04.fitbit.tar

$ wsl --import ubuntu22.04.fitbit wsl2images\ubuntu22.04.fitbit wsl2images\20231019.ubuntu22.04.fitbit.tar --version 2
インポート中です。この処理には数分かかることがあります。
この操作を正しく終了しました。

# インストール確認
$ wsl --list
Linux 用 Windows サブシステム ディストリビューション:
Ubuntu (既定)       <--- これは状況によって違うのがでるかも
ubuntu22.04.fitbit

windows terminal 設定 #

起動すると ubuntu22.04.fitbit がリスト表示されているはず。
設定から ubuntu22.04.fitbit を選択し以下を追加する。

  1. フォント追加
    「追加の設定」→「外観」→「フォントフェイス」を “Cascadia Mono PL” に設定する。
  2. 「コマンドライン」にユーザを追加
    ubuntu22.04.fitbit 起動時に developer ユーザで起動してない場合に設定する項目
    起動コマンドに developerユーザ 追加設定する
    「-u developer」を追加する

ubuntu22.04.fitbit 起動 #

windows terminal から ubuntu22.04.fitbit を選択し起動する

$ pwd
/home/developer
$ cd work/fitbit
$ pwd
/home/developer/work/fitbit
ここにソース配置すること
$ git clone https://github.com/oya3/fitbitclock
$ cd fitbitclock
$ npm i
$ npx fitbit

その他 #

  • git commit する場合は最低限、以下を実施する必要がある。
    $ git config --global user.name "名前"
    $ git config --global user.email "メールアドレス"