没入を可視化したタイマー、enflo
(github.com/taewoongheo)没入のためのタイマーアプリです。
エントロピー(無秩序度)という概念を没入になぞらえ、パーティクルインタラクションで表現しました。タイマー中の妨害イベントと使用パターンをもとに、没入度をエントロピーとして表現します。タッチやドラッグで操作できます。
なぜ作ったのか?
単なる集中時間の記録を超えて、自分の没入を直接感じられたらどうだろう? という発想から始まりました。
リアルタイムで変化する没入を、直接体験できる形にしたいと思いました。
既存のタイマーアプリと何が違うのか
- エントロピーの可視化: 没入が深まるほどパーティクルが整列し、乱れるほど拡散します。
- 没入度の測定: アプリ離脱、一時停止、スクロールなどの妨害イベントと、それまでの没入度をあわせて分析します。
- 動作例: タイマーを長く止めるとエントロピーが上昇し、没入が安定して続くとエントロピーが下がり、画面に即座に反映されます。
どのように作ったのか?
- 高性能グラフィックレンダラー Skia でパーティクルを実装しました。
- 物理シミュレーション(減衰・相互作用など)を自前で実装し、自然な動きを作りました。
今後の計画
- タイマー中の没入度分析の高度化: 妨害イベント(例: デバイスの揺れ)追加、計算ロジックの精緻化
- Android 配布(現在は個人利用目的で iOS を優先配布)
技術スタック
- react native(expo)
- react native skia
- react native reanimated
- react native gesture handler
6件のコメント
何をどう測定するのかについての話がないので、何をするアプリなのかよく分かりませんね。無秩序度ってどうやって測定するんですか?
もしかして、スマホを使っている時だけ無秩序度が測定されるんですか?
タイマーの実行中、ユーザーのイベントを収集します。アプリ離脱、一時停止、スクロールといったイベントに加え、タイマーの長さや最近のセッション履歴などをあわせて分析し、スコア化します。
そして、そのスコアに基づいてパーティクルインタラクションを表現します。
ライセンスはわかりますか?
GitHubでは実装構造を参考にできるよう公開しています。
商用アプリのため、オープンソースライセンスは適用していません!
App Storeのリンクも投稿していただけるとよいと思います
https://apps.apple.com/app/enflo-visual-flow-timer/id6753640753
App Storeのリンクです!