この記事はホモサピエンスが執筆しています

こんにちは、某JTCに勤めているひよっこMLエンジニアのNeUです。

この記事は既に開発にチャレンジしたことがある方だけではなく、全くの未経験でも「なんとなくアプリの作成からリリースまで出来る気がしてきた」と少しでも感じてもらうことを目標としています。

なお、途中でリリースしたプロダクトの紹介があります。ですが、別にダウンロードする必要はありません。
そもそも私に一銭も入らないアプリですし、大体どんなものが出来上がるかの参考程度に見ていただけるとありがたいです。
もちろんダウンロードしていただけると筆者は喜びます

目次

1. はじめに
2. プロダクト紹介
3. 要件定義について
4. claude codeでアプリを作る (gemini cliでもなんでも)
5. リリース

1.はじめに

「今度こそ絶対に作りきる‼️」

そう誓いを立てたプロダクトでも、途中で「あれ…? なんかやっぱり無理な気がしてきた」
と墓地フォルダ送りにした経験ってありませんか?

私はあります。

墓地フォルダに生息する挫折ゾンビプロダクトだけで予算マシマシでアメリカンなゾンビ映画を作れそうなくらいあります。

そんな私ですが
先日、初めてのiOSアプリをリリースしました

開発を始めて約半年経ちましたが、自分の作った作品を野に放つことを、ついに達成しました。初めてのリリースに半年かかりました。

なぜ、この様なことが起こるのでしょうか。

なぜなら、個々の技術を『点』で解説する記事は溢れていますが、それらを繋いで要件定義からリリースまでを『線』として一気通貫で解説する情報がほとんどないからです。

もちろん様々な要因があるので一概には言えませんが、初心者にとって、完成・リリースが大きな壁となるのは間違いないです(私曰く)

私の場合、中途半端に大掛かりなプロダクトを目指したことが敗因でした。ガチガチの要件定義を作るも、開発が進むにつれて、当初のプロダクトの目的、つまり開発の軸がわからなくなり、「どこに需要があるんやこれ…誰も使わんやろ…」みたいな産物が大量発生しました。

しかし、私はある一つの意識の変化で、リリースまでたどり着くことができました。
この意識とは、

MVPを徹底的に守ることです

MVPとはMinimum Viable Productの略です。最小限の機能で、ユーザーに価値を提供できる最初のバージョン。つまり、開発の指針としては核心の機能だけでリリースして、あとはリリースした後に改善していきます

今回、私が変えたこの意識を元に要件定義からリリースまでの手法を一気通貫でまとめてみました。

なお、今回の記事に則った時、リリースまでで必要な予算は以下が目安です。

  1. claudeやgeminiなどのコーディングツール
    月額3000円~15000円程度?

  2. Apple Developer Program
    年額約13000円
    ▶︎AppleStoreにアプリを置くのに必ず必要
    何個でもアプリを置ける

2.プロダクト紹介

今回作ったアプリを紹介します。大体これくらいのアプリが出来上がります。

至ってシンプルな記録するだけの習慣化アプリです。

太古の昔、夏休みの間にラジオ体操をするとスタンプを押してもらえる制度があったと聞き、そこから着想を得ました。なお筆者はやったことない模様

習慣化アプリ「Stamply」のスタンプカレンダーとご褒美ガチャ画面
習慣化アプリ「Stamply」の記録分析画面と練習完了スタンプ
https://apps.apple.com/jp/app/stamply/id6755958665
こんな感じでそれっぽい物が出来上がります。
では実際に、こちらのアプリをどうやって作っていったか。次のセクションからお話します。

要件定義について

要件定義とはアプリの開発の超初期段階で行う「何を作るのか」を明確にするプロセスです。
ここで、どのような機能を持っているかを決めます。例えば、筆者が今回開発した習慣化アプリでは

  • ドラッグ&リリースでスタンプを押す
  • 月別のスタンプカレンダー表示
  • 15ptでガチャを回せる

などが要件定義としてあげられます。
とはいえ、要件定義って何から始めたらいいんだ!となる方も多いと思います。
本セクションでは、要件定義の手法とコツをまとめます。

私の場合、要件定義は以下の手順に沿って進めています。

  1. コンセプトを決める
  2. ターゲットを絞る
  3. 最低限欲しい機能を3つ考える

1.コンセプトを決める

まず、要件定義って考えるにつれて機能マシマシになって行きます。(主観)
めっちゃなります。これ。

例えば、朝ごはんとして卵かけご飯を作る予定だったとします。
ところが「あれ、お味噌汁が欲しいな」とか「お漬物もいるな」とか、いざ考え始めるとどんどん増えていき気づいたら懐石料理のコースになっていたりします懐石料理美味しいんですけど

これ、リリースを目指す上での最初で最後の大大大落とし穴だったりしますよね。

料理初心者が懐石料理のコースから始めようとしてたら全力で止めましょう。

ギチギチの要件定義を作ってしまうことで、アプリの良さや、方針が分からなくなってしまいます。
推しの写真を飾るためにデコレーションしていたらデコレーションの面積が大きくなりすぎて、もはや何を飾りたいのか分からなくなります。

しかし、逆にシンプルな要件定義さえしてしまえば、こちらのものです。つまり、個人開発でリリースをするために1番大事なことは

シンプルな要件定義

にかかっています。
そして、もう一つ

始めてアプリを作る方はスタンドアロンアプリにしましょう。

筆者的には初めからゴリゴリのサーバーを立てて設計するとなんやかんやめっちゃ挫折します。途中で投げ出したくなります。

もちろん特定のやりたいことがある方はそれでも良いと思います。
ただ、よっぽどの意思がないと管理や維持費で頭を抱えたり、なんやかんや大変です。

なので、最初はローカルストレージ技術を使ったアプリがおすすめです。開発者がサーバーを立てなくてもデータがユーザー各々の端末に保存される技術ですね。

ではここから、具体的な要件定義に入っていきましょう。
実際の技術的な開発は今や生成AIがやってくれます。だからこそ、要件定義が大事になってきます。

では要件定義を複雑にしないためにはどうしたら良いでしょうか。そう。

コンセプトを決めます

筆者の習慣化アプリのコンセプトは

ラジオ体操のスタンプカードのように、練習記録を「スタンプを押す」UIで楽しく残すアプリ

です。
このように、一言でアプリを表せると、その後作りやすくなります。

そこの一言で表せるコンセプトを出すことが開発において1番重要とも言えるパートです。

良いアプリには強いコンセプトがあります。

もし、いいコンセプトが思いつかない場合は、生成AIと壁打ちするのもひとつの手です。何となく作りたいものを言語化していくつかコンセプトの案を聞いてみると意外とそれっぽい答えが帰ってくることも多いです。

2.ターゲットを絞る

こちらの工程、本当に必要なのか不安になる時もありますが、結構役に立ちます。

コンセプトをひとつの柱と考えると、このターゲットを絞る工程は柱が倒れないようにサポートしてくれます。

ターゲットの絞り方ですが。これも、コンセプトから想像します。

開発したアプリを使うのは、どんな人であるかを大きな枠から小さな枠へと絞って行きます。女性で、継続的に練習したい人。などと徐々に小さく絞ります。

これらを絞って置くと、後々のデザインやUIでの迷いも少なくなります。

3.最低限欲しい機能を3つ考える

ここまで来たら、あと少しです。
作るアプリの機能を3つだけ考えます。

2つや4つでも大事ですが、多くなりすぎると開発が思っているよりも大変になるので出来れば、5つまでには押さえるように私は意識しています。

筆者の習慣化アプリでは

  1. スタンプを押して練習時間を記録できる
  2. 記録したデータを分析して可視化される
  3. スタンプが手に入るガチャが回せる

と言った感じです。そして、

決めた機能以外の機能に関わる要件は基本的に全て削る

これを徹底することがとても大事です。

4. 生成AIと対話して仕様書を作成

ここまでできたら、相棒の生成AIを開きましょう。geminiでもclaudeでも構いません。なお、この時点ではclaude codeなどのcliツールでなくても構いません。
そして、今決めた・コンセプト・ターゲット・必要機能とReact Nativeで作ることを入力して、「仕様書を作ってください」とお願いします。他力本願寺 ちがう

ちなみに生成AIを使ってアプリを作る際にはReact Native(Expo)がおすすめです。
理由としては、iOSやAndroidを一度に開発できることはもちろんですが、生成AIは圧倒的にJavaScript/TypeScriptでのコーディングの方が精度良くこなしてくるためです。
なお、Expoは後述致しますが、ビルドが瞬殺できるのでオススメです。

claude codeでアプリを作る

では、出来上がった仕様書をプロジェクトのディレクトリに入れたら、claude codeなどを起動してこう唱えましょう

「仕様書に従ってアプリを作成してください。」

gemini3やopus4.5(sonet)は優秀なので人間が説明するところは特にありません。
【悲報】本セクション終了

リリース

では、アプリが完成したらリリースです。
この作業めちゃくちゃ大変なんじゃないかと思う方いらっしゃると思いますが、1回やると案外そんな面倒ではありません「1回やると案外そんな面倒ではありません」

そうは言っても、初めての時は魔界に見えますよね。分かります。 ここでは、開発したアプリをApple Storeに並べるまでの手順を、専門用語をなるべく噛み砕いて解説します。

大きく分けてやることは3つだけです。

  1. Appleにお布施を払う(登録)

  2. アプリの身だしなみを整える(App Store Connect)

  3. 審判

1. Appleにお布施を払う(Developer Program登録)

前述の通り、年額約13,000円(為替によります)をApple様に支払って「Apple Developer Program」に登録します。 ここだけはどうしても回避できません。「自分はアプリ開発者なんだ」という覚悟を決めるための課金だと思いましょう。

登録には最大48時間ほどかかる場合があるので、開発中に済ませておくのが吉です。

筆者はアプリを完成させてから申請したので、早くリリースしたくて3分に一回程appleからのメールをチェックしていました。

2. アプリの身だしなみを整える(App Store Connect)

ここがリリースのメイン作業です。 App Store Connectという管理画面で、アプリの宣伝ページを作ります。

アプリアイコン: ユーザーの顔です。CanvaやAI画像生成でサクッと作りましょう。

スクリーンショット: アプリの画面キャプチャです。見栄え良く加工してくれるサイト(MockUPhoneなど)を使うと、一瞬でプロっぽい画像になります。

説明文: どんなアプリか説明します。これもClaudeやGeminiに「このアプリの魅力的な説明文を考えて」と投げれば3秒で終わります。

3. ビルドとアップロード(EASが神すぎる話)

ここが本来、iOSアプリ開発で一番の「挫折ポイント」と言われる魔のエリアです。 通常はMacの「Xcode」という重たいソフトを開き、複雑な証明書の設定を行い、ビルドして……という苦行が必要なのですが、今回はEAS (Expo Application Services) という神ツールを使いました。

これを使うと、コマンドを一行打つだけで、クラウド上でビルドからAppleへの提出まで全部やってくれます。 私のPCが唸りを上げて熱くなることもありません。

手順は驚くほどシンプルです。

手順①:EAS CLIの導入
ターミナルで以下のおまじない(コマンド)を打ち込みます。

npm install -g eas-cli
eas login

これでExpoのアカウントにログインします。

手順②:ビルドと提出
設定ファイル(eas.json)を生成した後、以下のコマンドを打ち込んで、あとは寝て待つだけです。

eas build --platform ios --auto-submit

この —auto-submit というオプションが魔法です。 「ビルドが終わったら、そのままAppleの審査提出用サーバーにアップロードしておいてね」という指示です。無料プランでも使えます、代行業者泣かせですね。 そんな代行業者あるんか

コマンドを打つと、いくつかの質問(Apple IDなど)を聞かれますが、基本的にEnterキーを押していけばEASが証明書の発行から登録まで全自動でやってくれます。

ビルド時間は無料プランだと混み具合によりますが、15分程度です。その間にコーヒーでも淹れましょう。 ターミナルに「Submitted!」と表示されたら、もうAppleのサーバーにあなたのアプリが届いています。
*なんか稀にビルドが混んでいると時間かかります。

4. 審判の時(審査提出)

アップロードが完了し、説明文などの入力が終わったら、右上の「審査へ提出」ボタンを押します。 あとはAppleの審査チームがチェックしてくれるのを待つだけです。通常24時間〜48時間程度で結果が来ます。

ここで一つ、大事なことをお伝えします。 一発合格することは稀です。

「メタデータが足りない」「機能がシンプルすぎる」「クラッシュした」など、何かしら理由をつけてリジェクトされます。 でも、落ち込まないでください。 リジェクトされたら、Appleからのメッセージ(英語ですがAIで翻訳すればOK)を読んで、修正して再提出すればいいだけです。
おわりに
ここまで読んでいただき、ありがとうございました。

「要件定義をシンプルにする(MVP)」 「生成AIにコードを書かせる」 「リリースは恐れずやってみる」

この3つさえ意識すれば、未経験でも、JTCのひよっこエンジニアでも、自分のアプリを世界に公開することができます。

自分のiPhoneに、自分が作ったアプリがインストールされ、App Storeに自分の名前が載っているのを見た時の感動は、言葉にできません。 「あ、私、クリエイターになれたんだ」という全能感は、ぜひ皆さんにも味わっていただきたいです。

この記事が、あなたの墓地フォルダに眠るゾンビプロダクトたちを成仏させる、あるいは新たなアプリを誕生させるきっかけになれば幸いです。
習慣化アプリ「Stamply」のモチーフになった木製スタンプのイラスト