前言#
本記事は 2025-05-13
から 2025-05-18
までの週の生活の記録と考察です。
iOS/SwiftUI 開発に関するいくつかのリソースと、Roo Code と Cursor に基づく iOS 開発環境の構築とワークフローについて記録します。
iOS/SwiftUI 開発#
学習リソース#
最近の仕事でいくつかの iOS 関連の開発に関わることがありました。以前「TheWan App」を作成したときも SwiftUI を使用しましたが、個人的なプロジェクトだったため、機能を完成させることに重点を置き、ベストプラクティスを追求していませんでした。そこで、五一の連休を利用して基礎知識を再補充しました。
- Apple - SwiftUI、公式ドキュメント。
- Apple - SwiftUI Tutorials、Apple 公式のインタラクティブな SwiftUI チュートリアルで、レイアウトやアニメーションに関する概念がより具体的に理解できます。
- SwiftUI 新手入門課程、ChaoCode の入門チュートリアルは最もシンプルでわかりやすいものです。難易度は高くありませんが、説明が非常に明確で、見終わった後には小さなプロジェクトができるようになります。
- CS193p - Developing Apps for iOS、スタンフォードの非常にクラシックな iOS 開発コースで、2023 年のコースも SwiftUI に移行しており、質が非常に高いです。見終わった後には MVVM デザインパターンやいくつかのより基礎的な概念をより理解できるようになります。
- 肘子的 Swift 记事本、多くの優れた記事があり、Swift Data のベストプラクティスについては彼のブログを参考にしています。
- 13 の iOS Developer+、普段彼のニュースレターを見ており、彼も SwiftUI のチュートリアルを連載中で、学習を深めるために購読を検討しています。
具体的な概念や実践については、直接 Google 検索を行うと、medium や他のプラットフォーム上の記事が見つかります。質はまちまちですが、現在は LLMs が生成する回答よりも信頼性が高いです。唯一注意が必要なのは、時効性を見極めることで、多くの古いバージョンの実践は適用できない可能性があります。
開発環境の構築#
Apple Intelligence をサポートする macOS には、内蔵の予測コード補完機能があり、約 2.5GB のローカルモデルをダウンロードします。オフラインでも使用可能です。
しかし、このローカルモデルに比べて、GitHub Copilot が Xcode に提供する公式プラグインはより強力です。補完機能に加えて、Xcode で開いているファイルに対して質問をするためのチャット欄もあり、Claude 3.7 Sonnet Thinking などの最新モデルもサポートしていますが、現在のところ VS Code のようなエージェント機能は提供されていません。
Cursor のエージェントモードに慣れた後は、Xcode のチャットだけでは開発が不十分になってきました。幸い、Cursor/VS Code もいくつかのプラグインを通じて SwiftUI に対するサポートを提供しています。
まずは、いくつかのコマンドラインツールをインストールします。
これらは brew を使って一括インストールするか、上記の GitHub リポジトリからそれぞれインストールできます。
brew install xcode-build-server xcbeautify swiftformat
Cursor/VS Code では、次の 2 つのプラグインをインストールする必要があります。
上記の依存関係がすべてインストールされたら、
- Cursor でプロジェクトを開き、
xx.xcodeproj
と同じディレクトリに配置します。 Cmd + Shift + P
を押してコマンドパネルを呼び出し、Sweetpad: Generate Build Server Config
を入力 / 検索し、現在のプロジェクトを選択します。- しばらく待つと、現在のプロジェクトのルートディレクトリに
buildServer.json
ファイルが生成されます。
🍬 アイコンのサイドバーのプラグインを開き、プロジェクトに対応するスキーマのビルドをクリックし、シミュレーターまたは接続された実機を選択すると、自動的にコンパイルして実行され、Xcode を開かずに開発を行うことができます。
今、すべてのコードファイルを開いても、imports エラーなどの赤いエラーは表示されなくなり、Cursor/Roo Code エージェントを使用して開発する際も、より正確になります。
Roo Code + Cursor に基づく開発ワークフロー#
iOS 開発の過程で、文脈の長さやモデルのコーパスの理由から、Roo Code プラグインと gemini-2.5-pro-preview-05-06
モデルを組み合わせることで、より大きな機能モジュールの分割やリファクタリングなどのシナリオで、前者よりも顕著に良い結果が得られることに気付きました(もちろん、従量課金制のトークン消費もかなり大きいですが)。
現在のワークフローは、roocode-workspace プロジェクトを使用してモデルにプロジェクト構造を理解させ、後で使用するためのメモリバンクファイルを生成することから始まります。大きな機能の開発では、公式ドキュメント、ブログ、自分のプロンプトをできるだけ多く提供して Roo Code に開発を行わせ、自分で論理的なバグを修正します。
最後に、複雑なエラーや lint エラーがある場合は、小さなタスク単位に分割して Cursor + Claude 3.7 Sonnet Thinking を使用して修正します。消費速度は 2 倍ですが、生成されたコードの有用性はより高いです。
現在、いくつかの大きな要求はこのワークフローを通じて開発を支援しており、結果には比較的満足しています。
面白いことと物#
入力#
面白い入力の大部分は「Yu's Life」Telegram チャンネルで自動的に同期されますが、ここで一部を選んで列挙してみます。ニュースレターのように感じます。
Telegram チャンネルのメッセージをコンテンツソースとして、マイクロブログ「daily.pseudoyu.com」を構築しました。これにより、より便利にブラウジングできます。
お気に入り#
記事#
- iOS Silent Notification Problem - How they mess up your app's lifecycle and Amplitude session events、iOS 静粛通知の実践。
動画#
映画#
- 我仍在此、久しぶりに映画館で見た映画で、ブラジルとの友好交流の政治的理由から、この政治的に明確な(左翼、暴力的な)作品が国内の映画館で上映されるのは非常に微妙なことです...
シリーズ#
- 最後生還者 第二季、ゲームをプレイしない人ですが、第一シーズンを見た印象が強く、追いかけています。
- 愛、死亡とロボット 第四季、質の低下 / 想像力の枯渇が「ブラックミラー」を超えていると感じます... あまりにも意図的な比喩が多すぎると、少し虚構的に感じます。