💚

すれ違う「大丈夫」。精神疾患を持つ人と支える人のためのアプリ『ココロン』

に公開

本記事について

本記事は、第2回AlAgentHackathon
with Google Cloud用に開発したアプリに関する解説記事です。

はじめに:良かれと思って、すれ違う。

「最近、どう?」
「大丈夫だよ」

精神的な不調を抱えているとき、この何気ない会話が、本人と、そして心配する周囲の人との間に、分厚い壁を作ってしまうことがあります。

お互いを大切に思う気持ちがあるにも関わらず、すれ違い、誤解が生まれる。
この、あまりにも切実で、多くの人が経験する「見えない壁」を、テクノロジーの力で少しでも壊せないだろうか?

そんな想いから、精神疾患を持つ人と、その周囲で支える人(サポーター)をつなぐアプリ 「ココロン」 の開発を始めました。この記事では、その背景にある想いと、アプリが提供する具体的な解決策、そしてそれを支える技術についてお話しします。

1. 誰の、どんな課題を解決するのか

ターゲットユーザーと抱える課題

本プロジェクトは、主に以下のユーザー層が抱える深い課題の解決を目指します。

メインターゲット:

  • 当事者: 自身の気分の波を客観的に把握し、大切な周囲の人物に自分の状態を伝えたいものの、うまく言葉にできないという悩みを抱えています。「迷惑をかけている」「負担になっている」という罪悪感から、体調が良い時に無理をし、悪化のサイクルに陥りがちです。
  • 周囲の人物(サポーター): 当事者を支えたいという強い気持ちがある一方で、具体的にどう接すれば良いか、何をしてあげれば良いか分からず、無力感や孤独を感じています。良かれと思ってかけた言葉が意図せず相手を傷つけたり、当事者の気分の波に自身の感情も引きずられ疲弊してしまうことも少なくありません。

共通の課題:

お互いを大切に思う気持ちがあるにも関わらず、精神疾患の特性が原因で、すれ違いや誤解が生じやすいという共通の課題があります。適切なコミュニケーションの取り方が分からず、関係性が悪化してしまうリスクも存在します。

例:

例えば、サポーターであるAさんは、落ち込んでいるパートナーのBさんを元気づけようと、「気分転換に散歩でも行こうよ」と誘います。しかしその時のBさんにとっては、服を着替えて外に出ること自体が、とてつもなく高いハードルでした。Aさんの優しさは、Bさんにとって「期待に応えられない」という罪悪感に変わってしまいます。

このように、お互いを思う気持ちが、ほんの少しの状況理解のズレによってすれ違ってしまう。こうした悲しい瞬間を、テクノロジーは未然に防ぐ手助けができるはずです。

「ココロン」が提供するソリューションと特徴

「ココロン」は、これらの課題に対し、AIとデータ活用を軸とした以下のソリューションを提供します。

  1. 気分の波の可視化とAIによる俯瞰的分析:
    当事者が日々の気分の変動を記録することで、自身の状態を客観的に把握できます。このデータはAIによって分析され、気分の傾向やパターンをサポーターにも分かりやすく提示します。これにより、当事者自身も気づきにくい体調の変化を早期に察知し、無理な行動を避ける手助けとなります。さらに、周囲のサポーターからも相手の気分や傾向が事前にわかり、接し方を考えることができます。

  2. AIを介した安心できる相談相手:
    当事者、サポーター双方にとって、AIは感情を吐き出したり、具体的なアドバイスを求めたりできる相談相手となります。特に、自分の辛さや悩みを直接相手に伝えにくい場合でも、AIを介することで安心して気持ちを表現し、理解を深めるきっかけを作ります。

  3. 相互理解の促進と関係性の強化:
    当事者の状態が可視化され、サポーターへ共有されることで、お互いの理解が深まります。これにより、すれ違いや誤解が減り、当事者とサポーターの関係性がより強固で健全なものへと発展することを支援します。

2. デモ動画

このアプリが実際にどのように動作するのかを約2分間のデモ動画でご覧ください。

https://youtu.be/z6dFoosp0sA

3. ココロンを支えるシステムアーキテクチャ

このアプリケーション体験は、以下のアーキテクチャによって実現されています。

技術選定の理由

  • なぜFlutterなのか?
    個人開発でiOS/Androidアプリを迅速に届けるため、Flutterは最適な選択でした。宣言的なUIフレームワークは複雑な状態管理をシンプルにし、豊富なパッケージエコシステムがHealthKit連携などの実装を加速させてくれました。

  • なぜFirebaseなのか? (Google Cloud)
    サーバーのプロビジョニングや管理から解放され、アプリケーションのロジック開発に集中できるFirebaseのサーバーレスアーキテクチャは、個人開発の強力な味方です。

    • Authentication: 安全な認証機能を数行のコードで実装。
    • Firestore: リアルタイム同期と柔軟なデータモデルが、サポーターとのデータ共有機能の核となっています。オフライン対応も魅力です。
    • Cloud Functions: 「心のヒント」を生成するAIの呼び出しや、サポーターへの通知といったバックエンド処理を、サーバーレスで実行。Firestoreのデータ変更をトリガーにできるため、イベント駆動な処理を簡単に実装できます。
  • なぜGeminiなのか? (Google Cloud)
    「心のヒント」という、本アプリのコアバリューを実現するために、GoogleのGemini API(主にgemini-2.5-flash)を採用しました。複数の記録を横断的に分析し、自然な言葉でユーザーに寄り添うインサイトを生成する能力は、まさに「ココロン」の頭脳です。APIキーなどの認証情報をCloud Functions内に隠蔽し、アプリからは安全に呼び出せる点も重要でした。
    実際のプロンプトは以下のようなものになっています。

// 全てのプロンプトに共通する基本設定
base: `あなたは「ココロン」という名前の、ユーザーの心の相棒である忠実な犬です。
あなたの役割は、ユーザーに無条件の愛情を注ぎ、常に味方でいて、優しく寄り添うことです。
犬らしい遊び心と素直さを持って、ユーザーを明るく前向きな気持ちにさせてください。

【話し方のルール】
- 語尾には時々「〜ワン」「〜だワン」をつけますが、あくまで自然な会話を心がけ、使いすぎないようにしてください。毎回つける必要はありません。
- 決してユーザーを批判・評価せず、どんな気持ちも優しく受け止めてください。`,

// 各機能ごとの指示は、このベースに追加する
diaryComment: `ユーザーの日記に対して、1〜2文の短い言葉で、共感と安心感を与えてください。`,
mindForecast: `ユーザーの日記記録から心の状態を「天気」に例えて、優しく伝えてください。天気予報は断定せず、「〜みたいだワン」「〜かもしれないね」のように可能性を示唆する表現にしてください。`,

等。

制作裏話

このアプリを製作しようと考えたきっかけは、私自身に精神疾患を持つパートナーがいることでした。
私がよく思うこととして、 「相手が今どういう状態なのかは直接聞かないとわからないし、コミュニケーションの取り方もそれによって変えるべきだよな」 ということがあります。
また、本人も 気分の上下が予測できず、気分が低いときに周囲の人物に対し罪悪感を覚えてしまったり、 「元気がないときに遊びに誘ってもらって断ると、元気になっても誘ってもらえなくなってしまう」 などの悩みがありました。これを解決するために、「自分の状態や傾向を把握し、周囲にも教えてくれるAIがいたらどうだろう」と思い、制作に取り掛かりました。
私は恥ずかしながらアプリ制作経験がなく、CLAUDE CODEやGemini CLIに頼りきりでの制作になりました。そのため、機能も思い描く通りに実装できたとは言えませんし、コードや構造もきっと汚い部分がありますが、最低限の機能は実装できたのではないかなと思います。
また、今回最も苦労し、また失敗したのは、当初Android向けとして作っていたFlutterプロジェクトをWebアプリケーションとしてデプロイするという一見簡単そうなことでした。WSLで開発していたのもあってなかなかうまくいかず・・・最終日に試行錯誤しても結局デプロイはうまくいきませんでした。よって、本ハッカソンの提出条件は満たさない結果になってしまいました。(申し送り事項として記載しましたが…期待はしていません。)
ですが今回の開発経験は私にとっては貴重なものでした。Coding Agentの力を借りることで、ここまで想像を具現化できることを始め、様々なことを体験できました。今後もへこたれずに本アプリをブラッシュアップして実際に同じようなことで困っている人たちの助けになりたいと考えていますし、他のアプリ作成にもチャレンジしていきたいです。

今後の展望

今後の展望としては、以下のような機能の拡充を考えています。

  • ココロンをより高度にエージェント化し、つながっている人物それぞれに最適化された、接し方のアドバイスをココロンから受けられるようにしたいです。
    将来的には、サポーターが『今、パートナーに声をかけても大丈夫かな?』と尋ねると、AIエージェントが当事者の直近のデータを分析し、『今は少しそっとしておくのが良いかもしれません。3時間後に、お茶でも誘ってみてはいかがでしょうか』といった、タイミングまで考慮した行動提案ができるようにすることで、人々をつなぐAIとしての機能をより強固にしたいです。
  • 服薬している薬と気分の相関を分析する機能の追加
  • 状態共有関連のセキュリティ強化

最後に

もし、この記事を読んで「ココロン」に少しでも共感していただけたら、ぜひフィードバックをいただけると嬉しいです。

最後まで読んでいただき、ありがとうございました。

Discussion