0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

その背中、エビになってない? 叱らない姿勢チェックアプリを作りました

0
Last updated at Posted at 2026-11-03

気づいたら、背中がエビになっていませんか。

本物のエビは丸まっているのが仕事みたいなものですが、人間はそうもいきません。
そこで、背中を見守るエビを作りました。名前は Shrimpy(シュリンピー)。姿勢の「変化」に、そっと気づかせてくれる Web アプリです。

この記事は、そのアプリの紹介です。コードの話は出てきません。気楽にどうぞ。

👉 サイトはこちら: https://next-my-app-sandy.vercel.app/
(登録なしの「ためしてみる」から、すぐ触れます)

ひとことで言うと

横向きに置いたカメラで、いつもの姿勢からの変化を見て、続いたら教えてくれるアプリです。

ポイントは「いつもの姿勢と比べる」ところ。
「正しい姿勢はこれです!」と決めつけません。体格も椅子も机も人それぞれなので、自分の「いつも」を基準にします。

医療的な診断もしません。あくまで、気づくきっかけ作りです。

使い方は 3 ステップ

  1. カメラを体の真横に置く(頭・肩・腰が映る位置で)
  2. いつもの座り方で、ボタンを押して 3 秒だけそのまま
  3. 再生ボタンを押す

動画サービスみたいに、再生ボタンで始まります。あとは作業するだけです。

「登録するのはちょっと…」という方は、ログインなしで試せる「ためしてみる」もあります。こちらは基準姿勢も記録も、保存しません。

責めない。ここは譲れない

姿勢が崩れたとき、アプリが「姿勢が悪いです!」と叱ってきたら、ちょっと嫌ですよね。
Shrimpy の通知は、たとえばこんな感じです。

  • 「ちょっと背中を伸ばしてみよう!」
  • 「肩の力を、ふっと抜いてみませんか?」
  • 「画面との距離を、ちょっと見直してみよう!」

文言は全部で 8 種類あって、順番に出ます。同じ文ばっかりだと、読み飛ばしたくなるので。

姿勢が戻ったら、映像の下に「いい感じ!戻りました」と、ひとこと出ます。
叱るだけじゃなくて、戻れたときも声をかけます。

映像は、この端末から出ません

カメラを使うアプリなので、ここは大事なところです。

  • カメラの映像は、ブラウザの中だけで処理します
  • 映像もフレーム(映像の 1 コマ)も、サーバーに送らず、保存もしません
  • サーバーに残るのは、姿勢の数値、計測の記録、設定、ログインに使うメールアドレスと表示名だけ
  • 退会すると、記録・設定・基準姿勢も、まとめて削除されます

「送りません」と書くだけでは安心できないと思うので、外への通信そのものを、ブラウザの仕組みで止める作りにしています。技術的な話はここでは省きますね。

作業のじゃまをしない工夫

姿勢を気にするアプリのせいで、作業が止まったら本末転倒です。
そこで、こんな仕掛けを入れました。

  • 別のタブにいても気づける: Shrimpy のタブが隠れているときだけ、ブラウザの通知を出します
  • 浮かせ窓: 状態と経過時間だけの小さな窓を、ほかの窓の上に出せます。映像は出しません(対応しているのは、Chrome 系のブラウザです)
  • 画面が消えない: モニタリング中は、画面が暗くならないようにします
  • 座りっぱなしのお知らせ: 30・45・60・90 分から選べます。「◯分座っています。立ってみませんか」と、声をかけます
  • オフラインでも使える: 一度使った端末なら、ネットがつながらなくても、モニタリングを始めて止められます。記録は端末に貯めて、つながったら送ります
  • 暗いテーマ: 設定で「端末に合わせる・明るい・暗い」から選べます

続けやすくするための、ちいさな工夫

  • 履歴: 今日・今週・今月で見られます。日ごとのグラフと、1 回ごとの「状態の帯」があります
  • 週の目標と、続けた日数: 目標は「週 3・5・7 日」から選べます。決めなくても使えます
  • 基準姿勢は、最大 5 件: 「椅子の日」「立つ日」のように、場面ごとに分けて持てます
  • CSV で書き出し: これまでの記録を、ファイルで保存できます

「見えなかった」を、正直に分ける

席を立った。部屋が暗い。カメラが外れた。
こういうときに「姿勢が崩れた」と数えたら、うそになってしまいます。

Shrimpy は、体が見つからなかった時間を「計測できなかった」として、別に数えます。
しかも、理由も分けます。

  • 体が映っていない → 「カメラの位置を確認してね」
  • 暗い → 「明るさを確認してね」
  • 映像が止まった・カメラが外れた → 「カメラを確認してね」

履歴にも「計測できなかった時間」は、姿勢の変化とは別に出ます。記録をきれいに見せるより、本当のことを残すほうを選びました。

使っている技術

名前だけ、さらっと。

  • Nuxt 4 / Vue 3 / TypeScript
  • Tailwind CSS
  • MediaPipe(姿勢の検出)
  • Prisma(記録の保存)
  • ログインは Google アカウント

さいごに

ここまで読んでくれた、あなたの背中。
いま、エビになっていませんか?

もしなっていたら、ぐいっと伸びをして、肩をぐるっと回してみてください。
Shrimpy が言うであろうことを、先に言っておきました。

気になったら、ぜひ「ためしてみる」から。
https://next-my-app-sandy.vercel.app/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?