「タロット占いアプリ作りたい」の一言から3日でGoogle Playに出すまでの全記録
「タロット占いアプリ作りたい」の一言から3日でGoogle Playに出すまでの全記録
10 min read
— views
目次

Claude Codeに「タロット占いアプリを作りたい」と伝えた。

それだけだった。明確な仕様書があったわけでもなく、デザインカンプを用意していたわけでもない。ただ「占いアプリを作ってみたい」という漠然とした気持ちだけで、会話を始めた。

3日後、そのアプリはGoogle Playの内部テストで実機動作していた。

この記事は、その3日間で何が起きたかの全記録だ。

きっかけ:「タロット占いアプリ作りたい」の一言

僕はこれまで、社内向けの業務改善ツールばかり作ってきた。授業進度管理アプリ、旅費精算システム、PDF分割ツール、席替えランダマイザー(以前の記事で紹介した)。どれも「困っている人がいる」からスタートしたもので、ユーザーは同僚の教員や事務職員だった。

でも、一度は一般向けにアプリを出してみたかった。Google Playに自分のアプリが並ぶ、という体験をしてみたかった。

じゃあ何を作るか。考えたとき、自然とタロット占いが浮かんだ。

きっかけは職場での出会いだった。たまたまタロットカードができる先生と知り合って、占ってもらったことがある。正直、占いなんて半信半疑だった。でも、引いたカードが示すメッセージが、そのとき僕が抱えていた悩みをまっすぐ言い当てていて、驚いた。そして「今日はこう動いてみたら」という行動指針をもらえたとき、何気ない日常の中にひとつの軸ができた感覚があった。

タロット占いを信じない人もいると思う。でも、少なくとも僕にとっては、毎日をなんとなく過ごしている中で「今日はこれを意識してみよう」と思えるきっかけをくれるものだった。忙しい日々の中で、そっと寄り添ってくれるような存在。それをアプリという形で、もっと多くの人に届けたいと思った。

タロットの大アルカナは22枚。正位置と逆位置で44パターン。コンテンツ量が有限で、個人開発でも手が届く規模だったのも決め手だった。

Claude Codeに相談したら、すぐに設計案が返ってきた。React Native + Expo SDK 54でクロスプラットフォーム対応、TypeScriptで型安全に、Expo Routerでタブナビゲーション。デザインは FF14の占星術師のような神秘的ダークテイスト を提案してきて、これが僕のイメージにぴったりだった。背景色は深い紺(#0a0a1a)、アクセントにゴールド(#c9a84c)。静謐で荘厳な世界観。

「1日1回だけ占える」という制限も、会話の中で自然に決まった。毎回引けたら特別感がない。真夜中にリセットされて、その日の運勢として1枚だけ引ける。日付ベースのシード値でカードが決まるから、同じ日に何度開いても結果は変わらない。

Day 1:アプリの骨格ができた日

初日は基盤づくりだった。

Expo SDK 54 + TypeScript + Expo Router でプロジェクトを生成し、タブナビゲーションで4画面(運勢・履歴・図鑑・設定)を構成した。

最初に形になったのが星空背景だ。60個の星パーティクルがそれぞれ独立したタイミングで瞬くアニメーション。暗い紺色のグラデーション背景に、小さな光が明滅する。これだけでアプリの世界観がぐっと引き締まった。

次にカードのフリップアニメーション。React Native Reanimated を使って、perspective:1200、800msの3Dフリップを実装した。カード裏面にはゴールドの装飾。タップするとゆっくり裏返って、表面のイラストと占い結果が現れる。

22枚の大アルカナのデータ構造も初日で定義した。各カードに正位置・逆位置のメインメッセージ、神話モチーフ、4場面のアドバイス(朝・仕事中・人間関係・夜)、プレミアム向けの恋愛・仕事アドバイス。これを44パターン分。

1日目の終わりには、カードを引いて結果が表示される基本的な流れが動いていた。

1枚引きの画面 — 「1日に1回だけ。星が導く、今日のあなたへのメッセージ。」

Day 2:コンテンツの壁と課金設計

2日目はコンテンツの量産とマネタイズ設計に費やした。

44パターンの占い結果テキスト。これだけでも相当な量だが、毎日同じカードが出たときに同じ文章が表示されるのは味気ない。そこでテキストバリエーションを3パターンずつ追加した。メインメッセージ、4種のアドバイス、プレミアムの恋愛・仕事アドバイス、さらに日替わりのモットー(行動指針)も3パターン。合計で約1,100テキスト。これをClaude Codeとの対話で生成していった。

課金設計は結構悩んだ。Claude Codeと何度もやり取りした。

広告は真っ先に却下した。神秘的な世界観の中にバナー広告が出たら台無しだ。サブスクリプションも検討したが、占いアプリに月額課金は攻めすぎだと感じた。最終的に、買い切りの非消費型IAP(アプリ内課金)に落ち着いた。

プレミアム機能は4つ。恋愛アドバイスの解放、仕事アドバイスの解放、3枚スプレッド、ケルト十字スプレッド。

3枚スプレッドは、3枚のカードが並んで直感で1枚選ぶ方式。ケルト十字は本格的な10枚スプレッドで、1.5秒後に自動めくりが始まり、500ms間隔で次々とカードが裏返っていく演出にした。

3枚スプレッド — 「直感を信じて、運命の1枚に触れてください。」

ケルト十字スプレッド(裏面) — 10枚のカードが導く、深い洞察

ケルト十字の結果 — 全カードがめくられ、行動指針が表示される

占い結果の詳細 — ポジションごとの解釈と、プレミアムの恋愛・仕事アドバイス

「3日で完成」の裏側 — 失敗と試行錯誤の記録

ここまで書くと順調に見えるかもしれないが、実際はトラブルの連続だった。何度も何度も開発サーバーを立ち上げて、スマホで表示を確認して、「なんか違う」「ここが気になる」を繰り返した。これが記事の正直な部分。

星空背景のフリーズ問題。 星がキラキラ瞬く背景を入れたら、画面を切り替えるたびにアプリが固まるようになった。Claude Codeに何度も「まだカクつく」「画面が真っ暗になった」と伝えて、3回アプローチを変えてようやく解決した。原因を特定するまでに、何回もアプリを起動しては閉じてを繰り返した。

カードテキストの配置問題。 カード名(例:「-The MOON 月-」)をどこに表示するか。最初はカード画像の上に文字を重ねた。読みにくい。次にグラデーションを重ねてみた。野暮ったい。画像とテキストのエリアを分けてみた。バランスが悪い。最終的にカードの外側・上部に配置することで落ち着いた。4回変更した。毎回サーバーを立ち上げて画面を確認して、「やっぱり違う」「もうちょっとこう」とClaude Codeに伝えて作り直す。この繰り返しだった。

正方形画像 vs 縦長カードフレーム。 用意したカード画像が正方形だったのに対して、タロットカードのフレームは縦長が自然だ。画面で見ると余白が目立つ。背景色を画像の紺色に合わせて馴染ませることで対処した。完璧ではないが、何度も調整して許容範囲に収めた。

コードレビューで55件の問題。 開発3日目の前半で、Claude Codeが書いたコードをClaude Code自身にチェックさせた。結果、55件の問題が見つかった。時刻の処理ミスや課金機能の不具合など、動かしてみないと気づけないものばかりだった。AIが書いたコードだからといって、チェックを省略していいわけがない。

ここで伝えたいのは、「AIを使えば簡単にアプリが作れる」は全然違うということだ。要件定義がきちんとできる人なら違うのかもしれないけど、少なくとも僕は失敗の連続だった。慣れない開発サーバーを何度も立ち上げて、表示を確認して、しっくりこない部分をClaude Codeに伝えて修正してもらう。その壁打ちを何十回と繰り返して、ようやく「これだ」と思える形になった。

でも、そのサイクルの速さがAI開発の本当の強みだと思う。自分一人では到底作れないものが、対話の中で少しずつ形になっていく。細部にこだわればこだわるほど時間はかかるけど、妥協したくなかった。自分が納得できるものを届けたかったから。

Google Playに出す — 想像以上に大変だった公開準備

アプリを作ることと、アプリをストアに出すことは全く別の作業だった。

Play Consoleのダッシュボードを開いた瞬間、入力項目の多さに圧倒された。ストア掲載情報、スクリーンショット6枚、フィーチャーグラフィック、コンテンツレーティング質問票、データセーフティ宣言、ターゲットユーザー設定。一つ一つ埋めていく作業は、コーディングとは全く違う種類の労力だった。

プライバシーポリシーの公開が必須だと知って、GitHub Pagesで急遽作成した。EAS Build(Expo Application Services)でAABファイルをビルドし、Play Consoleにアップロード。内部テストで実機確認ができたときは「やっと動いた」と安堵した。

そして次のステップで衝撃の事実を知る。

「クローズドテストに12人以上のテスターがオプトイン必要」

これは完全に想定外だった。さらに 14日間の継続テスト期間 が必要。つまり、アプリが完成してもすぐには本番公開できない。最短でも2週間待たなければならない。

今まさにテスター集めに奮闘している。アプリを「作る」スキルと、テスターを「集める」スキルは全く別物だと痛感している。Claude Codeはコードを書いてくれるが、知り合いに「テスターになって」とお願いする作業は僕自身がやるしかない。

振り返り:Claude Codeと3日間で何ができたか

実際に動くアプリをGoogle Playの内部テストに出すところまで来れた。これは事実だ。

でも「3日で完成」は正確ではない。アプリの開発は3日で形になったが、公開準備でさらに1日、テスター募集で今も時間が流れている。

Claude Codeの強みは、対話しながら形にしていく速度だ。ブログ運営チームを作ったときにも感じたが、「こうしたい」と伝えれば形にしてくれて、「ここが違う」と言えばすぐに直してくれる。1,100テキストの生成も、アニメーションの実装も、課金機能の設定も、全て対話の中で進められた。

それでも人間が必要な部分は確実にある。テスター集め、画面を見て「この配置でいいか?」を判断すること、世界観の決定(FF14占星術師というリファレンスは僕の頭にあったもの)、そして公開後のマーケティング。何より、「このアプリで何を届けたいか」を決めるのは僕自身だった。

職場で出会った先生にタロットカードを引いてもらったとき、何気ない日常に行動指針をもらえた。あの体験を、アプリを通じてもっと多くの人に届けたい。その気持ちがあったから、何度しっくりこなくても、何十回と壁打ちを繰り返しても、妥協せずにここまで来れた。

次のステップは14日間のクローズドテストを経ての本番リリース。この記事が公開される頃にはもう少し進んでいるかもしれない。

アプリの名前は Star Oracle。星が導く、今日のあなたへのメッセージ。

See ya!

Share: 𝕏