Aller au contenu principal

Utiliser Cursor pour le développement Swift et iOS

Cursor est un éditeur assisté par IA puissant, mais le développement Swift et iOS présente des défis uniques. Contrairement aux projets JavaScript ou Python, les applications iOS dépendent fortement du système de build de Xcode, d'Interface Builder et du simulateur iOS. Ce guide explique comment configurer Cursor pour le développement Swift, l'intégrer avec Xcode et contourner les limitations actuelles.

Pourquoi utiliser Cursor pour Swift ?

Xcode est l'IDE officiel pour les plateformes Apple, et il est nécessaire pour de nombreuses tâches. Cependant, Cursor offre des avantages qu'Xcode n'a pas :

  • Génération de code par IA pour le code répétitif SwiftUI et UIKit
  • Refactoring intelligent sur plusieurs fichiers
  • Chat en langage naturel pour comprendre le code Objective-C legacy ou le Swift complexe
  • Composer pour les modifications multi-fichiers et la génération de nouvelles fonctionnalités
  • Meilleure expérience d'édition de texte avec les raccourcis VS Code et les extensions

Le workflow le plus productif n'est pas Cursor ou Xcode -- c'est Cursor et Xcode utilisés ensemble.

Configurer Cursor pour Swift

1. Installer le support du langage Swift

Cursor est basé sur VS Code, vous pouvez donc installer des extensions depuis le marketplace. Pour le développement Swift, installez les suivantes :

  1. Ouvrez Cursor
  2. Allez dans Extensions (Ctrl+Shift+X / Cmd+Shift+X)
  3. Recherchez et installez :
    • Swift par sswg.swift-lang -- fournit la coloration syntaxique, les diagnostics et la navigation dans le code
    • SwiftFormat -- pour le formatage automatique du code
    • Xcode Keymap (optionnel) -- si vous préférez les raccourcis Xcode
// Extensions recommandées dans .vscode/extensions.json
{
"recommendations": [
"sswg.swift-lang",
"vknabel.vscode-swiftformat",
"apple-swift.swift-vscode"
]
}

2. Ouvrir votre projet Xcode dans Cursor

Vous pouvez ouvrir un projet Xcode directement dans Cursor, mais avec quelques réserves :

# Naviguez vers le répertoire de votre projet
cd ~/Projects/MyiOSApp

# Ouvrir dans Cursor
cursor .
Fichiers de projet

Cursor peut lire les fichiers .swift, mais il ne peut pas analyser directement les fichiers .xcodeproj ou .xcworkspace. La structure du projet apparaîtra comme une arborescence de fichiers plate. Vous aurez toujours besoin d'Xcode pour les storyboards, les catalogues d'assets et la configuration du projet.

3. Configurer les tâches de build

Puisque Cursor ne peut pas déclencher les builds Xcode nativement, configurez une tâche personnalisée :

// .vscode/tasks.json
{
"version": "2.0.0",
"tasks": [
{
"label": "Build iOS App",
"type": "shell",
"command": "xcodebuild",
"args": [
"-project", "MyApp.xcodeproj",
"-scheme", "MyApp",
"-destination", "platform=iOS Simulator,name=iPhone 15",
"build"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

Lancez le build avec Ctrl+Shift+B (Cmd+Shift+B sur macOS).

Le workflow double éditeur

Le workflow qui fonctionne le mieux, selon les retours de la communauté, est d'exécuter les deux éditeurs côte à côte :

TâcheOutilPourquoi
Écrire et éditer du code SwiftCursorAssistance IA, meilleure édition
Build et exécutionXcodeIntégration native au simulateur
Storyboard / Aperçu SwiftUIXcodeÉdition visuelle requise
Gestion des assetsXcodeGestion des .xcassets
Débogage avec points d'arrêtXcodeIntégration LLDB supérieure
Commits GitLes deuxCursor a aussi une bonne interface Git

Étapes de workflow recommandées

  1. Créez le projet dans Xcode -- configurez les cibles, la signature et les dépendances
  2. Ouvrez le même dossier dans Cursor -- éditez les fichiers .swift là-bas
  3. Activez l'indexation du codebase dans Cursor (cliquez sur l'icône d'engrenage en haut à droite)
  4. Éditez dans Cursor -- utilisez le chat, Composer ou Tab pour la génération de code
  5. Sauvegardez dans Cursor -- les modifications sont écrites sur le disque immédiatement
  6. Basculez vers Xcode -- le changement de fichier est détecté automatiquement ; build et exécutez
Synchronisation des fichiers

Les deux éditeurs surveillent les mêmes fichiers sur le disque. Vous n'avez pas besoin de synchroniser manuellement. Sauvegardez simplement dans Cursor et build dans Xcode. Git gère le versioning si quelque chose tourne mal.

Build sans Xcode

Pour les développeurs qui veulent minimiser l'utilisation d'Xcode, xcodebuild est la solution. C'est l'outil de build en ligne de commande d'Apple et il supporte tout ce que Xcode fait.

Commandes de build de base

# Build pour le simulateur
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' build

# Build pour l'appareil
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'generic/platform=iOS' build

# Lancer les tests
xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'platform=iOS Simulator,name=iPhone 15' test

# Nettoyer le dossier de build
xcodebuild -project MyApp.xcodeproj -scheme MyApp clean

Utiliser Swift Package Manager

Si votre projet utilise SPM au lieu de projets Xcode, Cursor fonctionne encore mieux :

# Build
swift build

# Lancer les tests
swift test

# Générer le projet Xcode (si nécessaire)
swift package generate-xcodeproj

Les projets basés sur SPM sont plus "Cursor-friendly" car ils ne dépendent pas des fichiers .xcodeproj.

Hot Reloading avec Inject

Un outil favori de la communauté pour le développement Swift dans Cursor est Inject par Krzysztof Zablocki. Il permet le hot reloading pour les applications Swift, réduisant le besoin de rebuild constamment dans Xcode.

// Ajoutez à votre AppDelegate ou point d'entrée principal
#if DEBUG
import Inject
#endif

// Dans votre view controller ou vue SwiftUI
#if DEBUG
@ObservedObject var inject = Inject.observer
#endif

Avec Inject, vous pouvez build une fois dans Xcode et voir les changements de code reflétés immédiatement pendant que vous éditez dans Cursor.

Limitations et solutions alternatives

Ce que Cursor ne peut pas faire pour le développement iOS

LimitationSolution alternative
Pas de support Interface BuilderUtilisez SwiftUI ou éditez les storyboards dans Xcode
Pas d'intégration au simulateur iOSBuild et exécutez depuis Xcode ou xcodebuild
Pas d'analyse de .xcodeprojGérez les fichiers de projet dans Xcode
Pas d'aperçu du catalogue d'assetsUtilisez Xcode pour les images et les couleurs
Pas d'interface de signature de codeConfigurez la signature dans Xcode
Pas d'aperçu live SwiftUIAperçu dans Xcode, édition dans Cursor

Problèmes courants

Problème : Cursor ne reconnaît pas les imports UIKit

Solution : Assurez-vous que l'extension Swift est installée et que le projet est indexé. Parfois un redémarrage de Cursor est nécessaire après l'installation des extensions.

Problème : Les erreurs de build ne s'affichent pas en ligne

Solution : Utilisez le panneau Terminal dans Cursor pour exécuter xcodebuild et voir les erreurs, ou basculez vers Xcode pour la phase de build.

Problème : L'autocomplétion pour les frameworks Apple est faible

Solution : L'autocomplétion Tab de Cursor fonctionne bien pour Swift, mais la documentation des frameworks Apple n'est pas aussi profondément intégrée que dans Xcode. Utilisez le chat de Cursor pour demander des informations sur des API spécifiques.

Bonnes pratiques

1. Gardez Xcode comme autorité de build

Vérifiez toujours que votre application build et s'exécute dans Xcode avant de commit. Cursor est excellent pour écrire du code, mais Xcode est la source de vérité pour savoir s'il compile.

2. Utilisez des branches Git pour les modifications assistées par IA

Lorsque vous utilisez le Composer ou le mode Agent de Cursor pour de grands refactors, créez d'abord une branche :

git checkout -b cursor-refactor
git add .
git commit -m "Checkpoint avant refactoring Cursor"

Cela vous permet de revenir en arrière si les modifications générées par l'IA cassent le build.

3. Indexez votre codebase

Avant de demander à Cursor de faire des modifications, indexez le projet :

  1. Ouvrez le panneau Chat
  2. Cliquez sur le bouton Index (icône d'engrenages)
  3. Attendez que l'indexation soit terminée

Cela améliore la qualité des suggestions de l'IA car Cursor comprend la structure complète du projet.

4. Structurez vos prompts pour Swift

Lorsque vous demandez à Cursor de générer du code Swift, soyez spécifique sur le framework :

Bon : "Créez une vue SwiftUI qui affiche une liste d'utilisateurs avec chargement d'images asynchrone"

Mauvais : "Faites un écran de liste d'utilisateurs"

Résumé

Cursor est un ajout précieux à la boîte à outils du développeur iOS, mais ce n'est pas un remplacement pour Xcode. L'approche la plus efficace est un workflow double éditeur : écrivez et refactorisez le code dans Cursor en utilisant l'assistance IA, puis build, prévisualisez et déboguez dans Xcode.

Points clés :

  • Installez l'extension sswg.swift-lang pour le support Swift dans Cursor
  • Utilisez xcodebuild pour les builds en ligne de commande lorsque vous voulez rester dans Cursor
  • Exécutez les deux éditeurs simultanément -- ils se synchronisent via le système de fichiers
  • Utilisez des branches Git avant les grands refactors assistés par IA
  • Soyez conscient des limitations : pas d'édition de storyboard, pas de simulateur, pas d'interface de signature de code

Alors que l'écosystème évolue, une intégration plus étroite pourrait devenir disponible. Pour l'instant, la combinaison des fonctionnalités IA de Cursor et des outils plateforme d'Xcode offre le meilleur des deux mondes.


Dernière mise à jour : Juin 2025