概要
2025年4月、Sansan株式会社Eight事業部へ異動し、名刺管理アプリEightのiOSアプリ作り直しプロジェクトに中盤から参加した。13年以上続いた長期開発で複雑化したコードベースをいかにして捨てやすく機能を作るかの思想のもと1から再構築するプロジェクトであり、この1年で設計書を起点に開発を進める力と生成AI・MCPを武器化して開発生産性を上げる力を磨いた。
説明
2025年4月から2026年4月まで、Sansan株式会社Eight事業部の8名以上のiOSアプリ開発チームに所属し、作り直しプロジェクトに従事した。主に担ったのは設計書を起点にした機能開発、新設計(VIPER)への移植とSwift Concurrency導入の技術選定、生成AI・MCPを組み込んだ開発運用の3領域である。
設計書を起点にした機能開発では、オンボーディング・検索・設定・横断基盤の領域で10〜20本の設計書を自ら執筆し、その設計書に沿って実装まで通した。特徴は、コードを書く前に設計書を書き、設計書の単位でモジュール境界を切る進め方を徹底した点である。機能単位でモジュールを分けることで将来その機能ごと捨てやすい構造を保ち、責務境界は着手前に決めることで曖昧さを残さないようにした。さらに設計書そのものの読みやすさとして、読み手が上から順に読んで違和感がないかと図がひと目で理解できるかを自らの品質基準として運用した。
新設計(VIPER)への移植とSwift Concurrency導入の技術選定では、1から作り直せる環境である利を活かしつつも、技術を目的化しない姿勢を貫いた。Swift
ConcurrencyやSwiftUIを全面採用したくなる場面でも、可読性が著しく落ちるやそのAPIのための付帯実装が増えるといった観点で比較した結果、あえて従来技術を選び直す判断を下した。その典型例が、画面実装においてUIKitを中心に据える方針である。「設計書が先にあり、その設計に最も適した技術を選定する」立場を一貫させた結果として、新旧の技術が設計上の必然として組み合わさる構造を実現した。
生成AI・MCPを組み込んだ開発運用では、Claude Code / Codex /
Cursorといった生成AIを日常開発に組み込み、出力精度を実運用レベルで安定させる運用を追求した。この運用を後押しする個人OSSとして、Apple公式のSwift
API Design Guidelinesを生成AIに参照させるためのMCPサーバ
SwiftGuidelinesMCPを設計・実装し、GitHubに公開した。自分自身の日常開発で使い倒しながら改善を続けており、生成AI出力の精度を安定化させるための実用的な基盤となっている。チームに対しては、生成AI活用ガイドラインの策定・共有にも貢献した。
これら全体を貫いたのがいかにして捨てやすく機能を作るかという思想である。この実践を支える下地として、理科系の作文技術とリーダブルコードの2冊を読み込み、文章設計と命名の両面に適用した。この取り組みは「捨てやすい機能」を作ることに寄与しただけでなく、生成AIが出力する結果の精度向上や生成AIの曖昧な出力に対する防御策としても機能し、文章・コード・生成AI活用を同じ原則で貫ける状態を作り出した。
key words
Swift, SwiftUI, UIKit, Swift Concurrency, VIPER, SwiftPM, XCTest, Swift Testing, CI/CD, Vibe Engineering, Claude Code, Codex, Cursor, MCP (Model Context Protocol), Technical Writing, Design Documentation, Productivity