開発ブログ

Flutter / iOS / Android アプリ開発の実装メモ、Claude Code 活用、ピアノ・QRリーダー・メモ帳アプリの開発記録を公開しています。実装で詰まったポイント、設計判断、リリース後の課題対応など、個人開発者ならではの「泥臭い知見」を中心にまとめています。

ツール活用 Claude Code

Claude Code × MCP サーバーで外部ツール連携

MCP は Anthropic 標準のツール連携プロトコル。Backlog・App Store Connect・Playwright を Claude Code につなぐと、バグ報告から修正・ストア更新までが 1 つの会話で完結します。

ツール活用 Claude Code

スラッシュコマンドとスキルで定型作業を自動化

Claude Code のスラッシュコマンドとスキル機能を活用すると、定型作業はほぼワンコマンドで終わります。TDD サイクルや多言語化を自作スキル化した実例を紹介します。

ツール活用 Claude Code

サブエージェントと Task で並列開発を回す

Claude Code のサブエージェント機能と Task ツールを組み合わせると、UI 実装・テスト作成・ドキュメント生成を並列で回せます。Flutter のマルチ画面実装で試した実例を紹介します。

開発記録 ギリギリジャンパー

ギリギリオンライン — タップゲームをオンライン対戦化する MVP

「激ムズ!! ギリギリジャンパー」をオンライン対戦に拡張するべく、MVP としてオフライン CPU 対戦版を作りました。MVP の切り方とオンライン化への道筋を整理します。

ツール活用 Claude Code

CLAUDE.md の書き方で AI の働きが変わる

プロジェクトルートに置く CLAUDE.md は、Claude Code に対するもう一つのソースコードです。書き方次第で事故が減り、提案の質が変わります。実体験ベースで構成例を共有します。

ツール活用 Claude Code

Claude Code を個人開発のメインツールにしてみた

Cursor も GitHub Copilot も触ってきましたが、最終的に個人開発のメインツールとして Claude Code に落ち着きました。最初の 1 ヶ月で何が変わったかをまとめます。

開発記録 メモ帳

メモ帳アプリに Markdown プレビューを後付け実装中 — WKWebView の選択

純正 Swift のメモアプリに Markdown プレビューを追加実装している進行中の話。ネイティブレンダラを書くか、WKWebView でやるか。最終的に WKWebView を選んだ理由をまとめます。次回アップデートでリリース予定です。

開発記録 メモ帳

メモ帳アプリに iCloud 同期を入れる — 全言語ローカライズの罠

メモを iPhone と iPad で同期したい、というのは最も多いリクエストでした。iCloud 同期そのものより、全言語の同期メッセージとキーワード更新のほうがしんどかった話です。

開発記録 万歩計

万歩計アプリで歩行ルートに Kalman + RTS smoother を入れた話

GPS で取得した位置情報は揺らぎが大きく、地図に描くとガタガタの軌跡になります。Kalman フィルタ + RTS smoother で「自然な歩行ルート」に整形する話です。

開発記録 ここメモ

ここメモ — iOS バックグラウンドジオフェンスを Native Region Monitoring 化

「特定の場所に近づいたら通知する」位置情報メモアプリ。Flutter プラグインのバックグラウンド精度に限界があり、iOS ネイティブの Region Monitoring を採用しました。

開発記録 QRリーダー

iPhone 13 mini 固有のカメラフォーカス問題と向き合った話

「iPhone 13 mini だけ QR コードが読み取れない」というレビューが続き、調べてみると本体のカメラ仕様に起因する特殊な挙動でした。Pods 自動パッチで対応した経緯です。

開発記録 QRリーダー

ATT ダイアログをいつ出すか問題 — 起動直後の 1 秒遅延

ATT(App Tracking Transparency)ダイアログを「いつ表示するか」は、App Store のリジェクト要因にもなる繊細なテーマです。起動直後に出すと拒否率が上がる、出さないとリジェクト。1 秒遅延で落ち着いた話。

UX メモ帳

メモ内のリンクをタップで開くか、ロングプレスで開くか

メモアプリのリンク挙動はどうあるべきか。タップで開くと編集できない、ロングプレスで開くと気づかれない。試行錯誤の末にたどり着いた現在の設計をまとめます。

デザイン 万華鏡

万華鏡アプリの BGM を「コード」じゃなく「モチーフ」で作り直した話

万華鏡アプリで流していたヒーリング BGM が、聴いているうちに飽きる。コード進行で作るのをやめて、モチーフベースに作り直したら印象が変わった話です。

開発記録 QRリーダー

「読み取った URL のタイトルを自動取得」機能を実装し、Revert した話

QR で読み取った URL のページタイトルを自動取得して履歴に表示する機能を実装しました。便利そうに見えたのですが、ATT・プライバシー観点で Revert した経緯を共有します。

開発記録 万華鏡

万華鏡アプリでテッセレーション沼にハマった話

「画面いっぱいに敷き詰める」だけのはずが、四隅に隙間ができる。RDPアルゴリズムの epsilon を間違える。テッセレーション(敷き詰め)周りで何度もやらかした記録です。

開発記録 メロメモ

メロメモ — 鼻歌を音階に変換するピッチ検出エンジンを TDD で書いた

「鼻歌で録音した音声を、楽譜風の音階データに変換する」というアプリを作りました。ピッチ検出エンジンを TDD で組んだ過程を Phase ごとにまとめます。

開発記録 ふりがなメモ

ふりがなメモ — メモアプリにふりがな機能を統合する

メモ機能・フォルダ機能・ふりがな機能・単語グループ機能・設定機能を段階的に積み上げ、MVP として 85% まで持ってきたアプリの構成を紹介します。

開発記録 ピアノ

サスティンペダルを CC#64 イベントとして録音再生する仕組み

ピアノ録音でペダル操作を含めて再現するには、押した瞬間と離した瞬間をタイムラインに記録する必要があります。MIDI でいう CC#64 をどう設計したかをまとめます。

開発記録 N消し

N消し — OpenCV でナンバープレートを認識してマスクする

写真に写り込んだ車のナンバープレートを自動検出してマスクするアプリ。OpenCV の形状検出と複数プレート対応の実装をまとめます。

開発記録 ピアノ

ピアノアプリにベロシティ(強弱)を実装するまで

鍵盤を強くタップしたら大きな音、優しく押したら小さな音。「あって当然」のように見える機能を、画面タッチだけのスマホで再現するまでの試行錯誤を記録します。

開発記録 ピアノ

AUSamplerクラッシュとの戦い — オーディオ再初期化を整理する

Apple のオーディオエンジン AUSampler が想定外のタイミングでクラッシュする問題に遭遇しました。サウンドフォントのアンロードと再初期化回数の上限設定で乗り切った話です。

開発記録 MultiTimer

MultiTimer — Clean Architecture + Drift で複数タイマーを実装

「料理用のタイマーを複数同時に動かしたい」というニーズに応えるアプリを、Clean Architecture でレイヤー分離して実装しました。Domain / Data / Presentation の整理を共有します。

開発記録 モンスターブレイカー

モンスターブレイカー — ブロック崩しと RPG を融合させた Flame ゲーム

Flame でブロック崩しを作り、そこにモンスター・パーティ・装備・呪文といった RPG 要素を載せた話。Wave 制バトル設計の試行錯誤を共有します。

開発記録 ピアノ

電話着信後にピアノが鳴らなくなる問題をネイティブ実装で解決

電話を受けた後に戻ってくると、なぜか音が出ない。Flutter のオーディオプラグインでは解決できず、最終的に iOS ネイティブ側で AVAudioSession を操作することで決着しました。

デザイン ピアノ

黒鍵盤に光沢を入れたら、レビューが少しだけ優しくなった

機能追加ではなく、見た目だけを変える改修。黒鍵盤に斜めのグラデーションで光沢を入れたら、想像以上にユーザーの反応がよかった話です。