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 :
- Ouvrez Cursor
- Allez dans Extensions (Ctrl+Shift+X / Cmd+Shift+X)
- 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
- Swift par
// 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 .
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âche | Outil | Pourquoi |
|---|---|---|
| Écrire et éditer du code Swift | Cursor | Assistance IA, meilleure édition |
| Build et exécution | Xcode | Intégration native au simulateur |
| Storyboard / Aperçu SwiftUI | Xcode | Édition visuelle requise |
| Gestion des assets | Xcode | Gestion des .xcassets |
| Débogage avec points d'arrêt | Xcode | Intégration LLDB supérieure |
| Commits Git | Les deux | Cursor a aussi une bonne interface Git |
Étapes de workflow recommandées
- Créez le projet dans Xcode -- configurez les cibles, la signature et les dépendances
- Ouvrez le même dossier dans Cursor -- éditez les fichiers
.swiftlà-bas - Activez l'indexation du codebase dans Cursor (cliquez sur l'icône d'engrenage en haut à droite)
- Éditez dans Cursor -- utilisez le chat, Composer ou Tab pour la génération de code
- Sauvegardez dans Cursor -- les modifications sont écrites sur le disque immédiatement
- Basculez vers Xcode -- le changement de fichier est détecté automatiquement ; build et exécutez
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
| Limitation | Solution alternative |
|---|---|
| Pas de support Interface Builder | Utilisez SwiftUI ou éditez les storyboards dans Xcode |
| Pas d'intégration au simulateur iOS | Build et exécutez depuis Xcode ou xcodebuild |
Pas d'analyse de .xcodeproj | Gérez les fichiers de projet dans Xcode |
| Pas d'aperçu du catalogue d'assets | Utilisez Xcode pour les images et les couleurs |
| Pas d'interface de signature de code | Configurez la signature dans Xcode |
| Pas d'aperçu live SwiftUI | Aperç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 :
- Ouvrez le panneau Chat
- Cliquez sur le bouton Index (icône d'engrenages)
- 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-langpour le support Swift dans Cursor - Utilisez
xcodebuildpour 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