世界を動かす技術を、日本語で。

Xcodeは私が今まで使った中で最悪のプロフェッショナルソフトウェアです

2025年9月22日原文(holdtherobot.com)

概要

  • XcodeSwiftUI 開発における実際の困難と問題点の指摘
  • エラーメッセージやプロジェクトファイルの扱いに関する課題
  • Appleのドキュメントやサポート体制の不透明さへの批判
  • 開発者体験の悪化と代替手段の不足
  • 初学者や現役開発者への注意喚起と提言

Xcode・SwiftUI開発におけるエラー体験

  • SwiftUI 開発時によく遭遇するエラー「 The compiler is unable to type-check this expression in reasonable time」の意味
    • コンパイラが処理を諦めた状態
    • エラー箇所が実際の問題箇所と一致しない可能性
    • 単純な構文ミスから複雑なロジックまで原因が多岐
  • エラー発生時、 Xcode がほぼ役立たずの状態になる
    • 頻繁なコミット推奨
    • 問題解決までエディタとしてしか使えない状況

Xcodeプロジェクトファイルの問題点

  • myProject.xcodeproj/project.pbxproj ファイルの複雑さ
    • 数千行に及び、 人間には読めない形式
    • 設定ミスや競合=プロジェクト自体が開かなくなるリスク
    • 例:PBXContainerItemProxyなど意味不明な記述
  • マージコンフリクト時の絶望感
    • xcodegen などでYAML管理→自動生成する方法が現実的
  • UIKit アプリのUIレイヤーも同様に不可読ファイルで管理

UIやシステムの設計上の問題

  • ダイアログボックスの不具合例
    • 複数のパスワード入力ダイアログが重なる現象
    • 問題解決の進捗はシャドウの色でしか分からない

Appleのサポート・ドキュメントの不透明さ

  • In-App Purchaseのテストにおける混乱
    • Apple公式ドキュメントと実際の挙動の乖離
    • シミュレータでの挙動が不明確
    • 開発者フォーラムでも明確な答えが得られない現状
    • Appleの情報の信頼性の低さ

WWDCや公式発表の実態

  • WWDC での新機能紹介は実質的に広告
    • SwiftUI Previewの実用性の低さ
    • 実際には複雑なプロジェクトでは機能しない場合が多い
    • 公開時点での品質と発表内容の乖離

Appleのバグトラッカーと開発者サポート

  • Appleのバグトラッカー(Radar)は非公開
    • バグ報告は一方通行で、進捗や既知バグの共有なし
    • 開発者同士の情報共有が困難
    • 同じ問題の再発見に多くの時間が浪費される

Xcode以外の選択肢とCLIツール

  • iOS開発における エディタの選択肢の少なさ
    • neovim+xcode-build-serverは不安定
    • Jetbrains AppCodeは開発終了
  • CLIツールのドキュメント不足・使いにくさ
    • CIや自動化の難しさ
    • Fastlane など外部OSSに依存する現実
    • Claude CodeなどAIツールも同様に苦戦

macOS依存と開発者体験

  • macが必須 という前提
  • Xcodeでの開発経験が開発者としての成長を阻害
    • 問題解決が儀式化しやすい環境
    • 「Xcode再起動」「Derived Data消去」「Mac再起動」などのテンプレ対応
    • 根本的な理解や改善に繋がりにくい風土

初学者・現役開発者への提言

  • Appleは技術的負債や開発者体験の改善に消極的
  • iOS開発を始める人には Xcodeから距離を置くことを推奨
  • Xcodeの使い勝手や挙動に悩むのは 自分のせいではない
  • 「Xcode sucks」 という結論

Hackerたちの意見

いくつかの有効なポイントはあるけど、コンパイラはXcodeじゃないし、Swiftは式をチェックできないんだよね。個人的には、こういう場合は開発者がSwiftUIの仕組みを理解してないのが原因だと思うけど、逆にAppleはその理解を得るのを手助けしてくれないことが多い。頼りにしているライブラリのサポートを突然やめたり、何かしら壊れた状態に放置したりして、自分で何とかしなきゃいけないこともある。でも、良いところもあるよ。プロファイリングツールは素晴らしいし、Xcodeで10個の難しい問題に取り組む方が、Visual Studioで1個の問題に取り組むよりマシだね。

同意。個人的にはそんなに悪くないと思うし、プロファイリングツールは素晴らしいよ。

Appleはずっと開発者に冷たいことで有名だよね。ドキュメントもひどいし。彼らの大事なユーザーにアクセスするためには、媚びへつらわなきゃいけない。この記事に書いてあることは、Appleの開発に関するすべての独自性から離れる理由だよ。オープンなウェブ技術や既存のゲームエンジンで提供できないソフトウェアがあるなら、どんなものか教えてほしいな。

昔のApple、NeXTの逆買収の前は、ドキュメントがすごく充実してたよね。

ちなみに、俺はもう20年近くMacで開発してるけど、開発者体験としては最悪でも中間くらいだと思う。GTKやJS/HTML/CSSと比べると、こっちの方が好きだし(CSSにはいいところもあるけどね)。最悪なのは、明らかにバグがあるのに修正がすごく遅いこと。ドキュメントはもっとひどくなることもあるけど、今は多くの目が彼らのツールに注がれてるから、以前よりも生産的になるのはずっと簡単だよ。デバッグやプロファイリングは素晴らしい。Windowsでの開発は試したことがないから、全体的にこっちの方がいいって想像できる。アプリストアを通過する必要がないなら、それもまた地獄だしね。

Appleはスマートフォンの二大巨頭の一部じゃなかったら、開発者から避けられてたと思う。ツールやプロセスが本当にひどいからね。今、Googleは少なくともPlayストアでの公開に関しては、Appleよりもさらに悪くしようとしてるみたい。

問題なのは、Apple、Google、Microsoftの3社がそれぞれのプラットフォームを悪化させていることだね。競争が少なくて、資本や労働が集中しているのが原因だと思う。

悲しいことに、AppleはApp Storeの取り分で調子に乗る前は、開発者にもっと優しかった気がする。どのMac OS XにもSDKが入ったセカンドディスクが付いてたし(Xcodeはいつも不安定だったけど)。OSの仕組みを説明する技術ノートを出してたし、WWDCの動画みたいな広告っぽい高レベルの概要じゃなかった。あの頃は、オープンスタンダードを使おうとしたり、3rdパーティーがOSの隙間を埋めるのを許可してたのに、今じゃAPIのスマウグみたいになっちゃったね。

GoogleもAppleと同じように署名や認証の面倒なことをやってるだけじゃない?でもGoogleは無料だし。

Xcodeは初期のMac OS Xの頃は素晴らしかった。でも、iOS開発者のためのAppleの防壁になってからはクソになったね。

Appleは気にしてないよ。iTunesやiCloud、その他もろもろがどれだけひどいか見てみて。特にWindowsでの使い勝手は最悪。彼らのソフトウェアは本当にひどい。お金になることにしか注力してないし、サポートもほとんどない。フォーラムで叫ぶことしかできないけど、Appleの擁護者が失礼な返事をしたり、役に立たない一般的なアドバイスをしてくるだけだよ。

ある意味、Xcodeはアプリストアに公開したい人にとっては非常に価値のある製品だよね(彼らは何の努力もせずにすごい家賃を取るから)。それと関わらなきゃいけないし。

Hacker Newsで議論の続きを見る