ワダチを作る #30:「タイマーだけ」の習慣と、Safari でだけ出ていた線

前回(#29)は、シーンの曲を作った話でした。同じ日に、ほかにもいくつか直したので、今回はそちらをまとめます。

  • 記録しない「タイマーだけ」の習慣を足した
  • ランダムを、使うたびに選び直す形にした
  • Safari でだけ、シーンに線が出ていた
  • 本番に出した

記録しない「タイマーだけ」の習慣

ワダチのタイマーは、もともと瞑想のための機能です。タイマーを始めると、その日の習慣に「やった」が付きます。

使っているうちに、仕事の集中の時間にも、このタイマーを使いたいと思うようになりました。シーンや環境音、ポモドーロがあるので、作業の時間にもちょうどいいのです。ただ、仕事は「習慣」として記録したいものではありません。記録の画面に並ぶと、毎日の習慣の数え方が変わってしまいます。

そこで、記録しない習慣を登録できるようにしました。

  • 習慣の登録の画面の最初で、「記録する」か「記録しない(タイマーだけ使う)」かを選ぶ。登録したあとは変えられない
  • 記録しないを選ぶと、名前・アイコン・タイマーの欄だけになる
  • トップページとメニューに「タイマー」を足して、そこに一覧を出す。▶ でタイマーを始められる
  • 記録の画面・積み上がりには出さない。タイマーを使っても、「やった」は付かない
スマホの幅の 3 つの画面。左は習慣の登録の画面で、「記録」の欄の「記録しない(タイマーだけ使う)」が選ばれている。まん中はタイマーの一覧で、ヘッダーの「タイマー」に印が付き、仕事の集中・個人開発・ブログを書くの 3 つが、アイコン・タイマーの中身・▶ のボタンで並んでいる。右は個人開発のタイマーの画面で、「50分・環境音:ランダム(今回は、雨)・音量 100%」と出て、その下に開始のボタンがある

左から、習慣の登録(記録しない)/タイマーの一覧/タイマーの画面(ランダムで、今回の音が出る)

作りで迷ったのは、データの持ち方です。ワダチは、朝活のような習慣も、固定の習慣も、同じ「習慣」として持つ決まりにしています(種類の列を作らない)。それに合わせて、タイマーだけのものも「習慣」の 1 つにして、「記録するか」の印を 1 つ足すだけにしました。タイマーの設定(時間・音量・シーン・ポモドーロ)は、今の習慣のものがそのまま使えます。

開発環境で使ってみると、タイマーだけの習慣のタイマーを開いたとき、ヘッダーのメニューの印が「タイマー」ではなく「習慣」に付いていました。印は画面の URL で決めていて、URL だけでは、タイマーだけの習慣かどうかが分からなかったためです。画面のデータで「タイマー」を渡せるようにして直しました。

ランダムを、使うたびに選び直す

環境音やシーンには「ランダム」があります。これまでは日替わりで、同じ日なら、何回タイマーを始めても同じ音・同じシーンでした。

瞑想は 1 日 1 回なので、それで困りませんでした。ところが、タイマーだけの習慣で仕事に使うと、1 日に何回も始めます。毎回同じでは、ランダムの楽しさがありません。

そこで、タイマーを始めるたびに選び直す形に変えました。

  • 開始の前に「ランダム(今回は、焚き火)」のように、次に流れるものを出す
  • 止めてもう一度始めると、選び直す
  • ポモドーロは、集中と休憩をくり返すあいだは同じまま
  • 前回と同じものは、続けて選ばない

前回に何を選んだかは、データベースには持たず、ブラウザに習慣ごとに覚えておくだけにしました。別の端末で使った分は見ませんが、そこまでそろえなくても困らないと考えました。

シーンの「時間に合わせる」「季節に合わせる」は、ランダムではないので、今までどおりです。

Safari でだけ、シーンに線が出ていた

12 のシーンを iPad で見ていて、気づいたことがありました。

  • 清流の上のほうに、まっすぐな横線が見える。線より下だけ光が差していて、上には差していない
  • 雨の池の右上に、縦の線と、そこから右に伸びる薄い横線が見える
  • 夏の田園の雲の左側で、色がくっきり分かれている

どれも、パソコンの Chrome では出ていませんでした。

シーンの動きは、絵の上で「ここは光を揺らす」「ここは霧を流す」という範囲を決めて、その中だけを動かしています。範囲の形は多角形なので、そのままだと境目がくっきりします。そこで、範囲をぼかして、境目をなめらかにしていました。

このぼかしに使っていたのが、canvas(ブラウザの中で絵を描く仕組み)の filter です。調べてみると、Safari は、canvas の filter に対応していません(設定で有効にしないと使えず、iPhone・iPad・Mac の Safari では、ふだんは効きません)。指定しても、黙って無視されます。

つまり Safari では、範囲がぼけずに、多角形の辺がそのまま見えていたわけです。清流の横線は、光の範囲の上の辺でした。パソコンの Chrome ではちゃんとぼけるので、手元の確認でも、自動テストでも気づけませんでした。

清流のシーン。森の中の川に、左上から光の筋が差し込み、霧がかかっている。光と霧は、上のほうでなめらかに薄くなっていて、横の線は見えない

直したあとの清流。光の範囲の上のほうも、なめらかに消える

直し方は、ぼかしを自分で計算することにしました。画像の画素を読み出して、まわりの画素と平均する処理(箱型のぼかし)を 3 回かけると、filter のぼかしとほぼ同じになります。これを全部のシーンで使うようにしました。どのブラウザでも同じ計算なので、Chrome で見た目を確かめれば、Safari でも同じになります。

ぼかすのは、シーンを開いたときに 1 回だけなので、重さも気になりませんでした。

ブラウザの機能は、黙って効かないことがある。今回の教訓です。iPhone・iPad で使う人が多いサービスなので、Safari で見て確かめることを、もっと早くにしておけばよかったと思います。

本番に出した

今回の分(タイマーだけの習慣、ランダム、シーンの曲、鐘の音、Safari の線の直し)を、まとめて本番に出しました。

お知らせは、無料で使える 2 つ(タイマーだけの習慣と、ランダムと鐘の音)だけを出しています。シーンは有料の機能なので、有料版を始めるときに、まとめて知らせるつもりです。

次は

有料版の中心になるシーンが、絵・動き・曲までそろったので、いよいよ有料版の公開です。特定商取引法に基づく表記のページ、本番の Stripe の設定、テスタへのお礼のコードを用意します。

← トップページに戻る