少し前に、2本目のiOSアプリ「いただき帳」の公開記を書きました。
その締めで「3本目の企画はもう動き始めています」と書いたのですが、今回はその3本目、医療費控除の記録アプリ「おかえり医療費」の話です。
ただ、先に言っておくと、このアプリはまだ公開できていません。
今回も当然公開するつもりで、むしろ過去2本より入念に準備して作ったのですが、審査で「似たアプリがすでにある」と判定されて、いま止まっています。
「そこまで調べて落ちるの?」と思うかもしれません。
自分もそう思っています(´ㅂ`; )
個人開発の競合調査って、どこまでやれば足りるんでしょうか。
自分は3本目にして初めて、作る前にAIにWebの調査を任せて、競合13本を片っ端から調べました。
勝ち筋も6つ見つけて、盤石のつもりでした。
でも、AIに調べてもらった結果は、自分で実機を1回触るレベルにも足りていなかったんですよね。
ライバルアプリを触ったら調査の結論が2つひっくり返り、そのアプリが書き出したファイルを開いたら、設計の答えがそのまま書いてありました。
ただ、そのおかげで企画は確実に良くなりました。
この記事では、調べたつもりが実物に覆されて企画を作り直した経緯と、そこまで準備しても引っかかる審査の落とし穴を、そのまま書き残していきます。
3本目のテーマは医療費控除|「面倒だから諦める=お金を捨てている」をなくす
3本目は、テーマ選びのやり方から変えました。
それまでは「自分が困っていること」から案を決めていたのですが、今回は先に案を決めず、世の中の「めんどくさい」を集めるところから始めました。
Claude Codeのサブエージェント4本に切り口を変えて並列で調査させます。
「めんどくさい」×「管理」のような掛け合わせで検索する班、「アプリ探したけど無い」という直接の声を拾う班、★1〜2のレビューを掘る班、生活まわりの分野を順に見ていく班、という分担です。
集まった候補は6つ。
その中で唯一、2つの班が独立にトップ評価を付けたのが「医療費控除の記録」でした。
決め手は3つ。
まず、痛みが実在すること。
閲覧5,558回の知恵袋に「めんどくさかったらやらなくてもいいんですか?」という質問が残っているくらいで、面倒だから諦めて、戻ってくるはずのお金を捨てている人が確実にいます。
次に、リーダー格のアプリの評価が★3.9と、記録系としては異例に低いこと。
不満のレビューが具体的で、「何を作れば刺さるか」がほぼ書き起こせる状態でした。
最後に、通院の交通費・市販薬・自費診療は手で記録するしかないと、国税庁自身が明記していること。
マイナポータルの自動化が進んでも、廃れない領域が制度の側で確定しています。
作るものの構想はこうなりました。
家族の医療費と交通費を都度メモして、確定申告にそのまま使える形で出力する、端末の中だけで完結するアプリ。
名前は「おかえり医療費」。払ったお金が「おかえり」、です。
- 家族の医療費と、見落としがちな通院の交通費を記録する
- 国税庁の「医療費集計フォーム」(xlsx)に書き出して、確定申告にそのまま使う
- 買い切り・広告なし
この時点では、何も間違っていません。
問題はここからの競合調査でした。
Web調査で勝ち筋を6つ見つけた|競合13本を片っ端から調べた
テーマの次は競合です。ここも過去2本よりずっと丁寧にやりました。
Claude Codeの調査エージェントを3本に分けて、App Storeの医療費アプリを残らず調べる班、家計簿アプリやAndroid側を見る班、国税庁の様式まわりを裏取りする班を並列で走らせます。
分かったことを並べると、こうでした。
- App Storeの医療費記録アプリは、隣接ジャンルまで含めて13本。ただしレビューが2桁以上あるのは5本だけ
- いちばん強い競合は★4.3のサブスク型(月¥380/年¥2,400・広告あり)。国税庁の「医療費集計フォーム」への出力も、ここだけがすでに実装済み
- Zaimはかつて集計フォームの自動生成機能を持っていて、2023年3月に終了していた
- ¥3,979のWindows専用ソフトが今も売られている。この作業にお金を払う人は実在する
- 買い切りは¥800のアプリが1本だけで、¥300〜500の帯は空いている
Web調査の段階でも、思い込みはいくつか潰れました。
「家族対応のアプリがない」は誤りで、どこも標準機能。
「申告形式で出力できるアプリがない」も半分誤り。
競合は「無い」のではなく「弱い」——勝ち筋は空白ではなく、★1〜2のレビューに並ぶ不満の穴を埋めること。
調査の結論にも、そうはっきり書いてあります。
その上で生き残った勝ち筋が、この6つです。
| 勝ち筋の仮説 | Web調査での判定 | |
| 1 | 家族×支払先×日付で引ける記録 | △ 対応自体は標準機能。差は品質でしか付かない |
| 2 | 1回の通院に複数の交通手段を記録できる | ◎ できるアプリが見つからない |
| 3 | 「あといくらで10万円」の見える化 | ○ どのアプリにも見つからない |
| 4 | 医療費集計フォーム(xlsx)への出力 | △〜○ 最有力の競合だけが実装済み |
| 5 | 人別・病院別の小計 | ✕ 穴だと思ったら特定アプリ固有の欠陥だった |
| 6 | 買い切り¥300〜500・広告なし | ○ 帯は空いている(売り文句にはなるが機能の差ではない) |
(医療費控除は原則、年10万円を超えた分が対象です。「あといくらで届くか」が見えると、記録を続ける動機になります)
◎と○が残って、参入判定は「条件付きで可」。
ここまでやれば十分でしょう。
正直なところ、自分はそう思っていました。
だから、いちばん強い競合アプリを、確認のつもりで自分のiPhoneに入れてみました。
この表の◎と○は、そこから立て続けにボツになります。
実機で触ったら、いきなり勝ち筋が2つボツ|「未発見」はスクショに写っていた
いちばん強い競合アプリを、自分のiPhoneに入れて開きます。ホーム画面には「あと¥73,260」という表示がありました。
年間の医療費が控除ラインの10万円まであといくらか、の表示です。
Web調査で「どのアプリにもない」と結論づけた、勝ち筋3番の機能そのものです。
後からApp Storeの掲載ページを見返したら、この機能はスクショにはっきり写っていました。
「判定ラインを超えました」という表示が、掲載画像の中にそのまま入っていたんです。
説明文もレビューも大量に読み込んだはずのWeb調査は、スクショに写っているものを拾えていなかったわけです。
調査メモには「『未発見』は誤りだった」と書き残しています。
続けて触っていくと、勝ち筋2番も崩れました。
このアプリは病院・薬局・介護施設・交通手段を「支払先」として登録する作りで、電車もバスも別々の行として記録できます。
「交通費を複数の手段で記録できるアプリはない」は間違いで、できないのは★3.9のリーダー格アプリ固有の欠陥でした。
◎を付けた勝ち筋の、根拠のほうが消えたんです。
アプリを1本、自分の手で触っただけでこれです。
6つの勝ち筋のうち◎と○が消えて、残ったのは「品質で差を付けるしかない」系の△ばかり。
このまま作っていたら、「どこにもない機能」のつもりで10万円ラインを看板に据えた、実質は後追いのアプリが出来上がっていたはずです。
ただ、この実機確認の収穫は「勝ち筋がボツになった」だけではありませんでした。
触っているうちに、Web調査では見えなかった、もっと深い穴が見えてきたんです。
根拠が消えたので、穴を掘り直した|競合には「受診」という概念がなかった
勝ち筋がボツになったので、そのまま競合アプリを触り続けて、今度は「何が引っかかるか」を探しました。
すると、機能の有無ではなく、記録の持ち方そのものに引っかかりが出てきます。
このアプリは、すべてが「支払い1件=1行」の作りです。
病院で払った、薬局で払った、バスに乗った——全部が独立した行で、事前に登録した「支払先」を選んで1件ずつ積んでいく。
この作りには良さもあって、単発で市販薬だけ買った日も1行で済むし、記録が漏れない。
ただ、1回の通院がバラバラの行に散らばります。
病院のあとに薬局に寄って、行き帰りに電車に乗った——それだけで3行にも4行にもなる。
実際、このアプリのレビューには「交通費は別で入力しないといけないので忘れがち」という声がありました。
ここで気づきます(๑º ㅿº)ハッ!!
この分野のアプリはどれも「支払い」を記録している。
でも、使う側の生活にあるのは「通院」なんですよね。
1回の通院には、診察と薬局と往復の交通費がセットでくっついている。
この「受診」というまとまりの概念が、いちばん強い競合にもない。
機能の一覧をいくら見比べても出てこなかった、これが本当の穴でした。
新しい勝ち筋はこうです。
入力は「1回の通院=1画面」。
診察・薬局・往復の交通費をまとめて入れて、定期通院は「前回の通院をコピー」で1タップ。
交通費は片道の運賃を入れて往復トグルを押せば倍で記録される。
一方で、保存する形は競合と同じ「支払い1件=1行」を守る——申告の様式が1行単位なので、ここを崩す理由はないし、単発の買い物も1行で入れられる柔軟さは競合から学んだ長所だからです。
穴を1つ埋め直しただけに見えますが、企画の軸はここで入れ替わりました。
「無い機能を足すアプリ」から、「同じ記録を、生活の単位で入れられるアプリ」へ。
これはWeb調査の「機能があるか無いか」の表からは、どうやっても出てこない答えでした。
競合の出力ファイルを開いたら|作成者名が「国税庁」のままだった
企画の軸は決まりましたが、もう1つ大物が残っています。
看板機能にするつもりの「医療費集計フォーム」出力は、勝ち筋の表のとおり、いちばん強い競合がすでに実装済みです。
同じ土俵に乗る以上、「確実に取り込める」ことで勝つしかない。
なら、まず相手が何を出しているのか実物を見よう、ということで、競合アプリからExcelファイルを書き出して中身を開いてみました。
開いて驚きました。
それは国税庁が配っている公式の集計フォームそのものだったんです。
ファイルの作成者情報は「国税庁」、作成日は2013年のまま。
つまりこのアプリは、それらしい見た目のファイルを一から作っているのではなく、公式配布のxlsxテンプレートに記録の行を書き込んでいる。
確定申告書等作成コーナーに確実に読み込ませる方法として、これ以上のものはありません。
うちも同じ方式でいく、と設計が即決しました。
ついでに、様式そのものも隅まで調べ、アプリの入力チェックはこの様式の制約をそのまま写す形で決まり、「毎年様式が変わったら追従が大変」という保守の心配も消えました。
税制の様式が、アプリの仕様を決めてくれたわけです。
これで企画の作り直しは完了です。
勝ち筋は「受診セットで入力できる × 公式様式に確実に出力できる × 買い切りで広告なし」の束になりました。
価格は、調査で空いていた買い切り¥500です。
企画を固めて、21日で提出まで|作成コーナーの合格がゴーサインだった
作り始める前に、もう1つだけ関門を置きました。
この企画は「出力したファイルが確定申告書等作成コーナーに確実に読み込める」ことが生命線です。
なら、アプリを書く前にそこを実証してしまおう、と。
競合の出力ファイルを加工して作成コーナーに読み込ませてみると、3件中3件が正常に取り込まれ、合計金額まで正しく反映されました。
これがゴーサインです。
逆にここで読めなかったら、企画ごと止めるつもりでした。
作り方は前の2本と同じです(この進め方は[2本目の記事]に書きました)。
まずNext.jsでWeb版を作って、実データを入れながら仕様と文言を固める。
自分で使い込んでは直しを7回繰り返して、受け入れ基準のE2Eテストを24項目まで育てました。
移植の前には、今度は自作の出力で作成コーナーの取り込みをもう一度検証して、4件中4件合格。
その上でFlutterへ移植しましたが、Web版で仕様が固まりきっていたおかげで、移植はほぼ機械作業でした。
テストは最終的に108件。
実機での動作確認とサンドボックスでの購入テストも通して、企画の確定から21日目に審査へ提出しました。
ここまでは、前の2本と同じ「順調な話」です。
1本目は一発承認、2本目は課金まわりで2回却下されたものの、原因を突き止めて直したら通りました。
2本目でつまずいた提出手順(アプリと課金アイテムを同時に審査へ出す)も、今回は最初からクリアしています。
今回も、時間はかかっても最後は通るだろうと思っていました。
それでも、審査には落ちた|「似たアプリがすでにある」の一文
却下の中身|どのアプリと似ているのかは書いていない
提出から6日目の午前、Appleから返事が来ました。
結果は却下。理由はガイドライン4.3(a)、区分は「Design – Spam」です。文面の核心は1文でした。
「このアプリは、他の開発者がApp Storeに提出したアプリと、バイナリ・メタデータ・コンセプトのいずれかが類似しており、違いは軽微です」。
身構えていた条項ではありました。
ただ、想定していたのは4.3(b)——「既にあるものと区別がつかないアプリ」への指摘で、それなら差別化を説明すればいい。
実際に来た4.3(a)は一段重い「スパム」の区分です。
そして文面はどう読んでもテンプレートで、肝心の「どのアプリと似ているのか」がどこにも書いてありません。
競合13本を調べて、いちばん強い1本と設計思想から違えて作ったつもりの側からすると、反論の的が見えない却下です。
返信で情報を取りにいく|競合を実名で挙げて、スクショを先に出した
最初に決めたのは「何も直さない」ことでした。
機能を足す案もストアの説明文を作り直す案もありましたが、どのアプリのどの部分と重複していると見なされたのか分からない状態で機能を足すと、逆に重複部分を増やすだけになりかねない。
説明文の直しも、審査員が差別化に気づかなかったのか、見た上で不十分と判断したのか分からないうちは当て推量になる。
だから、まず返信で情報を取りにいく。
返信には3つの工夫を入れました。1つ目は、競合を実名で挙げたこと。
「このカテゴリで最も強いアプリを実機で確認した上で、支払い単位ではなく受診単位で設計している」という主張は、審査員が自分で検証できます。
2つ目は、証拠を先に出したこと。
「必要なら画面録画を送ります」と申し出るのではなく、英語の説明を焼き込んだスクショ2枚を最初から添付しました。
3つ目は、買い切り・広告なしにあえて触れなかったこと。
価格モデルは審査上の差別化として扱われないと調べがついていたので、論点をぼかさないよう外しました。
末尾には「重複していると判断されたアプリ名を教えてもらえれば、具体的に対処できます」と質問を置きました。
返ってきたのは定型文だった|最後の手段は電話で、それが英語だった
7日後に届いた返事は、全文で3文でした。
「メッセージをありがとうございます。
4.3については、アプリのコンセプトを見直し、独自のコンテンツと機能を持つユニークなアプリを提出するのが適切でしょう。
再提出をお待ちしています」。
実名を挙げた比較にも、添付したスクショにも、こちらの質問にも、触れていません。
反論の中身を検討した形跡のない、2通目のテンプレートです。
調べてあった先例によると、ここから一番効くのは「電話をくれ」と書くことです。
メールでは定型文しか返さない審査チームでも、電話だと人間のレビューにつながって、2時間後に承認されたという実例があります。
ただ、自分は英語が喋れません๐·°(৹˃ᗝ˂৹)°·๐
個人開発の詰み方として、これほど生々しいものもないと思います。
それで、このアプリは保留にしました。提出はキャンセルせず、審査のスレッドもそのままにして、ただ触らずに置いてあります。
却下された提出は期限なく放置でき、再開したくなったら同じスレッドに返信するか、新しいビルドを出せばいい。
撤退ではなく凍結です。
まとめ|競合調査で腹落ちしたこと3つ
3本目のアプリ作りで腹落ちしたのは、この3つです。
1. AIの「ない」は当てにならない。実物の「ある」だけが確か。 AIがいくら「この機能はどこにもない」と結論づけても、それは「見つけられなかった」でしかありません。実機に入れて開いた画面と、書き出された1個のファイルが、調査資料の山より多くを教えてくれました。競合調査の締めくくりは、いちばん強い1本を自分の手で触ること。これは次からの手順に入れます。
2. 穴は「空白」ではなく「刺しどころ」。 「誰もやっていない機能」を探しているうちは、たぶん見つかりません。実際にあったのは、「みんなやっているのに、生活の単位と合っていない設計」でした。機能の有無の表からは出てこない、使って初めて見える穴。それが「受診」という概念でした。
3. 「作れる」と「出せる」は別問題。 取り込みの実証も、108件のテストも、審査には何も保証してくれませんでした。個人開発の最後の関門は技術でも品質でもなく、こちらの説明を読んでもらえるかどうかです。それでも、今回積み上げた調査資料と記録は消えません。アプリは凍結中でも、次のアプリの手順書は確実に分厚くなりました。
2本目の記事の締めで、事務手続きも記録さえ残せば型になる、と書きました。
今回それに1つ足すなら——審査だけは、型にしても通るとは限らない。
それでも型は無駄にならない、です。
「おかえり医療費」は、審査が動くか、こちらに新しい手が見つかるまで凍結です。
その間に4本目の企画が動き始めています。これはまた、公開までたどり着いたら書きます。
この記事が、同じように個人でアプリを作っている方の参考になれば嬉しいです。





