XCode 4 : La difficile évolution à marche forcée pour Apple

Cet article va être un tantinet plus technique que les autres car il s’agit pour moi plus de vous évoquer mon impression sur la nouvelle version de l’éditeur d’Apple. Etant […]

Cet article va être un tantinet plus technique que les autres car il s’agit pour moi plus de vous évoquer mon impression sur la nouvelle version de l’éditeur d’Apple. Etant moi même développeur iOS, j’évoquerais d’ailleurs mes projets déjà réalisés à l’occasion dans le futur.

En effet, depuis maintenant quelques semaines, la nouvelle version très attendue de XCode a été officiellement lancée. Cette version 4 inaugure des changements majeurs que j’ai déjà brièvement présentés.

Il faut bien le dire, ces changements ont un impact fort sur la manière dont on utilise le logiciel. Il faut quasiment mettre à la poubelle tous les réflexes que nous avions dans la version 3.

Au delà même de l’interface qui a bien évoluée, l’organisation même des choses est bouleversée, la terminologie évolue, l’intégration de Interface Builder n’étant finalement pas l’élément le plus déstabilisant contrairement à ce que je redoutais un peu.

En premier lieu ce qui choque réellement, ce sont les bugs ! Un comble pour un outil de développement professionnel ! D’autant plus que XCode a cessé d’être offert gratuitement par Apple. Il faut en effet soit le payer via le Mac App Store, soit avoir adhéré à l’un des programmes de développement payant d’Apple pour en profiter…

Le premier bug connu a été bien médiatisé, puisque le logiciel refusait tout bonnement de s’installer chez bon nombre de personnes… MacGeneration comme bien d’autres sites expliquent très bien la chose.

Mais cela ne cesses pas là malheureusement, le logiciel est bien plus lourd et lent à utiliser que son aîné, là ou mon bon vieux MacMini 2 gHz de 2009 se débrouillait aisément, je dois souvent patienter avec la célèbre roue multicolore avant de pouvoir intervenir…

Je ne ferais aussi qu’évoquer la très mauvaise intégration de la documentation, surtout de part la complexité de sa récupération, en effet Apple a tenté d’alléger la taille de son logiciel en n’intégrant pas les documentations directement, mais en proposant un téléchargement à part. Il faut donc aller dans un sous menu des préférences pour obtenir la documentation adéquate… Contraignant et bien peu explicite ! Surtout quand on sait que XCode 4 pèse bien plus que XCode 3. Là ou ce dernier tournait dans les 3,2 / 3,6 Go, XCode 4 franchi de peu la barre des 4 Go. Bloquant aussi la possibilité de déplacer aisément l’application sur une clef USB formatée en FAT32 comme l’immense majorité des cas…

En parlant du poids, autre défaut, Apple a fait des mises à jour depuis sa sortie, on est actuellement en version 4.0.2, mais n’a prévue aucun système de mise à jour simplifié. On est donc contraint de re-télécharger l’intégralité des 4 Go à chaque mise à jour mineure… Même si les connexions ADSL sont rapides, il faut bien compter 1h30 à 2h dans le meilleur des cas.

Une fois que tout est installé, il faut donc faire face à la nouvelle organisation. Si certains éléments sont les bienvenus, comme le fait de pouvoir plus aisément ajouter des informations à son projet, gérer les traductions, changer l’icone et le « splash screen », d’autres sont autrement plus complexes à intégrer.

En premier lieu les raccourcis clavier… Véritable arme de guerre de tout bon développeur (et de tout bon geek), ils permettent d’aller plus vite dans les tâches habituelles. Malheureusement Apple a eu l’idée saugrenue de changer une bonne partie de ceux-ci ! Quand on sait que bon nombre de développeurs ont travaillé pendant des années sur les anciens, on peut imaginer la déroute…

Ensuite, certaines choses sont vraiment peu évidentes et n’aident pas à la transition. Les nouveaux profils de compilation par exemple. Si ils sont automatiquement créés lors de la création d’un nouveau projet, la conversion d’un projet XCode 3 en XCode 4 perds ces informations, et, de base, il est impossible de compiler tel quel un projet qui tournait parfaitement ! Il faut passer par un nouveau menu de gestion de profils de compilation, peu explicite, pour ajouter de nouveaux modèles avant de pouvoir en profiter. De même, dans XCode 3, passer d’un profil de compilation de type « debug » vers un profil « adHoc » ou « Production » se faisait en deux clics, maintenant il faudra refaire tous ses profils avant de pouvoir faire le switch rapidement.

Et si tout ceci n’était pas suffisant, les bugs se multiplient. Nombreux sont les développeurs qui parlent de crash complet de XCode 4… Gênant… Surtout peu habituel de la part d’Apple qui fourni généralement des produits bien léchés.

J’ai moi même eu plusieurs soucis :

  1. Ajout d’un framework, alors que dans Xcode 3 un clic droit suffisait dans la liste des éléments du projets, là il faut aller dans un sous menu du paramétrage du projet. Mais pire, une fois ajouté, il ne se met pas dans le répertoire « Frameworks » comme les autres par défaut mais en racine. Pas de soucis on le déplace… Ha mais non ! Une fois déplacé (un lien logique pourtant !) le projet ne retrouve plus le framework… Youpi ! Alors que dans XCode 3 on pouvait positionner les éléments ou bon nous semblaient, ce qui fonctionne d’ailleurs toujours pour tout le reste (fichiers de code, fichiers NIB, images…).
  2. Autre cas pratique, je crée un nouveau projet iOS, de type « window based », universel. Il me crée bien tout les éléments par défaut, fichiers de code, NIBs… Sauf que tous les fichiers sont marqués en rouge. Impossible de faire une compilation ou autre, même si les fichiers existent bel et bien ! Le projet est inutilisable ! Je supprime tout (le répertoire complet), je refais EXACTEMENT les mêmes manipulations, ça marche sans soucis…  😕
  3. Encore un, dans une vue d’un projet j’ai besoin d’intégrer une carte Google Maps. J’ajoute les frameworks MapKit et CoreLocation. Puis j’instancie mon objet MKMapView dans ma classe. J’en profite pour conformer ma classe au MKMapViwDelegate. Dans ma vue j’ajoute un objet MKMapView, je le relie à mon objet (file’s owner) sur l’instance que je viens de déclarer et en delegate. Je compile, l’application se lance… Ecran gris…
    Je crée un nouveau projet, je refaire EXACTEMENT la même chose, tout marche, j’ai bien ma carte et ma localisation automatique…

Tout ceci est parfaitement inacceptable pour une utilisation professionnelle d’un tel outil en tout cas. Pourtant XCode 4 est plein de bonnes idées et à terme devrait être bien plus efficace. Je reste cependant avec une énorme question en tête : qu’est-ce qui a précipité Apple à déclarer cette version de XCode comme étant finalisée ? Il y a pourtant eu un gros programme de beta, privées comme public. Rien n’empêchait une sortie quelques semaines voire mois plus tard…

J’espère en tout cas qu’Apple va réagir rapidement et corriger ces défauts.

About Bruce