Le secret que les devs iOS ne veulent pas partager

Pierre CésarPierre César
7 min read

Vous pensez que Xcode est incontournable pour développer en Swift ? Détrompez-vous. Il existe une alternative qui change la donne : Cursor.

Basé sur VSCode, Cursor est un éditeur de code intelligent qui surpasse Xcode sur de nombreux points : plus rapide, plus fluide et surtout boosté à l’IA. En le combinant avec Xcode, vous obtenez un environnement de développement Swift optimal, et bien plus performant.

Ce guide vous explique comment configurer Cursor pour vous affranchir en grande partie de Xcode. Une fois adopté, vous aurez du mal à faire marche arrière 😉

🤯
Ne vous y trompez pas, cette capture d’écran a bien été réalisée avec Cursor !

Pourquoi combiner Cursor et Xcode ?

Xcode est l’outil officiel d’Apple, mais il traîne des défauts bien connus : lourdeur, manque de personnalisation et performances parfois frustrantes. Cursor propose une alternative moderne et intelligente, tout en restant parfaitement compatible avec l’écosystème Apple grâce à ses nombreuses extensions.

Voici pourquoi de plus en plus de développeurs Swift l’adoptent :

  • Un éditeur léger et modulable basé sur VSCode, loin de la rigidité de Xcode.

  • Une assistance IA intégrée pour coder plus vite et avec moins d’erreurs.

  • Des performances supérieures, notamment sur les projets volumineux.

  • Un écosystème d’extensions puissant, conçu pour améliorer votre productivité en Swift.

En combinant Cursor avec Xcode, vous obtenez le meilleur des deux mondes : la puissance du compilateur Apple, sans les contraintes de son éditeur.


Configuration étape par étape

1. 💾 Installation de Cursor

Commencez par installer Cursor depuis le site officiel

🕵
Important : Activez le mode de confidentialité dans Préférences > Cursor Settings pour protéger vos données de code.

Cette étape est cruciale pour les développeurs travaillant sur des projets sensibles ou propriétaires.

Privacy mode

2. 💾 Installation de xcodebuild

En utilisant Cursor, vous ne pourrez plus compter sur Xcode pour compiler directement vos projets. Mais pas de panique : xcodebuild, l’outil en ligne de commande intégré à Xcode, prend le relais. Il vous permettra de compiler, tester et générer vos builds sans passer par l’interface graphique d’Xcode

xcode-select --install

3. 💾 Installation de xcode-build-server

Le serveur de compilation Xcode joue un rôle clé dans l’activation de fonctionnalités avancées permettant d’améliorer la navigation dans le code telles que l’indexation du code ou le "saut vers la référence" (jump to reference). Il agit comme un pont entre Cursor et l’infrastructure de compilation d’Xcode, permettant à Cursor d’accéder aux métadonnées du projet.

brew install xcode-build-server

⚙ Configuration de xcode-build-server

Ouvrez le terminal dans Cursor avec Cmd + Maj + P puis exécutez la commande suivante :

> Build server config

En suivant les instructions, vous générerez un fichier de configuration buildServer.json à la racine de votre app. N’hésitez pas à y jeter un coup d’œil pour vérifier les paramètres du build, comprendre comment Cursor communique avec Xcode et ajuster la configuration si nécessaire.

4. 💾 Installation des extensions essentielles

Pour finaliser la transformation de Cursor en un véritable environnement de développement Swift, voici quelques extensions indispensables qui doivent être ajoutées directement depuis Cursor.

Extension Swift

Cette extension permet la reconnaissance du langage Swift, l'autocomplétion et la coloration syntaxique.

Extension SweetPad

Cette extension transforme Cursor en un environnement de développement complet avec compilation intégrée, débogueur et gestion de projets Xcode

Extension SwiftFormat

Cette extension active le formatage automatique du code Swift selon les règles de style définies.

🤝
Sur les projets partagés, assurez-vous que tous les développeurs utilisent les mêmes règles de formatage pour éviter les conflits lors des commits.

Extension CodeLLDB

Cette extension permet de déboguer votre app en utilisant les commandes habituelles (po, e, etc..) son utilisation est décrite plus bas

Extension ErrorLens

Cette extension met en évidence les erreurs et avertissements directement dans l’éditeur, tout comme le fait Live Issues dans Xcode

Extension de thème Xcode

Cette extension reproduit l'apparence familière de Xcode dans Cursor pour une transition en douceur.

Extension xcbeautify

Cette librairie qui n’est pas une extension de Cursor à proprement parler, formate les sorties verbeuses de xcodebuild en un format clair et coloré, rendant le débogage beaucoup plus simple.

brew install xcbeautify


🏃‍♂️ Compiler votre projet

Pour lancer votre application sur un simulateur ou un appareil physique :

  1. Utilisez le raccourci Cmd + Maj + P dans Cursor

  2. Tapez la commande build & run dans le terminal contextuel

> build & run

Sélectionnez ensuite la cible (target) lorsque demandée et votre app compilera naturellement !


Astuces avancées et bonnes pratiques

🎯 Sélection de target, d'environnement, d’appareil physique ou de simulateur

Pour modifier la cible (target) ou l'environnement de build :

  1. Ouvrez la palette de commandes avec Cmd + Maj + P

  2. Tapez "set scheme" pour changer de scheme

  3. Tapez "select build configuration" pour basculer entre Debug/Release

  4. Tapez "select destination" pour choisir un appareil spécifique

🧹 Optimisations de performance

  1. Indexation intelligente

    • Ajoutez les dossiers volumineux comme Pods ou Carthage à .cursorignore

    • Cela accélère considérablement l'indexation et les recherches

  2. Gestion de la mémoire

    • Fermez les fichiers non utilisés via Cmd + W

    • Pensez à supprimer vos Derived Datas périodiquement, notamment en cas de problème que vous n’arrivez pas à résoudre

🐞 Débogage

Pour debugguer votre app, vous utiliserez l’extension CodeLLDB dans Cursor, elle vous permettra d’utiliser les commandes classiques de LLDB et les breakpoints

  • Ajoutez l'extension CodeLLDB dans Cursor (voir plus haut)

  • Lancez cmd + maj + P Debug select and start debugging pour lancer le débogueur

  • Utilisez po pour inspecter les objets pendant le débogage

🧠 Intelligence Artificielle

Pour obtenir l’aide de l’IA sur une ligne spécifique :

  1. Placez le curseur sur la ligne concernée

  2. Utilisez Cmd + K pour ouvrir le compositeur IA

Pour obtenir l'aide de l’IA globalement sur votre projet :

  1. Utilisez Cmd + Maj + K pour ouvrir le compositeur IA en mode Agent

Pensez également à renseigner des cursorRules pour l’IA dans vos settings Xcode. Plusieurs modèles sont déjà disponibles sur internet, n’hésitez pas à vous en inspirer


Inconvénients connus

❌ Gestion des XCAssets

Cursor ne gère pas correctement les XCAssets, rendant l’édition des fichiers Contents.json fastidieuse.

Solution: Gardez Xcode ouvert et basculez avec CMD + Tab lorsque vous devez modifier des assets.

❌ Preview SwiftUI

Les previews SwiftUI ne sont pas disponibles dans Cursor. Il est nécessaire de conserver Xcode ouvert en parallèle pour bénéficier des previews en temps réel.

❌ Interface Builder

Cursor ne propose pas à ce jour d’extension permettant d'utiliser l'Interface Builder pour les fichiers XIB/Storyboard. Si vous pouvez toujours utiliser Xcode pour le faire, c’est peut-être également le bon moment pour passer à autre chose en privilégiant à snapKit ou swiftUI. Vos reviewers n’en seront que plus heureux !

Analyse avancée

Cursor ne propose pas d'Instruments ou d'autres outils d'analyse de performance (CPU, mémoire, réseau) tels que Xcode, il vous faudra donc basculer sur Xcode pour ces phases d’analyses de performances / débogage

Documentation Apple

Cursor ne permet pas d’ouvrir rapidement la documentation Apple via des hyperliens comme Xcode, vous aurez néanmoins accès à la codeBase Apple elle-même documentée.

SPM & configuration

Cursor ne permet pas facilement d’ajouter des packages spm, de même l’interface de configuration des targets de Xcode est manquante. À moins que vous n’ayez le courage de faire vos modifications et ajouts en textuel dans le pbxproj, utiliser Xcode pour cette étape semble plus raisonnable à l’heure actuelle

Conclusion

Avec ce guide, vous avez désormais entre les mains un environnement Swift optimisé, alliant la puissance du compilateur Xcode et la flexibilité de Cursor. Cette combinaison vous permet de gagner en fluidité, en rapidité et en confort, sans renoncer aux outils d’Apple.

Vous l’aurez compris, Cursor ne remplace pas encore Xcode sur tous les aspects du développement, mais il le transforme en un véritable espace de travail moderne et performant dont les avantages surpassent les inconvénients. Une fois adopté, il sera difficile de revenir en arrière.

Si vous souhaitez approfondir, voici une sélection d’articles de qualité sur ce sujet :

https://levelup.gitconnected.com/working-on-an-xcode-project-with-cursor-vscode-56c20fce94ac

https://kazaimazai.com/cursor-for-ios-development-installation-guide/

https://kazaimazai.com/personal-experience-of-using-cursor-for-ios-development/

https://medium.com/@ahmedsulaiman/debugging-swift-code-with-lldb-b30c5cf2fd49

https://dimillian.medium.com/how-to-use-cursor-for-ios-development-54b912c23941

0
Subscribe to my newsletter

Read articles from Pierre César directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Pierre César
Pierre César