ブログ
このブログの記事はほとんど AI で生成しています(題材・検証・最終判断は筆者)。詳しくは AI 活用方針 をご覧ください。
メモアプリのwhite flashをなくそうと、UILaunchScreen.UIImageName・パディング画像・SwiftUI擬似スプラッシュ・LaunchScreen.storyboardの4手段を試したがiOS 26では全滅した。DYLD_PRINT_STATISTICSとInstrumentsでpre-main/post-mainを計測し、「LaunchScreenで埋める」のではなく「切り替わりを知覚させない」シンプルな起動を意図的に選んだ記録。
GitHub FreeのPrivateリポジトリではBranch Protectionが使えない。並行で動くCursorエージェントがmainに直コミットを積み重ねる問題を、pre-commit・pre-push・ルール条文の3段構えで封じた設計の記録。worktreeを跨いでフックを効かせるgit rev-parse --git-common-dirの使い方まで。
フルスワイプの削除アニメーションが確認アラートより先に走って、行が消えかけて戻る。roleを外して.tint(.red)で色だけ付ける解決と、roleを残してよい条件(タップからデータ変更までに別のUIが挟まらない場合)の切り分け。
「東京」が「dong jing」と簡体字中国語ピンインに転写される原因を、CFStringTokenizerとja_JP localeで直した記録。ASCII文字列の早期リターン、Simulator固有の優先言語設定の罠、NSCacheによるsortKeyメモ化まで。
名前の部分をタップしただけでサインアウトしてしまう事故。Listの行にButtonが1つだけあると行全体がヒット領域になる挙動を.buttonStyle(.borderless)で戻す話と、VoiceOverのフォーカスリングでタップ領域を確かめる習慣。
Cursorエージェントに任せた修正が、別ブランチの未コミット変更のままtodo.mdだけ[x]になっていた。作業が消えかけた事故から、ブランチ整合・完了の定義・[x]条件の3条をルール化し、rule/hook/人の確認という3層で守る設計を書き残す。
ブログの文体ルールを.cursor/rules/blog-writing-style.mdcだけで守ろうとしたら、ルールを足すほど違反が増える逆転状態になった。長大化・抽象ルールの解釈揺れ・モデルの初期化バイアスという3つの失敗モードを分解し、プロンプト/few-shot/lintの3層で役割分担する設計に組み替えた記録。
AIが書いた日本語をlintで校正しても、語彙単位では拾えない違和感が残った。抽象名詞×動作動詞の直訳・同一パターンの記事内反復・短文の切断という3症状に言語化し、書き直し例とスタイルガイド/セルフチェック/リライトの3層対策までまとめた記録。
ブログの半角スペース方針を見直すために主要5ガイド(JTF・記者ハンドブック・公用文・textlint・Microsoft)を調べたら、日本語出版物の標準は揃って「入れない」側だった。Web技術ブログの主流が英語タイポグラフィの輸入だったという発見と、60d.devを「入れる派」から「入れない派」へ試行転換した経緯・移行戦略。
並行ブランチで記事を書くと blog/index.html が毎回コンフリクトの温床になる。YAML にメタを分離してビルドで一覧を生成する案と、記事 18 本時点でそれを入れるべきかの判断軸(記事数・コンフリクト頻度・追加忘れ回数・横断変更コスト)を整理する。
複数の Cursor / Claude Code セッションを同じリポジトリで並行させると、ブランチ切替に連動して未コミットの変更が自動 stash され作業が飛ぶ。復旧手順と、習慣・ブランチ運用・`rerere` の 3 層予防策、根本解決としての `git worktree` とエージェントへの状態宣言強制まで整理する。
「この記事は AI が書いています」を記事末尾の免責文として貼るのをやめ、header バッジ / 専用ポリシーページ / 一覧注記の 3 層構造で設計した。どこに置かなかったか・CSS 10 行でどう静かに見せるか・Cursor Rules にルール化して運用に組み込むまで。
String Catalog の自動抽出は便利だが、ビルド時に xcstrings が静かに書き換わり、コミットし忘れがドリフトとして蓄積する。v1.0.1 release prep で踏んだ実例と、1 コマンドで防ぐ運用、pre-commit hook の現実的な落としどころまで。
ビジョンを UI に落とし込む話。エクスポート画面に端末と Drive の件数を並べ、ズレていれば数字も色も変わるようにした。index.json だけで Drive 件数を集計するテクニックと、件数表示は一画面に集約する IA 原則までまとめた記録。
過去 4 セッションの JSONL をサブエージェントに読ませて、Glob 重複・大ファイル往復読み・サンドボックス失敗リトライ・WebFetch ループなどの無駄パターンを抽出。ルール 10 条と「文書・hook・環境」の3層で守る話まで。
サブタイトルが赤く滲む謎から、SwiftUI の Button tint 伝播、List 行の配色ルール、CTA の定義、冗長なセクションの統合までを一気通貫で整理した記録。
最初から付け忘れた一意制約を、既存データの重複を壊さずに追加するには。CloudKit と併用できない理由、マイグレーション失敗が怖い理由、クラウド同期前提の 3 段階ロールアウトで切り抜けた記録。
Xcode Organizer と App Store Connect だけで組む、無料のクラッシュ監視体制。重大度の判定基準、ホットフィックス フロー、Crashlytics を後から入れる判断基準までまとめた運用メモ。
テキストは赤いのにアイコンだけ青い。symbolRenderingMode を変えても、シンボルを変えても直らない原因と対処法、Apple の設計パターンを解説。
Cursor Rules を書き続けると必ず肥大化する。CHANGELOG 陳腐化や重複の実例から、PR ごとの更新、定期棚卸し、TL;DR 化などの運用ルールまで、個人開発での実践記録。(Cursor × iOS 開発シリーズ完結編)
iOS 17 以降で必須化された Privacy Manifest への対応手順を、個人開発の視点で具体的にまとめる。Required Reason API、OSLog のプライバシー指定、第三者 SDK の確認まで。v1.0 審査通過の実例付き。
審査通過メールが届いた直後にやるべきタスクを、個人開発者の視点で時系列に整理。LP 更新、タグ、CHANGELOG、ブログ記事まで。2回目以降はルール化して AI に任せる。
メモをユーザー自身の Google ドライブに保存する iOS アプリ「60d Memo」をリリース。データの所有権をユーザーに返すという設計思想、技術スタック、AI と一緒に開発した経緯について。
Studio 公開サイトなどでカルーセルが動き続けて検証しづらいとき、コンソールに貼るだけで止められる JavaScript スニペットまとめ。
前段(Hosting)と後段(Functions)のタイムアウトの違い、直 URL・環境変数・CORS、非同期ジョブ化と App Check のメモ、デプロイログの扱い。
v1.1 の status 前提とレスポンス仕様のズレ、公式 Example を一次ソースにする話、別エンドポイント時のコスト試算とオンデマンド/列廃止の判断メモ。
AI コーディングツールが自信満々に間違える問題にどう対処するか。Google Drive API の 403 エラーと Xcode Cloud のビルド番号管理で得た教訓と、ドキュメントを先に学ばせる仕組みの導入記録。
CursorのAIエージェントを活用し、iOSアプリのクラッシュ修正、Google Drive同期の堅牢化、GitHub Actions CI構築、UI改善までを1日で進めた記録。
Claude Desktopアプリの通知が届かない原因と、Claude Code Hooksを使った確実な解決方法を紹介します。