Xcode Cloud : la solution d’intégration et déploiement continus tant attendue

Florent Morin |

Après une année pour essuyer les plâtres de la version beta, Xcode Cloud est disponible pour tous depuis la fin de l’été. Cette solution d’intégration et de déploiement en continu (CI/CD dans le jargon) permet de répondre élégamment à un certain nombre de problématiques de développement au sein de l’environnement Apple. Si ces concepts ne vous disent rien, rassurez-vous, nous allons commencer par un rappel rapide du fonctionnement de Xcode et du partage de code entre développeurs par le biais de Git, avant de voir comment Xcode Cloud y trouve sa place.

Xcode : la boîte à outils du développeur Apple

Xcode est l’environnement de développement intégré proposé par Apple pour l’ensemble des développeurs qui travaillent sur ses différentes plateformes. Grâce à lui, vous pourrez concevoir une app pour iOS, macOS, tvOS, watchOS ou même un service web avec un seul et même outil, ce qui est plutôt pratique.

Xcode : la boîte à outils du développeur Apple

Cet environnement propose un ensemble d’outils clés en main. Il y a un éditeur qui permet d’écrire du code, par exemple en Swift avec l’auto-complétion, l’aide intégrée et bien d’autres options bien pratiques. On a aussi une interface dédiée à la mise en place de toutes les autres ressources « hors code » du projet : images, fichiers de configuration et autres. On peut configurer la compilation via une autre interface, la documentation de code est également intégrée. On peut aussi gérer les dépendances avec des composants de code externes via Swift Package Manager, le gestionnaire de paquets maison que nous avions évoqué dans un précédent article.

Swift Package Manager, notre série au complet sur le Club iGen

Swift Package Manager, notre série au complet sur le Club iGen

Et c’est loin d’être fini : on peut tester directement dans Xcode des modèles d’apprentissage automatique (ML). On peut exécuter des tests automatisés et aussi tester les apps sur son iPhone ou sur un simulateur en passant par ce même environnement. Et, en arrière-plan, c’est une multitude d’outils qui sont appelés pour exécuter chaque étape du développement.

En somme, Xcode propose le strict minimum pour concevoir une app iOS de qualité professionnelle dans les meilleures conditions possibles.

La gestion des versions des fichiers avec git

Depuis quelques années, Xcode intègre également le gestionnaire de versions git, un outil indispensable pour tout développeur, surtout en équipe. Git enregistre un historique des modifications de tous les fichiers utilisés dans le projet dans un endroit appelé dépôt. Ce dépôt peut être synchronisés avec un serveur, comme ceux de GitHub, ou rester local.

Git est pratique quand on est seul, puisqu’il permet de ne perdre aucune trace de son travail et également de revenir aisément en arrière. Par exemple, j’ai mon code initial qui fonctionne bien, puis je décide d’améliorer tout ça en modifiant une grosse partie de mon code. Et là, c’est le drame : plus rien ne fonctionne. Cela arrive, mais grâce à git, je pourrai revenir en quelques clics à l’ancienne modification de mon code (appelée « commit ») et également voir ce qui a été modifié entre les deux. Le nouveau commit qui a suivi la réécriture pourra alors être modifié ou annulé selon les besoins.

Le commit : représentation des modifications effectuées sur les fichiers d'un projet pour une étape donnée
avatar Ourson | 

Je trouvais tout ça très intéressant jusqu’au moment de lire la tarification que je trouve abusée, surtout si on se limite à du sideproject

avatar Florent Morin | 

@Ourson

Le CI/CD, c’est overkill pour des side projects.
En général, des tests locaux suffisent.

Niveau tarification, si on compare avec Bitrise, c’est très correct.

avatar koko256 | 

@FloMo

Ben non ce n'est pas overkill (encore le coup de Bill et ses 640k de RAM). Pouvoir changer un feature sur l'iPhone et voir le résultat directement c'est toujours mieux que de devoir attendre d'avoir son Mac. Mais 25h gratuites c'est suffisant.

avatar Nico_Belgium | 

@koko256

Tu codes sur l’iPhone ? 🤨

Pas très pratique quand même 😅

avatar koko256 | 

@Nico_Belgium

Des petits trucs oui. On retrouve l'intérêt d'avoir appris à coder juste du premier coup quand compiler était très long :) Quitte à être coincé dans le métro, autant utiliser le temps disponible !

avatar Nico_Belgium | 

Expérience assez positive également pour ma part. Ça m’a permis d’entièrement configurer une CI avec jobs de tests et job de TF en moins d’1h.

Très facile à prendre en main, très facile à configurer. Une réussite.

avatar StephanM3 | 

On pourra toujours utiliser Xcode sans prendre l’abonnement, je suppose ?

avatar Florent Morin | 

@StephanM3

Absolument. Ça ne concerne que la partie CI/CD.

avatar fif | 

Le copain du développeur est sans doute plein de poil…

avatar abiaad | 

Hello,

Si ca intéresse certain j’ai écris un retour d’xp sur le service : https://medium.com/leboncoin-engineering-blog/xcode-cloud-feedback-from-leboncoin-82991326faa0

Maintenant je m’en sers tout le temps pour mes projets perso, c’est ultra pratique / simple.

avatar Florent Morin | 

@abiaad

Ha. Excellent.

À tester avec la version stable qui est - de mon ressenti - bien plus performante que la beta.

avatar abiaad | 

@FloMo

Faudrait que je re-teste les limitations que j’avais rencontrées

avatar mmmathieu | 

Han Solo… is an Xcloud walker?

avatar DahuLArthropode | 

Han Solo, plutôt dans un XWing?

avatar Florent Morin | 

Je savais que Han Solo allait faire réagir 😂

avatar koko256 | 

Quelqu'un arrive à utiliser l'enclave sécurisée dans l'émulateur d'Xcode ?

avatar melaure | 

Le devops dans le cloud n'est pas nouveau, mais c'est le début chez la pomme.

avatar bibalox | 

Perso je préfère largement GeForce Now au Xbox Cloud.

Comment ça j'ai rien compris ?

Plus sérieusement, très bon article. Étant plus côté web je trouve ça intéressant de voir comment tous ces outils sont intégrés par un gros acteur comme Apple pour du natif.

avatar Florent Morin | 

@bibalox

😂

Merci. 🙂

avatar witchatt | 

Merci beaucoup pour cet article !

CONNEXION UTILISATEUR