2020/05/30

Health Planet と Fitbit 連携 Web サービス開発日記 5/30

先週に気がついた Firestore でのデータの保持方法の設計ミスを改修。それに合わせて各コードも修正をしたのだけれど、基本的には Firebase の変更をトリガーに動作する、Cloud Functions 側のコードを基本的に修正すればよかったので、ちょっと助かった。

それに合わせて UI の作りも変更になったので、Client 側の HTML と Javascript のコードも修正して、思いがけず Single Page Application になった。

各ユーザーが Token を取得する際に Client_id にアクセスする必要はあるが、secret は基本サーバーサイド、しかも Firestore をトリガーに動く Cloud Functions からしかアクセスしないので、Firestore のセキュリティルールをつけやすくするため、client_id と secret をドキュメントでわけ、client_id にだけ Read のルールを設定。secret には Firebase のクライアントからのアクセスはできないルールとする。

一通りコードの修正とテストが完了し、新たに追加した refresh_token による access_token の更新処理も実装及び動作確認完了。

2020/05/24

healthplanet と fitbit 連携 Web アプリ開発日記

一通り動作確認のためのコーディングが終了し、モジュールごとにコードの分割も終えたとこまできて、各 API に登録した際の認証情報の保管先を、根本的に間違えていた事実に気がついてしまった。

そもそも、Client ID と Client Secret はユーザーデータの Path 上においてはいけないのに、各ユーザーごとに入手して登録する仕組みにしてしまっていた。なんていう初歩的なミス。

来週もコードのリファクタリングに費やすか。

2020/05/22

audible で読書しながらランニング

新型コロナウィルスで在宅勤務を始めた2月くらいから、ランニングをしています。感染リスクが高いことから通っていた近所のスポーツジムも一旦解約したこともあり、気分転換兼ねて週4日程度走るようにしています。

走るときはもちろん、スポーツジムで汗を流すときは音楽を聞いているのですが、最近この時間で読書ができないかと思って、audible を無料体験してみることにしました。結論から言うと、めちゃくちゃいいです。

2020/05/16

fitbit charge 4 で各種エクササイズのトラッキング

緊急事態宣言の一部解除によって外出できる地域が増えましたが、私の住むところは継続自粛集です。一部解除となっていても、スポーツジムは依然として3密を避けるべき施設として、当面利用者も少ないでしょうし、私の通っていた事務もしばらくは臨時休業です。

ということで、自宅もしくは外でのジョギングなどに日々の運動を切り替えている人も多いと思います。私も近所のジョギングと、自宅での簡単な運動に切り替えました。

fitibit では自動で運動を検知してくれる機能もありますが、自身で運動を選択して明示的にトラッキングを開始、終了することができます。

fitbit charge 4 で予め設定されている「運動ショートカット」メニュー以外にも、このメニューを入れ替えることができるので、その方法を簡単に説明します。

2020/05/11

サーバーレスを使い倒して月額 4 円 の Web サービスを構築中

昨年末以来、空いた時間に Web アプリを開発中です。

タニタの体組成計 RD-800 を購入して毎日体重とか体脂肪率とかを図り、それを Fitbit に手動で入力しているのが面倒なので、これを自動化することを狙っています。ネットで調べるとちゃちゃっと作っている人とかもいるのですが、せっかくなのでこれを機会に新しいものを学びながら作ることにします。ということで開発言語は go 言語にします。昨年末に仕事で簡単なでもアプリを作ってみたので、これを機会に新しい言語でもう少し凝ったものを作って学習したいと思います。

万が一多くの人が使いたいという希望が出ることを想定し、ある程度は勝手にスケールする仕組みにします。でも1日の間でそんなに稼働する仕組みでもないので、基本的にはサーバーレスのコンポーネントを最大限に活用し、ランニングコストを下げることにします。

2020/05/09

動かなくなった macbook air を復旧させた話

一年ほど前に、高校生の子供に使わせていた macbook air が、何故かトラックパッドがきかない状態になり、外付けマウスもだめになってしまいました。

いろいろ調べて NVRAM のクリアとか、SMC リセットとかしてもだめ、OS の再インストールとかもしたけどだめで、仕方ないのでいずれ修理に出そうと棚にしまってお蔵入り状態に。

その間も色々と必要なので、家族が使えるようにと macbook air を再購入してすごしていましたので旧 macbook air は放置してたのですが、今年高校生になった子供が遠隔授業で PC を使いたいというので、お蔵入りしていた macbook air の復旧作業に再チャレンジしました。

2020/05/04

特別定額給付金をマイナポータルでマイナンバーカードを使って申請した

私の住む市でも、特別定額給付金のオンライン申請に対応開始したので、早速申し込んでみました。

申請は各市町村ごとではなく、マイナポータルというマイナンバーカードを活用できる政府が運営するオンラインサービス上での申請となります。この対応している市町村は(何故か)PDF で提供されています。このマイナポータルなるオンラインサービスは初めて知りました。

私は確定申告を毎年しているため、家族の中では世帯主である私だけが唯一マイナンバーカードを発行しており、下記に当てはまればマイナンバーカードを発行していない家族分も含めてオンライン申請が可能です。

  • 世帯主
  • マイナンバーカード(通知書ではなくきちんとしたカード)を保有
  • マイナンバーカードの読み取りができるカードリーダーか、対応しているスマホを所有
申請にあたり、いくつか注意点というか Tips があるので共有します。

2020/05/02

fitbit charge 4 の使用レポート

fitbit charge 4 を購入してしまいました。

fitbit charge 2 を持っていたので、fitbit charge 4 の発売情報でどんな新しい機能が追加されるのか楽しみだったのですが、ぱっと見、GPS が付いたのと、Spotify 操作ができるようになった様子で、それほどの惹かれませんでした。GPS に関しては、走る時はスマホも携帯しているので、走ったルートはトラックできるので、GPS 搭載はそれほどみりょくてきではありません。音楽も、YouTube Premium に入っているため YouTube Music のオフライン機能が使えるので、Spotify 機能は不要です。

でも買ってしまいました。



購入した一番の理由は、最近 fitbit charge 2 の調子が悪句なり始めたからです。まるで charge 4 の登場を待っていたかのように、最近ランニングをトラッキングしていると、途中でトラッキングが勝手に解除されていることが何度か続きました。

さすがに4年ちかくも使っているので、そろそろ寿命なのだろうとも思い(という言い訳)、早速 fitbit charge 4 を購入してみました。ふるさと納税やら家の模様替え需要で溜まった楽天ポイントを活用して、多少お安く買えました。

購入前の予想に反して、fitbit charge 4 を購入してとても良かったです。

一つは画面の解像度が上がっています。とても見やすいし、情報量が増えています。


入力方法が、画面横の物理的なボタン操作に加えて、画面でのタッチ操作も加わり、スワイプで画面を切り替えるようになっています。

睡眠中の血中酸素飽和度を推定して、推定酸素変動量として表示してくれます。変動量を可視化して変化が激しい場合は睡眠中の呼吸になにかしらの問題が生じている可能性があることを示唆してくれます。これが医療用途として使えるわけではないと明記されてはいますが、日々の変化を確認して、万が一変化が激しいことがわかれば、病院で診てもらうきっかけにはなると思います。

通知も charge 2 に比べて機能していて、LINE などの色々なアプリの通知が受け取れるようになっています。

また、今いる所の天気予報を見れるようになっています。

メインの目的であるトラッキングも機能が強化されていて、脂肪燃焼ゾーンに入ったことなどを通知してくれます。もしかしたら charge 3 からあった機能かもしれません。

ということで、今のところ charge 2 のリプレースとして、思った以上の機能アップデートがあって満足しています。