⏱️

学習時間の計測と記録の仕組みを Pixela で構築する

投稿日
2022/1/21
Tags
Case-study
現在私が働いている会社では、英語学習プログラムがあります。私もそれに参加しています。
その学習プログラムでは、「週に一度の 1on1 レッスンを受けること」と、「毎日の自己学習の記録をつけること」の2つが課されます。
 
自己学習の記録は、当初は、自分の記憶に頼ったり、大雑把に記録するなどしていました。ですが最近は、その記録すること自体が億劫になってしまい、さらにそれが英語学習のモチベーションにも影響を及ぼし始めてきた気がしてきました。そこで私は、学習時間の計測と記録の仕組みを Pixela で構築することにしました。
 
今回構築した仕組みは、以下のようなものです。
 
  1. iPhone で NFC タグにタッチする。学習の開始が Pixela に記録される。
  1. 英語学習を行う。
  1. 学習を終えるタイミングで、再度、iPhone で NFC タグにタッチする。学習の終了と、どのくらいの時間学習したのかが Pixela に記録される。
 
この記事では、上記の仕組みの構築方法をご紹介します。

学習時間計測&記録の仕組みの構築方法

1. NFCタグを購入する

仕組みの利用自体が面倒なものになってしまっては、意味がありません。できるだけ手軽に、仕組みを利用できる必要があります。例えば、何かにタッチするだけで計測と記録の両方が行えてしまうような。
 
それを実現するために、まずは NFC タグを購入します。Amazon などのサイトで「NFCタグ」と入力すれば、たくさんの選択肢が表示されるだろうと思います。私は下の写真のような、丸いシールタイプのものを購入しました。
NFCタグ
NFCタグ

2. 学習記録用の Pixela アカウント、グラフを作成する

Pixela アカウントの新規登録から行う場合には、API POST - /v1/users を使って登録しておきます。
学習記録用のグラフを新たに作成する場合には、API POST - /v1/users/<username>/graphs を使います。
 
以降の例では、 dino という username で、 english という GraphID のグラフを作成したと仮定します。また、パスワードに相当する token として thisissecret という文字列を指定した、ということにしておきます。これは、今後の例示の中で登場します。

3. iOS「ショートカット」アプリでオートメーションを作成する

今回のような、「iPhone が NFC タグに触れたら、特定の処理を行う」といった仕組みは、iOS のアプリの「ショートカット」で実現可能です。
 
 
「ショートカット」アプリを開いたら、画面下のタブの「オートメーション」をタップします。
そして、画面右上の + をタップ。
notion image
「個人用オートメーションを作成」タップ。
notion image
すると表示された複数の「新規オートメーション」の中から、「NFC」を探し出してタップ。
notion image
内容を確認し、「スキャン」をタップします。
notion image
すると以下のような表示になりますので、ここで先程のNFCタグを1枚選んで、読み取ります。
notion image
 
iPhone の上の方でタッチするように心がけると、比較的簡単に認識してくれると思います。
iPhone にNFCタグが認識されると、そのタグにつける名称を入力するダイアログが表示されます。
notion image
元の画面に戻りますので、「次へ」をタップ。
notion image
すると以下のような表示になるので、
notion image
 
「App およびアクションを検索」と表示されている検索窓に URL と入力することで表示される「 🔗 URL」というアイテムをタップします。
notion image
 
すると以下のような表示になりますので、
notion image
apple.com とうっすら表示されている箇所をタップし、URLとして以下の内容を入力します。
 
 
notion image
 
(おわかりかと思いますが、以下のURLの dinoenglish の部分は、あなたの実際の usename や GraphID に置き換えてください。)
 
さらにアクションを追加していきます。「App およびアクションを検索」と表示されている検索窓に、今度は「内容を取得」と入力します。すると「URLの内容を取得」というアイテムが表示されるはずですので、これをタップします。
 
notion image
 
 
 
追加されたアクションの > マークをタップすると、
 
notion image
 
以下のような表示になります。
 
notion image
 
「方法」のところは初期状態では GET になっていますが、ここをタップして POST に変更します。すると、表示が以下のように変化します。
 
notion image
 
このうちの「ヘッダ」欄をタップすると、以下のように「新規ヘッダを追加」という入力欄が表示されますので、
 
notion image
 
その欄をタップします。すると、以下のような表示になります。
 
notion image
 
「キー」のところをタップし、そこに X-USER-TOKEN と入力します。
「テキスト」のところをタップし、そこに thisissecret と入力します。もちろん、これはあくまで例であり、実際に試す際にはそのユーザーの token 文字列を指定してくださいね。
 
以下のような表示になっていればOKです。 X-USER-TOKEN のところは、画面が小さくて ... と省略されていますが、気にせずに。
 
notion image
 
もうひとつ、アクションを追加しましょう。「App およびアクションを検索」と表示されている検索窓に「振動」と入力することで表示された「デバイスを振動させる」というアクションをタップします。
 
notion image
 
 
これで追加するアクションは終わりです。画面右上の「次へ」をタップしてください。
 
notion image
 
notion image
 
「実行の前に尋ねる」のオプションはオフにしておくほうが、素早く計測を開始・終了できて便利だと思います。
 
問題なければ、画面右上の「完了」をタップして、オートメーションの作成は完了です。

4. 計測を開始・終了させてみる

それでは、iPhoneのロックを解除した状態で、NFCタグにタッチしてみましょう。
一瞬、iPhone本体が振動し、下のスクリーンショットのような通知が表示されるかと思います。
 
notion image
 
これで、計測がスタートした状態です。少しだけ時間を置いて、もう一度、NFCタグをタッチさせてみましょう。同じように iPhone が振動し、同じ通知が表示されたら成功です。
 
作成したグラフを確認してみましょう。ここまで使用してきた例を用いるなら、 https://pixe.la/v1/users/dino/graphs/english.htmlでグラフが表示されるはずです。
 
notion image
上出来ですね!

解説

今回、NFCタグの検知をトリガーとして iPhone にリクエストさせた Pixela の API は POST - /v1/users/<username>/graphs/<graphID>/stopwatch です。この API の活用方法については ⏱️Pixela をストップウォッチとして使い、計測した時間をそのまま記録する でも紹介していますので、ぜひこちらも読んでみてください。

One more thing...

ちなみに、私は自分の iPhone に下の写真ようなカードポケットを貼り付けています。
 
notion image
 
このカードポケットの蓋の裏面にNFCタグを貼り付けています。
 
notion image
 
これは計測をこの上なく簡単なものにしてくれる、最高のソリューションだと感じています。