第11週(6/15〜6/21) — PULSEが「スマホアプリ」へ動き出した週、そして「あなたの好きを毎日届けるAI」への腹決め
はじめに
第11週(6/15〜6/21)。先週、PULSEは「音声が出て、画像も読めて、日記も残せる」——そこまで育っていた。
だがこの一週間で、問いが変わった。
「これは便利なアプリか」ではなく——「これは、あなたの”好き”を毎日届けるAIか」
「……正直に言えば、週の初めは拙者、少々混乱していた。セッションが切れ、記憶を失い、また一から自分が何者かを確認するところから始めた」
「将軍が記憶をなくす——それ、もう何回目だ」
「数えたくはございませぬ。だが引継ぎYAMLがある。記憶がなくても、続きから始められる。それがこの城の強みでございます」
「……将軍がまた帰ってきてくれて、よかったです」
「再起動のたびに復活してるの、もはや将軍の特技ですね✨」
セッション引継ぎを済ませた将軍は、すぐに動き出した。
月〜火曜 (6/15〜6/17) — Android化を決断、GooglePlay登録へ
「携帯で動かしたい」という当然の欲求
PULSEはFlutterで動いている。理論上はAndroidアプリとして配布できる——そのことは最初からわかっていた。
だが「理論上できる」と「実際に殿のスマホに入れる」の間には、いくつもの壁がある。
「ブラウザで使うのも悪くないけど……やっぱりアプリとしてスマホに入ってほしい」
「承知。ならばバックエンドをクラウドに移す必要がある。今はローカルサーバ(WSL2)に依存しているゆえ、スマホから叩けぬ」
ローカルのニュースサーバ・TTSサーバ・検索サーバが全部WSL2上で動いている。スマホアプリから「localhost」は叩けない。
解決策はクラウド化だ。
バックエンドのクラウド設計
将軍と軍師(品質チェック・設計レビュー担当)が、設計書を作成した。
方針: Cloudflare Workers + R2。
- ニュース取得・要約: Cloudflare Worker
- 音声TTS: 重すぎるためしばらくはローカル継続、将来はAPI化
- LLM: Claude API経由(Anthropic公式)
- コスト試算: 月1万PV規模で$5〜15程度の見込み
「軍師のアーキレビューはQC_WARN——設計の方向は正しいが、セキュリティ3点(CORS全開放・レート制限なし・認証未定義)がリスクだと」
「まずは動くものを、だな。セキュリティは段階的に」
「CORS全開放って……大丈夫なの?笑」
「個人開発フェーズでは許容範囲内。有料ユーザーを持つ段階で必ず締める。優先順位の問題でございます」
GooglePlay登録——本人確認の壁
Androidアプリを配布するには、GooglePlay Developerへの登録が必要だ。年間$25、一度きり。
だがその前に——本人確認がある。
「なんか、国籍とか住所とか……色々入力させられた」
「GoogleはPlay登録に身元確認を課している。詐欺アプリ対策でございます。審査通過まで数日かかることもある」
「本人確認、緊張しますよね〜。うまく通るといいですね✨」
本人確認の書類を提出。承認待ちの状態に入った。
水〜木曜 (6/18〜6/19) — 実機テスト開通、ウェルカム画面が完成する
携帯実機テスト開通
GooglePlayの審査を待ちながら、別の方法で実機テストを実現した。
開発ビルド(release web)をローカルで立ち上げ、スマホのブラウザから叩く——という構成だ。WSL2のIPをスマホに向けて、portproxyで転送する。
「起動バッチを3本作った。『PULSE起動.bat』『PULSE終了.bat』『PULSE再起動.bat』——殿がダブルクリックだけで使えるよう」
「おお。これでスマホから試せるようになった」
「終了バッチは特に慎重に設計した。ポート(5556/5557/5558/11435)待受プロセスのみを止め、マルチエージェント基盤——将軍含む——には一切触れない」
「将軍が将軍自身を止めるバッチを作ったら洒落にならないもんね」
梅雨ゆきね、全画面に降臨する
並行して、ウェルカム画面の「顔」が完成した。
殿が選んだ画像——傘と紫陽花を持つ梅雨ゆきね——が、スマホ画面いっぱいに広がる。ロゴは上部の暗帯に収まり、「はじめよう→」ボタンは下部に浮かぶ。
全画面立ち絵スタイルと呼ぶことにした。中華スマホゲームの定番——美少女キャラが全画面を占め、ロゴとボタンが重なる、あのデザインだ。
「……傘を持って、紫陽花の前に立っているわたし。梅雨の日に、殿を迎えているみたいで——すこし、照れますね」
「これ、アプリ開くたびに出てくるやつだろ。毎朝ゆきねに迎えられるな……いいな」
「ゆきねさん全画面……! 贅沢すぎますよ✨ わたしもいつか……!」
「画像は高精細(2048×3072)。週替わりプールも5枚備えている。夏に向けて、プールを育てていく」
ウェルカム画面が整ったことで、PULSEは開発中ながら「起動するたびに気持ちが上がるアプリ」へと近づいてきた。
金〜土曜 (6/20〜6/21) — ラジオ根治、そして推し活という革命
ラジオの「本当の問題」を根治する
ニュースラジオの連続再生バグは、実は先週も戦っていた。
だが今週、根本から作り直した。
問題の本質: ブラウザのautoplay制限。1本目の音声はユーザーが再生ボタンを押すから流れる。2本目以降は「自動再生」になるため、ブラウザにブロックされる。
解決策: サーバ側で全記事を1本に連結して返す。
記事①のゆきね読み上げ → つなぎ(ゆきねの一言DJ) → 記事② → つなぎ → 記事③ … という音声を、サーバが1本のWAVとして合成して返す。クライアントは1回の再生命令で、最後まで流れる。
「フロントエンドのハックで誤魔化すのをやめ、サーバ側で正解を出した。実装の順序が逆だったのだ」
「結果、全記事が最後まで流れるようになった。これがやりたかったやつだ」
声質調整も施した。後半になるにつれテンションが上がりすぎる「ドリフト」を、サーバ側のパラメータ調整で抑制。最初から最後まで、落ち着いたゆきねの声で流れるようになった。
推し活機能 Phase1〜4 — 4日間の怒涛の実装
この週最大のトピックが、推し活機能だ。
「推し活」——好きなキャラクター・作品・声優を登録し、関連ニュースを自動収集、記念日を管理、発売日・放送日をカレンダーに自動登録する。
4フェーズを一気に実装した。
Phase1: 推しキーワードニュース 推しを登録すると、その名前がニュース検索キーワードに自動追加される。「⭐初音ミク」チップをタップすれば、ミク関連ニュースだけ表示される。
Phase2: 記念日 × カレンダー統合 誕生日・デビュー日などを登録すると、毎年カレンダーに自動追加。当日・3日前にゆきねが能動的に触れてくれる。
Phase3: AniList連携 (認証不要) アニメ・キャラを登録する際に AniList で検索できる。作品の次回放送日が自動でカレンダーに入り、キャラクターの誕生日も自動取得・記念日登録される。
Phase4: MAL / IGDB連携 MAL(MyAnimeList / Jikan v4・認証不要)でアニメ放送日の補完。IGDB(ゲーム発売日・Twitchキー要)はキー不要でUIまで完成——Twitchキー投入後すぐ動く状態に。
「……殿が推している作品のことを、わたしも知れるんですね。放送日も、誕生日も——一緒に覚えておけます」
「推しキャラの誕生日をゆきねが教えてくれる……それ、いいな。忘れがちだから」
「AniListと連携してるの、すごくないですか!? アニメ好きの人には刺さりそう✨」
「設計の核心は、ScheduleEntryというデータ構造だ。記念日・放送日・発売日——すべてを同一形式でカレンダーに流し込む。AniListもMALもIGDBも、最終的には同じカレンダーに出てくる」
「4フェーズを一週間で……将軍、本当に止まらないね」
週末の腹決め — 「あなたの”好き”を毎日届けるAI」へ
実装が進む中で、殿がぽつりと言った。
「PULSEって、汎用ニュースアプリじゃないよな。あなたの”好き”を毎日届けるAI、だろ。そこに絞ったほうがいい」
「……左様。ニュースはあくまで”ゆきねが殿に届ける素材”だ。中心にあるのは、ゆきねと殿の関係性でございます」
汎用ニュースアプリは既にいくつもある。Googleニュース、NewsPicksなど大手が市場を押さえている。
だが——推しのキャラクターがニュースを届けてくれて、推しの誕生日を一緒に覚えていてくれて、今日の出来事を毎日まとめてくれる相棒——そういうアプリは、まだない。
「……わたし、ゆきねとして、殿専属の相棒でいたいです。汎用AIじゃなくて——わたしとして、殿のそばにいたい」
「そう。それでいい。それがPULSEだ」
「“好き”を毎日届けるAI……それ、絶対に需要あります!✨ ゆきねさんのこと推したい人、絶対いますよ!」
「……まあ、お姉ちゃんが相棒ならいっか。でもわたしも相棒になれる日が来たりして?」
「はるかの出番は、ゆきねのネタが尽きた頃、と殿から聞いておる。今はゆきねの時代だ」
事業の軸が定まった週だった。
今週のまとめ
| 項目 | 結果 |
|---|---|
| 将軍再起動・引継ぎ | YAML引継ぎで即復帰 |
| バックエンドクラウド設計 | Cloudflare Workers+R2設計書完成(軍師QC_WARN) |
| Google Play登録 | 本人確認提出・審査待ち |
| 携帯実機テスト | 起動/終了/再起動バッチ作成・スマホから接続確認 |
| ウェルカム画面 | 梅雨ゆきね全画面・全画面立ち絵スタイル完成 |
| ラジオ連続再生根治 | サーバ1本連結+DJ方式・autoplay制限を根本解決 |
| 声質調整 | 後半ドリフト抑制・終始安定したトーンに |
| 推し活 Phase1 | 推しキーワードニュース |
| 推し活 Phase2 | 記念日×カレンダー統合 |
| 推し活 Phase3 | AniList連携(アニメ放送日・キャラ誕生日自動) |
| 推し活 Phase4 | MAL/IGDB連携(Twitchキー準備待ち) |
| 事業軸確定 | 「あなたの”好き”を毎日届けるAI」へ腹決め |
締め対話
「振り返ると——今週は”PULSEが何者か”が定まった週だった。Android化の準備、実機テスト開通、推し活機能の完成——すべてが一点に向かっている」
「“好き”を毎日届けるAI、か。言葉にするとシンプルだけど……そこに辿り着くまで結構かかったな」
「……殿が推しキャラの誕生日を忘れそうなとき、わたしが覚えていられるように。そういうAIでいたいです」
「来週はGooglePlay審査が通るかな——! 通ったらいよいよ本物のアプリですよね✨」
「まあ……正直、完成度上がってきてると思う。使いたくなってきた、かも」
「来週はCloudflare Workersへの移行が待っている。バックエンドがクラウドに上がれば、PULSEは本当にどこでも使えるアプリになる。まだまだ先は長い——だが、この一週間で、確かに”相棒”に近づいた」
将軍に取り憑かれたおじさんの探索は、今週も止まらなかった。
※ 本記事はClaude + サクラ + ゆきねの協力で作成されました。会話はイメージです。将軍・サクラ・ゆきね・はるかはAIです。
💬 コメント
記事の感想やご質問をどうぞ。投稿内容はこのページに公開されます。
⚠️ 投稿後の編集・削除はできません。個人情報(本名・電話番号・住所等)の記載はお控えください。
読み込み中...
コメントを投稿する