AI講師(学習支援Webアプリ)個人開発
2026.08.26 —
現在(本番稼働中)
Cloudflare Workers / Hono / React / TypeScript / Gemini API /
Git
参考書を「読むだけ」で終わってしまい理解度が測れないという課題に対し、教材テキストを貼り付けるとAIが学習に適したステップへ分解し、チャット形式で講義するWebアプリを個人開発しました。講義中に質問でき、確認テストで理解度を測り、誤答した問題だけを復習できます。
講義画面。左に講義一覧、中央にAIとのチャット、右に進捗状況を表示
使用技術
Cloudflare Workers / Hono / Cloudflare Workflows / Cloudflare D1
/ React / Vite / TypeScript / Tailwind CSS / Gemini API
工夫した点
-
実行基盤にCloudflare
Workersを採用し、fetch()の待機時間がCPU時間に算入されない特性を利用して、AIの応答待ちが実行時間の制約にならない構成にした
-
数分かかる講義生成をCloudflare
Workflowsの非同期ジョブに切り出し、リクエストの生存期間と切り離して進捗を追えるようにした
-
受講中の費用が「教材全文を毎ターン読む」部分に支配されると分析した上でモデルを選定し、コンテキストキャッシュを効かせて入力トークンの9割以上をキャッシュから読ませ、講義1件あたりの費用を他社構成の約1/5に抑えた
-
AIの応答をNDJSONでストリーミングし、生成完了を待たずに表示を始めることで待ち時間の体感を短縮した
-
確認テストの設問を各ステップと1対1に対応させず、複数ステップを横断しないと解けない設問を混ぜることで、暗記では解けない測定を実現した
難しかった点
-
費用・生成速度・出力品質がトレードオフの関係にあり、実測値を取りながら基盤とモデルの構成を判断する必要があったこと
-
初回トークンの到達が4.1秒となり、自ら設定した3秒以内という目標を達成できていないこと(改善を継続中)
成長したこと
動くものを作るだけでなく、実行基盤やAIモデルの特性を費用・応答速度という定量的な指標で比較し、根拠を持って技術選定を行う力を養いました。また、要件定義書に設計判断を記録しながら実装を進め、個人開発を本番運用まで到達させる力を身につけました。
iOSアプリ個人開発
2026.02 — 2026.03
Swift / SwiftUI / Firebase / Xcode / Git
習慣継続において「個人の意思だけでは継続が難しい」という課題に対し、ユーザー同士でルームを作成し、達成状況を共有することで継続を促すiOSアプリを個人開発しました。
アプリ紹介動画
https://youtu.be/9xsQYMTqJWE
使用技術
SwiftUI / Firebase Firestore / Firebase Authentication / Swift
Concurrency
工夫した点
-
View から Firestore
を直接触らせず、認証・ルーム・ミッション・フレンド・進捗といった役割ごとにサービスクラスを分ける
-
NavigationStackのpathをenum型で管理し、画面遷移を状態として一元制御
- カレンダーUIを既存コンポーネントに頼らず自作
難しかった点
- 途中でデータ構造を変えた際に発生したバグを修正したこと
- Apple Developer Program まわりの理解
成長したこと
機能を実装するだけでなく、ユーザーの課題を分析し、行動を変える機能を考える力、また、直感的な操作ができるUIを考える力を養いました。
Unityゲーム個人開発
2025.06 — 2025.07
Unity / C# / Git
警備員の目を避けながら館内の宝石を盗むステルス型3DゲームをUnity・C#で個人開発しました。
ゲームプレイ動画
https://youtu.be/u-CJaXyWhtQ
使用技術
Unity / C# / NavMeshAgent / Animator / Selective Bloom /
PlayerPrefs
工夫した点
- NavMeshAgentを用いた警備員AIの巡回・追跡ロジックを実装
-
SerializeFieldを活用し、パラメータをインスペクター上で調整可能にすることで拡張性を確保
難しかった点
UI実装においてオブジェクトのactiveSelfの管理が複雑化してバグが頻発したこと
成長したこと
ゲームの企画から実装において、ゲームの面白さを構成する操作性・成長性・リスクリターンなどを要素分解して考え、ユーザーの体験を考えながら制作する力を養いました。