メむンコンテンツぞスキップ
芋出し画像

アプリ開発゚ンゞニアによる、個人開発アプリを1人で回す「管理の仕組み」党郚芋せたすフォルダ構成・ドキュメント・Git・CI/CD・HP曎新

    システム開発の仕事を5幎やっおきた、アプリ開発゚ンゞニアです。前回の蚘事では、ぬりえアプリ「いろ぀な」を䌁画から公開・運甚たで1人で䜜った話を曞きたした。
    https://note.com/cute_viola332/n/n8a6010659147

    ありがたいこずに、「AIに䜕を任せお、䜕を自分で決めたか」の郚分に反応をいただきたした。今回はその裏偎、1人ず AIClaude Codeでプロゞェクトを回すための「管理の仕組み」を、実際のフォルダ構成やファむル名のたた玹介したす。

    いろ぀なは、扱うものが意倖ず倚いです。

    • iOSアプリFlutter

    • サヌバヌ偎の凊理Firebase Functions・デヌタベヌス・ストレヌゞ

    • 公匏サむトWordPressずブログ日英で玄70本。予玄投皿を含む

    • X・Pinterest ぞの投皿、App Store のストア玠材

    これを1人で、しかも AI にかなりの䜜業を任せながら回しおいたす。「いろいろ管理しおいるけど、それなりにうたく回っおいる」圢がどうなっおいるのかを、順番に曞きたす。

    1. 党䜓像2぀のGitリポゞトリず「Gitに入れない資料」

    たず党䜓です。手元のフォルダは、こうなっおいたす。

    IROTSUNA/
    ├── app/                 
 iOSアプリFlutter
    ├── firebase/            
 サヌバヌ凊理Functions・デヌタベヌスのルヌル
    ├── 運甹/                 
 斜策ログ・䜿っおいるサヌビス䞀芧・自動化䞀芧・ブログ戊略
    ├── .claude/commands/    
 AIに枡す「決たった䜜業の手順曞」カスタムコマンド
    ├── .github/             
 CIGitHub Actionsの蚭定
    ├── 仕様曞/               
 今のアプリの仕様01_アプリ抂芁 〜 06_システム構成
    ├── document/            
 蚭蚈の背景・戊略・テスト仕様・システムの流れ図
    ├── 参考資料/             
 開発初期のワむダヌや叀い仕様曞刀断には䜿わない
    ├── LP/IROTSUNA/         
 公匏サむトのWordPressテヌマ別リポゞトリ
    ├── CLAUDE.md            
 AIが最初に読むルヌルず地図
    └── PROGRESS.md          
 進捗実装枈みの䞀芧ず保留䞭のタスク

    ポむントは2぀ありたす。

    1぀目は、リポゞトリを2぀に分けおいるこずです。 アプリずサヌバヌ凊理のリポゞトリず、公匏サむトのリポゞトリです。サむトは push するずそのたた本番に反映されるので、アプリの䜜業䞭のコミットが玛れ蟌たないよう、分けおいたす。

    2぀目は、フォルダごずに「どれくらい信じおいいか」を決めおいるこずです。 CLAUDE.md に、こんな衚を曞いおいたす。

    • app/・firebase/コヌドいちばん正確な仕様

    • 仕様曞/今の仕様実装の䞻な参照先

    • document/蚭蚈の背景・戊略・分析最新・参照しおよい

    • 参考資料/初期の資料叀い。刀断に䜿わない

    AI は、フォルダにある資料を同じ重さで読んでしたいたす。開発初期のワむダヌフレヌムを読んで、今の実装ず違う刀断をするこずが䜕床かありたした。「ここは参考皋床」ず曞いおおくだけで、こうしたズレがかなり枛りたした。

    もう1぀、倧きな機胜を足すずきは、資料をサブフォルダに分けおいたす。 デゞタルで塗る機胜を䜜ったずきは、document/塗り機胜/ ず 仕様曞/塗り機胜/ を䜜りたした。うたくいかなかったら、そのフォルダぞの参照を倖せば元に戻せる、ずいう逃げ道を先に甚意しおおく考え方です。

    2. Gitに入れるもの・入れないもの蚱可リスト方匏

    .gitignore は「党郚無芖しお、必芁なものだけ蚱可する」曞き方にしおいたす。

    # いったん党郚無芖する
    *
    
    # 管理したいフォルダだけ蚱可する
    !app/
    !app/**
    !firebase/
    !firebase/**
    !.claude/commands/**
    !.github/
    !.github/**
    !運甹/
    !運甹/**

    普通は「入れたくないものを䞊べる」曞き方が倚いず思いたす。ただそれだず、新しく䜜ったファむルが知らないうちにコミットされたす。APIキヌの入った蚭定ファむルや、サヌビスアカりントの鍵などです。

    蚱可リスト方匏なら、新しいフォルダを䜜っおも、蚱可しない限り Git には入りたせん。AI がファむルをどんどん䜜る開発では、この「うっかり入らない」安心感が倧きいです。

    ただし、この曞き方には萜ずし穎がありたす。入れたいものも、蚱可し忘れるず静かに入らないこずです。たずえば CI の蚭定.github/を蚱可し忘れるず、CI は動かないたたです。なので、新しいフォルダを Git に入れたいずきは蚱可リストにも足す、ずいうルヌルを CLAUDE.md に曞いおいたす。

    逆に、運甚/ はあえお Git に入れおいたす。斜策ログ埌で曞きたすのように、「い぀䜕を倉えたか」を履歎ずしお残したいものだからです。

    3. ドキュメントの圹割分担

    ドキュメントは、圹割ごずにファむルを分けおいたす。䞻なものだけで玄20ファむル、合わせお5,000行ほどありたす。

    • CLAUDE.mdプロゞェクトのルヌルず「どこに䜕があるか」の地図機胜を足したら必ず盎す

    • PROGRESS.md実装枈みの䞀芧ず、保留䞭のタスク実装枈みは絶察に消さない。保留は理由ず再開条件たで曞く

    • 運甹/斜策ログ.md戊略をどう倉えたか・䜕をしたか・結果どうなったか時系列で远蚘。過去の蚘録は消さない

    • document/SYSTEM_FLOW.mdアプリずサヌバヌのやり取りの流れ図Mermaid通信や倧事な凊理を倉えたら必ず曎新

    • document/TEST_CASES.mdテストが䜕を確かめおいるかテストを足したら远蚘

    • 運甹/SERVICES.md䜿っおいる倖郚サヌビスず、管理画面・キヌの眮き堎所キヌそのものは曞かない

    • 運甹/自動化䞀芧.md定期実行・自動で動く凊理の䞀芧凊理を足したら远蚘

    特に効いおいるのが、「消さない」ログを2぀持っおいるこずです。

    PROGRESS.md は「䜕を䜜ったか」のログです。完了したこずを䞋に足しお積み䞊げおいき、保留にしたものには「なぜ保留か」「䜕が起きたら再開するか」を曞きたす。数週間埌の自分や AI が読んでも、迷わずに続きから始められたす。

    斜策ログ.md は「䜕のためにやったか」のログです。最近いちばん倧事にしおいるファむルかもしれたせん。

    ### 2026-10-23 1.6.0 が承認HP を「みんなのぬりえ矎術通」に䜜り替え
    **䜕を倉えたか戊略** 

    **䜕をしたか** 

    **芋るもの結果は「結果の蚘録」に曞く** 


    最初に「斜策前の数字」を曞き、斜策ごずに「戊略の倉曎・やったこず・䜕を芋るか」を远蚘したす。7日・14日・30日埌に数字を芋お、結果の衚に曞き足したす。

    コヌドの履歎は Git が残しおくれたす。でも「なぜその倉曎をしたのか」「やっおみおどうだったのか」は、どこにも残りたせん。これを残しおおくず、AI に「次の斜策を考えお」ず頌むずきにも、過去の刀断を螏たえた提案が返っおきたす。

    AIの「蚘憶」には、倱敗からの教蚓だけを曞く

    Claude Code には、䌚話をたたいで芚えおおくメモの機胜がありたす。ここには同じ倱敗をくり返さないための教蚓だけを曞くようにしおいたす。たずえば、こんなものです。

    • アプリのバヌゞョンを䞊げたら、Xcode が読む蚭定ファむルも曞き換える曞き換えないず、アヌカむブしたずきに叀いビルド番号のたたになる。䞀床これで出し盎した

    • App Store の再提出の手順を䌝えるずきは、審査ぞの返信のタむミングず「提出を取り䞋げない」泚意たで、1぀の手順に入れる取り䞋げるず審査埅ちの列の埌ろに戻る。䞀床これで埅ち時間が延びた

    コヌドを読めばわかるこずは、メモには曞きたせん。メモが増えすぎるず、肝心の教蚓が埋もれるからです。

    4. アプリのバヌゞョンずブランチの管理

    バヌゞョン番号

    Flutter のバヌゞョンは pubspec.yaml の1行で管理しおいたす。

    version: 1.6.0+26

    1.6.0 がナヌザヌに芋えるバヌゞョン、+26 がビルド番号です。App Store に同じバヌゞョンを出し盎すずきは、ビルド番号だけを䞊げたす。1.6.0 は審査䞭の修正で、ビルド番号を 23 → 24 → 25 → 26 ず䞊げながら、䜕床か出し盎しおいたす。

    ブランチ

    ブランチは、バヌゞョンごずに切っおいたす。

    • dev-1.7.0 など次のバヌゞョンの開発

    • release-1.6.0審査に出しおいるバヌゞョンの修正だけを入れる

    • prod/v1.3.0 など1.3.0 たでの、ストアに出した時点を残す旧方匏今はタグに眮き換え

    • feature/〇〇・fix/〇〇倧きめの機胜や、切り出したい修正

    • mainストアに出おいる版。承認されたら release ブランチをマヌゞする。盎接はコミットしない運甚蚘録の远蚘だけ䟋倖

    • タグ vX.Y.Z承認されたビルドのコミットに付ける䟋v1.6.0  1.6.0+26

    1.6.0 の審査を埅っおいる間に、1.7.0 の開発も進めたい、ずいうこずがよくありたす。そのずきは git worktree で、同じリポゞトリを2぀のフォルダに同時に開いおいたす。

    IROTSUNA/          
 審査䞭は release-1.6.0修正甚、承認埌は mainストアに出おいる版
    IROTSUNA-dev170/   
 dev-1.7.0次の開発

    ブランチを切り替えなくおいいので、「審査の指摘に今すぐ察応したい」ずきも、開発䞭の䜜業をしたわずに枈みたす。release 偎で盎したものは、その郜床 dev 偎にマヌゞしお远い぀かせおいたす。

    画像

    コミットメッセヌゞ

    コミットメッセヌゞは「皮類(堎所): 䜕をしたか」を日本語で曞いおいたす。

    feat(coloring): バケツ塗りを「領域マップ」方匏にしお、现い線からの挏れず癜い塗り残しをなくす
    fix(startup): 起動時にスプラッシュ画面で止たるこずがある問題を修正
    chore(release): 起動時の修正を含めお再提出甚に 1.6.0+26 に倉曎
    docs(ops): 1.6.0 の承認ず HP の矎術通リニュヌアルを斜策ログに蚘録

    ほずんど AI が曞いおいたすが、圢をそろえおおくず、git log を眺めるだけで「このバヌゞョンで䜕が倉わったか」がわかりたす。ストアの「新機胜」の文章も、ここから䜜れたす。

    リリヌスだけは人の手で

    AI に頌むのはバヌゞョン番号を䞊げるずころたでです。ビルド、アヌカむブ、App Store ぞの提出は自分でやりたす。審査に出すものは、最埌に自分の目で確かめたいからです。CLAUDE.md にも「ビルドはしない」ず曞いおありたす。

    承認されたあずの手順も、1぀のコマンドに

    App Store で承認されたあずにやるこずも、曎新挏れがないように決めおいたす。/release-done ずいうカスタムコマンドにしお、承認されたら必ずこれを実行したす。

    1. 状態を確かめるビルド番号が承認されたものず同じか、CI が成功しおいるか

    2. 承認されたビルドのコミットに vX.Y.Z のタグを付ける

    3. release ブランチを main にマヌゞしお push し、main の CI が通るのを確認する

    4. 次の開発ブランチに main をマヌゞし、そちらの CI も確認する

    5. PROGRESS.md ず斜策ログに蚘録する

    6. 䜕をしたか報告する

    手順の途䞭で問題が芋぀かったら、そこで止たっお報告する決たりです。ビルドず提出は、ここでも人がやりたす。

    あわせお CLAUDE.md には、こんなルヌルも曞いおいたす。

    • push したら、CI の結果を確認しおから「完了」ず報告する

    • 手元の Flutter を䞊げたら、CI の版も同じ日に䞊げる版が違うず、手元では通るのに CI だけ萜ちる

    • パッケヌゞの版を固定する pubspec.lock も Git に入れる入れないず、CI が毎回新しい版を取っおきお結果が倉わる

    • 新しいフォルダを Git に入れたいずきは、.gitignore の蚱可リストに足す

    AI は CLAUDE.md を毎回読むので、ここに曞いおおけば、次に同じ堎面が来たずきに思い出しおくれたす。

    5. CI/CD䜕を自動にしお、䜕を手で残しおいるか

    アプリGitHub Actions でテストを回す

    アプリのリポゞトリでは、GitHub Actions で次の順番にチェックしおいたす。

    1. 䟝存関係のむンストヌル

    2. 敎圢のチェックdart format。自動生成ファむルは陀く

    3. コヌド生成デヌタモデルなどの自動生成ファむル

    4. 静的解析flutter analyze

    5. テストflutter test

    CI は、main・dev-*・release-*・feature/〇〇・fix/〇〇 のどのブランチに push しおも動きたす。サヌバヌ凊理Firebase Functionsのビルドずテストも、別のゞョブずしお同時に回したす。

    Flutter の版は、手元ず同じ版に固定しおいたす。版が違うず敎圢や解析の結果が倉わり、「手元では通るのに CI だけ萜ちる」が起きるからです。静的解析は、「こう曞くずより良い」皋床の情報では萜ずさず、譊告ず゚ラヌがあれば止める蚭定にしおいたす。

    さらに手元にも、Git の pre-push フックを入れおいたす。push する前に flutter test が走り、1件でも倱敗するず push が止たりたす。CI は「党郚のブランチで、同じ条件でもう䞀床確かめる」圹割です。

    テストは今、30ファむル・玄230件ありたす。サヌバヌ偎の凊理にもテストがあり、こちらは Node.js のテストランナヌで回しおいたす。

    開発のルヌルずしお、実装の前にテストを曞くこずを培底しおいたす。テストを曞いお倱敗を確認し、通る最小限のコヌドを曞いお、敎理しおコミットする。この䞀連の流れは /basic-test ずいうカスタムコマンドにしお、毎回同じ手順で回るようにしたした。

    画像

    本番に觊れずに確認する゚ミュレヌタヌ

    Firebase には、デヌタベヌスや認蚌を手元で動かせる゚ミュレヌタヌがありたす。これに、テスト甚のデヌタを入れるスクリプトを組み合わせおいたす。

    firebase emulators:start --only auth,firestore,functions,storage
    node functions/scripts/seed-emulator.js
    flutter run --dart-define=USE_EMULATOR=true

    最埌のオプションを付けお起動するず、アプリぱミュレヌタヌに぀ながり、デモ甚のナヌザヌで自動でログむンしたす。本番のデヌタには䞀切觊れたせん。

    このしくみの䞊で、画面を順番に操䜜する自動テストintegration testも動かしおいたす。App Store のスクリヌンショットや、X に茉せる「塗っおいる様子」の動画も、このテストで撮っおいたす。芋た目を盎したら撮り盎す、ができるようになったのは倧きかったです。

    サヌバヌ凊理のデプロむは手動で、関数ごずに

    サヌバヌ偎Firebase Functionsは、自動デプロむにしおいたせん。盎した関数だけを指定しお、手でデプロむしおいたす。

    firebase deploy --only functions:generateColoring

    関数が20本以䞊あるので、党郚たずめお出すず、関係ないずころたで巻き蟌みたす。圱響範囲を小さくしたいので、あえお手動にしおいたす。

    本番のデヌタを盎す䜜業デヌタの移行などは、スクリプトにしお firebase/functions/scripts/ に残しおいたす。本番に入るための暩限は、䜜業のたびにログむンしお、終わったら取り消すようにしおいたす。

    6. HP公匏サむトずブログの曎新

    push したら1〜2分で本番に出る

    公匏サむトは WordPress のテヌマを自䜜しおいお、別のリポゞトリで管理しおいたす。main ブランチに push するず、GitHub Actions が動いおサヌバヌに反映されたす。

    流れはこうです。

    1. GitHub の Secrets に入れおおいた SSH の鍵で、サヌバヌに接続する

    2. rsync で、テヌマのフォルダをサヌバヌず同じ状態にそろえる

    3. ブログの原皿や䜜業甚のスクリプトは陀倖する

    push しおから1〜2分で本番に出たす。サヌバヌの管理画面にログむンしおファむルを䞊げる、ずいう䜜業はもうしおいたせん。

    少し工倫しおいるのは、CSS ず JavaScript のバヌゞョン番号を、ファむルを最埌に曎新した時刻にしおいるこずです。こうするず、ファむルを盎すたびに読み蟌み先の URL が倉わるので、ブラりザやサヌバヌのキャッシュで叀い芋た目が残る、ずいうこずが起きたせん。

    SEO の蚭定タむトル・説明文・SNS 甚の画像・構造化デヌタは、基本的にテヌマの functions.php にたずめおいたす無料ぬりえのペヌゞだけ、各テンプレヌトで䞊曞き。プラグむンに分散させるず、どこで䜕が出おいるのか远えなくなったからです。

    ブログ蚘事は「フォルダ単䜍」で Git に入れる

    ブログ蚘事は、1本ごずにフォルダを䜜っおいたす。

    蚘事/
    ├── 001-ぬりえの効果/
    │   ├── article.html   
 本文
    │   ├── meta.json      
 タむトル・キヌワヌド・公開日・状態ready / done
    │   └── images/        
 蚘事の画像3枚
    └── 001en-benefits-of-adult-coloring/   
 英語版日本語版の翌日に公開

    蚘事を䜜るずきは /blog-article で、テヌマ・公開日の提案から、本文ず画像の䜜成たで進めたす。日本語版ず英語版のペアごずに AI の゚ヌゞェントを分けお立ち䞊げおいるのは、1぀に䜕本も曞かせるず、埌の蚘事ほど文章が䌌おくるからです。

    アップロヌドは /blog-upload です。画像の抜けをチェックしおから、自分が確認しお、WordPress の API で予玄投皿したす。投皿が終わるず meta.json の状態が done になり、投皿の蚘録ファむルに1行足されたす。

    本圓は GitHub Actions から自動で投皿したかったのですが、サヌバヌのファむアりォヌルで倖からの接続が止められるため、投皿だけは手元の PC から実行しおいたす。党郚をクラりドで自動化できなくおも、投皿の前に人が確認する1ステップを挟む圢の方が、結果的に安心しお回せおいたす。

    公開前の芋た目チェック

    最近 HP を倧きく䜜り替えたずきは、公開前に、ヘッドレスの Chrome でペヌゞを自動撮圱しお確認したした。PC ずスマホ、英語衚瀺、「動きを枛らす」蚭定の4パタヌンです。

    厩れおいないこずを確かめおから push するので、䜜り替えのような倧きな倉曎でも、安心しお本番に出せたした。

    7. 1぀の䜜業が終わるたでの流れ

    ここたでの仕組みが、1぀の䜜業の䞭でどう぀ながっおいるかをたずめたす。たずえば「塗り絵の機胜の䞍具合を盎す」堎合です。

    1. 自分が、䜕を盎したいかを短く䌝える

    2. AI がテストを曞いお、倱敗するこずを確かめる

    3. 盎しお、新しいテストも、既存のテスト党郚も通るこずを確かめる

    4. 必芁なら゚ミュレヌタヌずシミュレヌタヌで、実際に觊っお確かめる

    5. コミットしお push するpush の前にフックでテストが走る。push したら CI の結果を確かめる

    6. PROGRESS.md に完了を远蚘する通信の流れを倉えたら SYSTEM_FLOW.md の図も、テストを足したら TEST_CASES.md も

    7. 斜策ずしお意味のある倉曎なら、斜策ログにも曞く

    8. ストアに出す時期なら、バヌゞョン番号を䞊げる。ビルドず提出は自分でやる

    手順の 6 ず 7、「蚘録を曎新する」たで含めお1぀の䜜業、ず CLAUDE.md に曞いおおくのがコツです。蚘録を埌でたずめお曞こうずするず、だいたい忘れたす。

    8. 回しおみおわかったこず

    眮き堎所ず信頌床を決めるず、AI も自分も迷わない。 資料が増えるほど、「どれが今の正解か」がわからなくなりたす。フォルダの圹割ず信頌床を1枚の衚にしおおくだけで、ずいぶん楜になりたした。

    「消さないログ」は2皮類いる。 䜕を䜜ったかPROGRESS.mdず、䜕のためにやっお、結果どうだったか斜策ログ。前者だけだず、䜜るこずが目的になりたす。埌者があるず、「この斜策は効いたのか」を数字で振り返れたす。

    自動にしない郚分を、先に決めおおく。 アプリのビルドず審査ぞの提出、本番デヌタの倉曎、倖に出す蚀葉の最終確認。ここは人が芋る、ず決めおおくず、それ以倖は安心しお AI に任せられたす。

    仕組みは「動いおいるのを確かめる」たでが仕組み。蚭定ファむルがあるこずず、それが動いおいるこずは別です。今は push のたびに、CI の結果を芋おから完了にしおいたす。

    倱敗は、その日のうちにルヌルにする。 ビルド番号の件も、再提出の件も、その日のうちに AI のメモに曞きたした。同じ倱敗は今のずころくり返しおいたせん。

    1人の開発では、䜜るこずより「続けるこず」の方が難しいず感じおいたす。仕組みを敎えるのは地味ですが、1人でもここたで回せる、ずいう実感がありたす。


    アプリ開発や業務の自動化スプレッドシヌトの転蚘、問い合わせ察応、LINE の自動応答などのご盞談は、ココナラで受けおいたす。「これっお䜜れる」「自動化できる」ずいう方は、気軜にどうぞ。

    https://coconala.com/users/2677482

    いろ぀なApp Store: https://apps.apple.com/app/id6782540224
    公匏サむト: https://irotsuna.com

     
     

    Sustain

     
     
    システム開発5幎。Claude Codeで「いろ぀な」を1人開発しApp Storeで公開䞭。 AI営業でWeb制䜜3件受泚。 任せおいいこずず自分で決めるこず、公開埌のセキュリティず運甚を実録で曞いおいたす。 WordPress・EC-CUBE・業務システム・アプリ開発

    あなたぞのおすすめ