Flutter / iOS / Android アプリ開発の実装メモ、Claude Code 活用、ピアノ・QRリーダー・メモ帳アプリの開発記録を公開しています。実装で詰まったポイント、設計判断、リリース後の課題対応など、個人開発者ならではの「泥臭い知見」を中心にまとめています。
MCP は Anthropic 標準のツール連携プロトコル。Backlog・App Store Connect・Playwright を Claude Code につなぐと、バグ報告から修正・ストア更新までが 1 つの会話で完結します。
Claude Code のスラッシュコマンドとスキル機能を活用すると、定型作業はほぼワンコマンドで終わります。TDD サイクルや多言語化を自作スキル化した実例を紹介します。
Claude Code のサブエージェント機能と Task ツールを組み合わせると、UI 実装・テスト作成・ドキュメント生成を並列で回せます。Flutter のマルチ画面実装で試した実例を紹介します。
「激ムズ!! ギリギリジャンパー」をオンライン対戦に拡張するべく、MVP としてオフライン CPU 対戦版を作りました。MVP の切り方とオンライン化への道筋を整理します。
プロジェクトルートに置く CLAUDE.md は、Claude Code に対するもう一つのソースコードです。書き方次第で事故が減り、提案の質が変わります。実体験ベースで構成例を共有します。
Cursor も GitHub Copilot も触ってきましたが、最終的に個人開発のメインツールとして Claude Code に落ち着きました。最初の 1 ヶ月で何が変わったかをまとめます。
純正 Swift のメモアプリに Markdown プレビューを追加実装している進行中の話。ネイティブレンダラを書くか、WKWebView でやるか。最終的に WKWebView を選んだ理由をまとめます。次回アップデートでリリース予定です。
メモを iPhone と iPad で同期したい、というのは最も多いリクエストでした。iCloud 同期そのものより、全言語の同期メッセージとキーワード更新のほうがしんどかった話です。
GPS で取得した位置情報は揺らぎが大きく、地図に描くとガタガタの軌跡になります。Kalman フィルタ + RTS smoother で「自然な歩行ルート」に整形する話です。
「特定の場所に近づいたら通知する」位置情報メモアプリ。Flutter プラグインのバックグラウンド精度に限界があり、iOS ネイティブの Region Monitoring を採用しました。
「iPhone 13 mini だけ QR コードが読み取れない」というレビューが続き、調べてみると本体のカメラ仕様に起因する特殊な挙動でした。Pods 自動パッチで対応した経緯です。
ATT(App Tracking Transparency)ダイアログを「いつ表示するか」は、App Store のリジェクト要因にもなる繊細なテーマです。起動直後に出すと拒否率が上がる、出さないとリジェクト。1 秒遅延で落ち着いた話。
メモアプリのリンク挙動はどうあるべきか。タップで開くと編集できない、ロングプレスで開くと気づかれない。試行錯誤の末にたどり着いた現在の設計をまとめます。
万華鏡アプリで流していたヒーリング BGM が、聴いているうちに飽きる。コード進行で作るのをやめて、モチーフベースに作り直したら印象が変わった話です。
QR で読み取った URL のページタイトルを自動取得して履歴に表示する機能を実装しました。便利そうに見えたのですが、ATT・プライバシー観点で Revert した経緯を共有します。
「画面いっぱいに敷き詰める」だけのはずが、四隅に隙間ができる。RDPアルゴリズムの epsilon を間違える。テッセレーション(敷き詰め)周りで何度もやらかした記録です。
「鼻歌で録音した音声を、楽譜風の音階データに変換する」というアプリを作りました。ピッチ検出エンジンを TDD で組んだ過程を Phase ごとにまとめます。
メモ機能・フォルダ機能・ふりがな機能・単語グループ機能・設定機能を段階的に積み上げ、MVP として 85% まで持ってきたアプリの構成を紹介します。
ピアノ録音でペダル操作を含めて再現するには、押した瞬間と離した瞬間をタイムラインに記録する必要があります。MIDI でいう CC#64 をどう設計したかをまとめます。
写真に写り込んだ車のナンバープレートを自動検出してマスクするアプリ。OpenCV の形状検出と複数プレート対応の実装をまとめます。
鍵盤を強くタップしたら大きな音、優しく押したら小さな音。「あって当然」のように見える機能を、画面タッチだけのスマホで再現するまでの試行錯誤を記録します。
Apple のオーディオエンジン AUSampler が想定外のタイミングでクラッシュする問題に遭遇しました。サウンドフォントのアンロードと再初期化回数の上限設定で乗り切った話です。
「料理用のタイマーを複数同時に動かしたい」というニーズに応えるアプリを、Clean Architecture でレイヤー分離して実装しました。Domain / Data / Presentation の整理を共有します。
Flame でブロック崩しを作り、そこにモンスター・パーティ・装備・呪文といった RPG 要素を載せた話。Wave 制バトル設計の試行錯誤を共有します。
電話を受けた後に戻ってくると、なぜか音が出ない。Flutter のオーディオプラグインでは解決できず、最終的に iOS ネイティブ側で AVAudioSession を操作することで決着しました。
機能追加ではなく、見た目だけを変える改修。黒鍵盤に斜めのグラデーションで光沢を入れたら、想像以上にユーザーの反応がよかった話です。