チャットアプリケーションの開発

2025年10月30日

みなさん、おはようございます。ただいまAM1:53。寝たのは8時で起きたのが23時。仕事開始は24時。0時ともいう。

人が寝静まった時間というものは、それだけでワクワクします。

人と違うことに価値がある。AIと共に生きる石井です。

さて、ここでは、チャットアプリケーション開発の中身をみていきましょう。

構成としては、

Reactフロントエンド(UI Compornent、axios通信、localStorage)

Laravel API(Controller, Model, CORS対応、CSRF無効)

MySQL DB(diagnosis_sessions, diagnosis_logs)

Reactは、JavaScript拡張ではありますが、フロントエンドに特化して、コンポーネント開発ができるというところに価値があります。

フロントというのは、一般の利用者側のスマフォとかPCとかの画面側で見ているところになります。

その部分を分離することと、サーバサイドから切り離してクライアント側で実行することには非常に大きな意味と意義があります。

JavaScriptはもともとクライアント側のリソースを使って動作します。もちろんこのReactでつくったアプリもクライアント側で動作するようにしてあります。(サーバサイドでレンダリングしたいという目的の場合は別途)

ReactからサーバへのやりとりはすべてAPIをつくってやりとりしますので、DBへ直接アクセスなどはしません。

テーブルを設計してマイグレーションしてしまえば、そのテーブルへのインターフェイスをAPI、具体的にはコントローラのメソッドとしてつくることは非常にシンプルです。

そして、そのAPIを呼び出すのは axiosで通信してJSONで結果を返すようにしておくと扱いしやすいです。

フェーズAPI関数エンドポイント内容
Phase0postStart()/api/diagnosis/startセッション開始
Phase0〜2postLog()/api/diagnosis/log発言・回答ログ保存
Phase0/ResultpostComplete()/api/diagnosis/complete診断完了・ユーザー情報保存
EntrypostEntry()/api/diagnosis/entry特典申込登録
Result/CompletegetComplete()/api/diagnosis/{token}診断結果取得

🧭 React診断チャット:完全UXフロー(Start → Complete)

診断をおこなうさい、開始ページでセッションを初期化します。セッション自体はLaravel側で生成したセッショントークンを保管して使いまわします。初期情報収集では名前やメールアドレスなどの質問に答えた情報を保管し、フェーズ1,フェーズ2ではそれぞれ用意した質問に対応した回答結果を保存します。診断結果を表示して、申し込みフォームへと誘導します。フォーム入力してもらい送信したら、最後にもう一度診断結果を表示しておわりです。

フロントエンドの開発はレイアウトの決定、スタイルCSSの決定など見栄えの部分で決めておかないと、あとからの影響が大きいです。

特に、スマフォ側のブラウザキャッシュが強力なので、その影響により変更が反映されないなどの混乱になる原因になります。

ほんとフレームワーク、ブラウザ、ありとあらゆる点でキャッシュは開発上での最優先チェックポイントです。

🧭 StartPage:診断導入フェーズの構成

🔹 主な責務

  • YouTube動画の埋め込み再生(IFrame API)
  • 再生終了後に /diagnosis へ自動遷移
  • セッション初期化(postStart())を強制実行し、localStorage に保存

🔹 技術ポイント

機能実装内容
セッション初期化postStart() を呼び出し、diagnosis_session_tokenlocalStorage に保存
動画再生YT.PlayerplayerRef に格納し、終了イベントで navigate("/diagnosis")
再生完了表示isEnded によりメッセージ切り替え

本当は、自動再生させたかったのですが、無音動画でないと自動再生はAPIでできないYoutubeの仕様制約があります。まあ、ここはユーザの意思で再生するで問題ないです。

手帳學 簡易診断アプリケーション

最新のお知らせ

thumb
2026年1月4日
PostgreSQL+pgvector ベクトル検索テスト(Cosine距離 + AI要約)

類似検索(ベクトル)対応:pgvector このpgvectorの記事を...

thumb
2026年1月4日
AIの仕組みについて

Geminiの仕組みにGeminiに聞いてみる。その中身を紐解いていき...

thumb
2025年12月26日
AIの基本をおさらい

1. いま言われる「AI」は何を指しているか 最近話題のAI...

thumb
2025年12月19日
SUNOで生成した楽曲を公開

https://iplusone.co.jp/suno-songs 12/1から開始し...

No Image
2025年12月18日
曲を作るという世界のパラダイムシフト

ギターを弾くとコード進行とかメロディラインとか、フレーズと...

thumb
2025年12月2日
WEBアプリケーションを取り巻く開発環境、開発言語について考える

WEBアプリケーションを取り巻く「開発環境」と「開発言語」につ...

thumb
2025年12月2日
最高なAIのアプリ SUNO

今一番エキサイティングなAIアプリは、このSUNOだろう。音...

No Image
2025年12月2日
事業計画を作るAIチャットを作成する

「事業計画を作るAIチャット」を本気で“実用レベル”に落とし込...

No Image
2025年11月30日
Spotifyのリンクを埋め込みできるようになりました。

https://open.spotify.com/intl-ja/track/2UYBoHQfheo5OtnjRd9...

thumb
2025年11月29日
スピードと量 深みと質の担保

さあ、もうスピードと量についてはAIにお任せして、人間は...