Xcode 4.0 : qu'en pensez-vous ?

muqaddarmuqaddar Administrateur
mars 2011 modifié dans Xcode et Developer Tools #1
Xcode 4.0 est désormais disponible en Golden Master depuis cette nuit, après une série d'activations/désactivations de cette version.

La grande nouveauté de cette version est qu'on peut désormais envoyer des applications sur l'iOS AppStore et le Mac App Store.
«13456789

Réponses

  • CéroceCéroce Membre, Modérateur
    18:22 modifié #2
    Bon, on l'installe ou pas ?

    (Sachant que ça va encore me mettre le souk dans mes tests unitaires ?)
  • muqaddarmuqaddar Administrateur
    18:22 modifié #3
    Pour l'instant, ça télécharge...;)
  • LexxisLexxis Membre
    février 2011 modifié #4
    Génial ! mais 3,7 Go tout de même.

    EDIT: Déroutant aux premiers abord, mais le changement est bon. Adopté.
  • zoczoc Membre
    18:22 modifié #5
    Je conseille à  tous ceux qui ont des travaux en cours de rester sur leur version actuelle de XCode, à  moins qu'ils n'aient pas de deadlines serrées à  respecter  ;)


    XCode4 est très différents des versions précédentes sur de nombreux points, et il va obligatoirement falloir un temps d'adaptation pendant lequel votre productivité va fondre...

  • DrakenDraken Membre
    18:22 modifié #6
    Le code iPhone généré par ce nouvel Xcode est-il vraiment 30% à  40% plus rapide que l'ancienne version ? Ou est-ce une rumeur sans fondement ?

  • muqaddarmuqaddar Administrateur
    18:22 modifié #7
    dans 1296811361:

    Je conseille à  tous ceux qui ont des travaux en cours de rester sur leur version actuelle de XCode, à  moins qu'ils n'aient pas de deadlines serrées à  respecter  ;)


    Je l'ai testé 30 minutes la semaine dernière, et j'avoue avoir été dérouté. Cependant, l'interface est vraiment sympa, et je ne suis pas contre les fenêtres tout-en-un.
  • zoczoc Membre
    18:22 modifié #8
    dans 1296813758:

    Le code iPhone généré par ce nouvel Xcode est-il vraiment 30% à  40% plus rapide que l'ancienne version ? Ou est-ce une rumeur sans fondement ?



    Non, en fait, c'est surtout clang qui est 30 à  40% plus rapide que GCC, ce qui, par conséquent, diminue fortement les temps de compilation. Par contre un gain de perfs de 40% sur l'exécution du code compilé par clang je n'y crois pas (même si il y a eu des démonstration allant dans ce sens à  la dernière WWDC, mais, évidemment, sur des exemples de code bien choisis  ;) )...
  • chkdskschkdsks Membre
    18:22 modifié #9
    Est ce que vous pensez qu'Apple va enlever la gestion des universal binaries dans la version final d'Xcode 4 parce que je remarque de plus en plus qu'il y a des nouveautés dans le SDK de la 10.6 et que la 10.6 n'est que pour les intel...... ?
  • tabliertablier Membre
    18:22 modifié #10
      :)  Wait and see. Trop tôt pour moi!
  • muqaddarmuqaddar Administrateur
    18:22 modifié #11
    dans 1296811361:

    Je conseille à  tous ceux qui ont des travaux en cours de rester sur leur version actuelle de XCode, à  moins qu'ils n'aient pas de deadlines serrées à  respecter  ;)


    C'est moi ou il n'a pas remplacé le dossier Xcode4 de la preview mais m'a remplacé Xcode 3.2 ?
  • LexxisLexxis Membre
    18:22 modifié #12
    Installation sur /Developer par défaut il me semble.
  • muqaddarmuqaddar Administrateur
    18:22 modifié #13
    dans 1296837997:

    Installation sur /Developer par défaut il me semble.


    Et oui, ne trouvant pas où personnaliser, je n'en étais pas sûr.
    Bon, bein voilà  qui va me faire l'adopter plus rapidement (ça va, j'ai pas d'urgence client en ce moment).
  • FKDEVFKDEV Membre
    18:22 modifié #14
    L'intégration avec Git m'intéresse. En plus il y a un comparateur de fichier intégré.
  • LexxisLexxis Membre
    février 2011 modifié #15
    Pour l'instant que du bon... Mes projets compilent sans accro (sauf ceux pour MacOS 10.5 puisque le SDK n'est pas fournit avec). Je trouve cette version plus réactive que la version précédent. Le "tout en un" est un régal (opinion personnelle évidemment, mais le fait de ne pas avoir à  naviguer entre IB et Xcode et tout simplement génial). Presque aussi génial qu'un nouvelle version de l'OS... mais je m'emporte un peux peut-être...

    Par contre j'ai eu quelques plantages inexpliqués... mais bon

    EDIT: Diantre... Des tonnes de bonnes choses !
  • muqaddarmuqaddar Administrateur
    18:22 modifié #16
    Attention, c'est encore sous NDA hein...  8--)
    Donc évitez de parler des nouvelles fonctions, parce que y'en a à  la pelle... moi aussi il me tarde d'en parler !

    Sinon, j'ai compilé 2 projets iOS sans soucis à  part un linkage délicat avec CorePlot.
    Je ne suis pas à  l'aise avec la gestion des erreurs et warnings.

    Vivement qu'on puisse en parler parce que y'a tant à  dire !
  • LexxisLexxis Membre
    18:22 modifié #17
    dans 1296855845:

    Attention, c'est encore sous NDA hein...  8--)
    Donc évitez de parler des nouvelles fonctions, parce que y'en a à  la pelle... moi aussi il me tarde d'en parler !

    Sinon, j'ai compilé 2 projets iOS sans soucis à  part un linkage délicat avec CorePlot.
    Je ne suis pas à  l'aise avec la gestion des erreurs et warnings.

    Vivement qu'on puisse en parler parce que y'a tant à  dire !



    Quel noob je suis... j'ai rectifié le tir !
  • laudemalaudema Membre
    18:22 modifié #18
    dans 1296828892:


    Un gain de perfs de 40% sur l'exécution du code compilé par clang je n'y crois pas


    En tant qu'utilisateur de mon application je peux t'assurer que, pour ce que j'en fais, j'ai noté un gain substantiel depuis que j'ai compilé avec LLVM. Je l'avais pris pour sa gestion du debugg et je ne savais pas que j'allais gagner en vitesse. C'est au chargement de mon appli, quand elle lit 600 fichiers générés par une autre appli pour créer les données que je me suis aperçu que le temps d'attente avait fondu. Une fois les données chargées on ne voit plus la différence parce que les traitements sont petits.
    Donc, pour certains d'entre vous, utiliser clang devrait avoir un impact positif pour vos utilisateurs.. Il est loin le temps où les applis Mac se trainaient par rapport à  leurs équivalents PC :)
  • chkdskschkdsks Membre
    février 2011 modifié #19
    [Edit]J'ai édité parce que c'est encore sous NDA... bon c'est quand qu'ils le sortent !!!
  • muqaddarmuqaddar Administrateur
    18:22 modifié #20
    dans 1297162712:

    [Edit]J'ai édité parce que c'est encore sous NDA... bon c'est quand qu'ils le sortent !!!


    Sûrement à  la WWDC 2011...

    Je bosse avec depuis 4 jours :
    - Il crash pas mal mais on peut continuer à  bosser souvent en cliquant sur "Continue"
    - Plein de petites améliorations ajoutées ici ou là .
  • zoczoc Membre
    18:22 modifié #21
    dans 1297164216:

    dans 1297162712:

    [Edit]J'ai édité parce que c'est encore sous NDA... bon c'est quand qu'ils le sortent !!!


    Sûrement à  la WWDC 2011...

    Du coup je ne suis plus très sûr de ça... Parce que la WWDC c'est dans 4 ou 5 mois, et qu'Apple à  l'habitude de sortir des GM 2 à  3 semaines avant la version publique.


    Donc sur le coup moi je dirai d'ici quelques semaines ;)
  • muqaddarmuqaddar Administrateur
    18:22 modifié #22
    dans 1297169019:

    Donc sur le coup moi je dirai d'ici quelques semaines ;)


    Alors, ils ont intérêt à  améliorer sacrément la stabilité et rapidement parce que c'est son plus gros défaut.
  • zoczoc Membre
    18:22 modifié #23
    Sur les forums développeur Apple, ça râle beaucoup sur les instabilités et les fonctions disparues (par exemple, exit les plugins Interface Builder, donc exit BWToolkit...), et tout cela ne semble pas être la priorité d'Apple.


    Pour eux, la stabilité n'est pas un problème du moment que c'est utilisable (donc si ça plante de temps en temps c'est pas grave...).

  • muqaddarmuqaddar Administrateur
    18:22 modifié #24
    C'est vrai que la ratio nouveautés/disparitions est positif.

    Par contre, je me permets un aparté sur un warning :

    Quand on écrit ça :

    while (dict = [enumerator nextObject])
    


    Il nous met un warning et nous suggère un double égal si c'est une comparaison qu'on veut faire... Pourquoi pas.
    Et si on veut taire le warning, on doit faire ça :

    while ((dict = [enumerator nextObject]))
    


    Bon, je trouve ça un peu moche...
  • LexxisLexxis Membre
    février 2011 modifié #25
    Xcode ne doit pas aimer les affectations la où il doit y avoir un résultat booléen... J'ai aussi remarqué certains warning qui n'apparaissaient pas avant pourtant sur du code utilisé souvent...
    <br />while ((dict = [enumerator nextObject]) != nil) <br />
    

    ne provoque pas de warning...

    PS: Avez vous tenté de supprimer une ligne inséré par Xcode où se trouvent encore des placeholder ? chez moi c'est plantage direct....
  • AliGatorAliGator Membre, Modérateur
    18:22 modifié #26
    dans 1297179859:

    C'est vrai que la ratio nouveautés/disparitions est positif.

    Par contre, je me permets un aparté sur un warning :

    Quand on écrit ça :

    while (dict = [enumerator nextObject])
    


    Il nous met un warning et nous suggère un double égal si c'est une comparaison qu'on veut faire... Pourquoi pas.
    Et si on veut taire le warning, on doit faire ça :

    while ((dict = [enumerator nextObject]))
    

    Ah cool, enfin le retour de ce warning, que perso je trouve positif.
    Dans la plupart des compilateurs c'est un warning par défaut, et en fait il est plutôt logique. Ca te force à  coder proprement et t'évite de faire des erreurs involontaires.

    Moi perso j'écris toujours
    while (nil != (dict = [enumerator nextObject]))
    
    Au moins c'est clair.

    Après c'est qu'un warning, rien ne t'empêche de le désactiver dans les options de compilation.
  • muqaddarmuqaddar Administrateur
    18:22 modifié #27
    Ok, ok, merci pour les précisions sur ce point.

    Sinon, j'ai remarqué que j'ai parfois des erreurs et des warnings qui apparaissent dans le panneau de gauche, mais quand je clique dessus, il est incapable de les situer dans la page de code, hors ce ne sont pas des erreurs "générales" (type fichier qui manque ou autre) mais bien des erreurs de code pur et dur.

    C'est très gênant.
  • AliGatorAliGator Membre, Modérateur
    18:22 modifié #28
    dans 1297178478:

    Sur les forums développeur Apple, ça râle beaucoup sur les instabilités et les fonctions disparues (par exemple, exit les plugins Interface Builder, donc exit BWToolkit...), et tout cela ne semble pas être la priorité d'Apple.


    Pour eux, la stabilité n'est pas un problème du moment que c'est utilisable (donc si ça plante de temps en temps c'est pas grave...).
    Moi ce que j'aimerais (j'ai pas eu le temps de le tester pour savoir si c'était présent ou pas) :

    - Toujours avoir la possibilité d'affecter des actions à  mes breakpoints, car j'ai cru lire à  une époque que dans Xcode4 c'était plus possible, or moi j'utilise assez souvent l'action "jouer un son" sur certains de mes breakpoints. C'est à  dire qu'au lieu qu'un breakpoint donné que je place dans mon code fasse s'arrêter le débogueur, je demande pour ce breakpoint de jouer un son et de ne pas s'arrêter. C'est pratique pour tester des cas genre juste savoir si tu passes bien dans telle méthode de ton code, sans pour autant que ça interrompe ton code et donc ton test, surtout si tu testes des trucs où il faut enchaà®ner les clics et pas être interrompu tous les 4 matins. Donc si cette fonction là  a disparu je serais déçu

    - Avoir la possibilité de créer des "IBOutlet" (ou des IBProperty ou ils les appellent comme ils veulent, c'est vrai IBProperty c'est mieux) sur des variables ou propriétées de mon code autre que des objets du UIKit, et pouvoir ainsi exposer par exemple des NSString de mes objets dans IB pour les configurer directement de là .
    Ce qui permettrait d'éviter d'avoir à  rajouter plein de lignes de code dans viewDidLoad ou awakeFromNib juste pour configurer/personnaliser des cas.

    Ca serait en particulier très pratique pour des classes customisées qu'on peut créer et qu'on veut réutiliser dans divers projets. Imaginez par exemple ma classe OHGridView (cf mon GitHub) qui affiche des éléments sous forme de grille, ça pourrait être sympa de pouvoir configurer directement dans la palette de propriétés de IB le nombre de colonnes et de lignes.
    D'ailleurs c'est une fonction qui existe un peu dans le SDK MacOSX où l'on peut (pouvait ?) spécifier des valeurs pour des clés arbitraires (qui seront affectés au runtime par un "setValue:forKey:"), dans un des derniers onglets de la palette de propriétés de IB... Mais on n'a pas ça sous iPhone et je me demande même si ça a pas disparu depuis la dernière fois que j'ai fait du MacOSX SDK...

    Du coup dans le .h en plus des IBOutlet & co (et des IBOutletCollection, qui sont nouveaux et assez méconnus donc peu utilisés) on pourrait déclarer disons [tt]IBProperty NSInteger columnCount[/tt] et [tt]IBProperty BOOL alternateRowsColor[/tt] et hop IB afficherait alors dans sa palette dans une section dédiée une entrée "columnCount" avec un champ de saisie d'une valeur entière en face, et une entrée "alternateRowsColor" avec une case à  cocher en face.


    Bon, je rêve sans doute, pourtant ça serait tellement utile pour toutes les classes perso qu'on développe, et puis ça contournerait le souci des palettes IB (qui ont l'air un peu abandonnées et sont assez ch**ntes à  faire (on va pas en faire une à  chaque fois qu'on crée une classe réutilisable qd mm !), et je pense que je suis pas le seul à  qui ce genre d'ajout serait utile !
  • chkdskschkdsks Membre
    18:22 modifié #29
    J'aimerais bien qu'un jour Xcode indique dans la définition de la méthode si c'est une redéfinition... y a des IDE qui le font...
  • RocouRocou Membre
    18:22 modifié #30
    J'apprends qu'il ne sera plus possible de développer pour autre chose que Lion avec xCode4 B)
    Et bé, je vais rester avec la version 3 pour un bon moment  :D
  • muqaddarmuqaddar Administrateur
    18:22 modifié #31
    dans 1297241033:

    J'apprends qu'il ne sera plus possible de développer pour autre chose que Lion avec xCode4 B)
    Et bé, je vais rester avec la version 3 pour un bon moment  :D


    Moi j'ai lu que l'on ne pourrait plus compiler pour Mac OS X.5... Donc X.6 OK. Ce qui est bien différent... ;)
Connectez-vous ou Inscrivez-vous pour répondre.