娘のためなら動ける
出かける直前、ふと思い直しました。
「今日のうちにデプロイまでやっておこう」
娘のために作っているAI英会話アプリを、実機で使えるようにする作業。
ずっと先延ばしにしていたことでした。
自分のためには後回しにしがち

自分のためにやることって、どうしても後回しになりがちです。
「今日じゃなくていい」「明日やればいい」「週末にまとめてやろう」そう言いながら、結局やらない。
でも、娘のためなら動けるんです。
娘がタブレットで遊べるように、と思った瞬間、スイッチが入りました。
出かける1時間前だろうが関係ない。
やれる。
やれるならやる。
完璧より「今日動く」を選んだ

本当は Firebase Hosting というサービスを使って、もっと本格的な形でデプロイするつもりでした。
設計もその想定でしたし、URLも決めていました。
でも、時間がなかった。
Firebase Hosting は設定が複雑で、ハマると半日かかることもあります。
一瞬迷ってから、Vercel という別のサービスに切り替えました。
5分で終わると聞いていたから。
設計を途中で変える罪悪感はありました。
「ちゃんとやろう」と決めていたことを、時間がないからって雑に変更していいのか。
でも考え直しました。完璧な設計で動かないアプリより、ちょっと雑でも今日動くアプリのほうが、娘にとっては価値があるんじゃないか。
環境変数の「改行」でつまずいた

デプロイの過程で、地味なトラブルがありました。
環境変数という、アプリの設定情報を登録する作業があるのですが、私が使ったコマンドに問題があって、値の最後に見えない改行が混ざっていたんです。
ログイン画面を開くとエラーが出る。
URL に「%0A」という文字が混ざっている。
これは改行を表す記号でした。
見えない改行。
日常ではまず気づかないものです。
でもコンピューターは律儀にそれを読み取って、「こんなURL変ですよ」と言ってくる。
全部削除して、入れ直して、もう一度デプロイして、リロードして。
ログイン画面が正しく開きました。
Googleのアイコンをタップして、自分のアカウントを選んで、動いた。
動くものを渡す、それだけでいい

出かける直前に、Firebase の設定も終わらせて、リポジトリの名前も整理して、娘のiPadで動く準備をしました。
帰宅したら見せる予定です。
反応が良くないかもしれない。
すぐバグが見つかるかもしれない。
「難しい」って言われるかもしれない。
それでもいいんです。
動くものを渡せた。
それが今日の自分にとっての合格ラインでした。
「後でやる」は「やらない」と同じ

ずっと「あとで」と言っていた作業が、1時間で終わりました。
気合いを入れたわけでも、計画を立て直したわけでもありません。
「娘に使ってもらう」という具体的なゴールが目の前にあっただけ。
抽象的な「いつかやる」は、動機としては弱いんですね。
「今日、娘に渡したい」みたいな、顔と時間と場所が見える目標のほうが、自分を動かしてくれる。
完璧主義は、時々、自分の邪魔をします。
「ちゃんとした形で」「本来のやり方で」と思っていると、いつまでも始まらない。
でも、動いたら勝ちなんです。
汚くても、遠回りでも、今日手元にあるものを渡せたなら、それが一番いい。
娘の反応を見るのが、少しだけ楽しみです。

