Les nouvelles APIs de SnowLeopard (& les nouveautés des DevTools)
AliGator
Membre, Modérateur
Je n'ai pas encore eu la chance de passer à Snow Leopard, mais je vois déjà qu'il y a pas mal de nouveautés qui arrivent avec.
Du côté de l'utilisation en tant que programmeur, il y a bien sûr le nouveau Xcode, avec maintenant 4 compilateurs, dont LLVM-GCC mais aussi et surtout Clang d'intégré à 10.6.
Mais il y a aussi l'introduction des blocks (dont psychoh13 nous parlait déjà il y a qques temps et dont parle l'article de ArsTechnica aussi), et de GCD (hop), et sans doute donc des APIs qui vont avec (dispatch_async, dispatch_apply, ...) qui combinent ces 2 choses (GCD et les blocs)
Ce thread a pour but de discuter de ces nouvelles fonctionnalités et APIs et de faire part des découvertes de chacuns
Du côté de l'utilisation en tant que programmeur, il y a bien sûr le nouveau Xcode, avec maintenant 4 compilateurs, dont LLVM-GCC mais aussi et surtout Clang d'intégré à 10.6.
Mais il y a aussi l'introduction des blocks (dont psychoh13 nous parlait déjà il y a qques temps et dont parle l'article de ArsTechnica aussi), et de GCD (hop), et sans doute donc des APIs qui vont avec (dispatch_async, dispatch_apply, ...) qui combinent ces 2 choses (GCD et les blocs)
Ce thread a pour but de discuter de ces nouvelles fonctionnalités et APIs et de faire part des découvertes de chacuns
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Mais comme il faut impérativement Snow Leopard pour le faire fonctionner...
Je confirme à 200 %. C'étais juste une boutade pour dire à muqaddar qu'il ne pourra pas échapper au passage à SnowLeopard s'il veut utiliser xCode 3.2
Source
Génial en effet !!! :-)
il me semble avoir lu dans les release notes que iPhoneOS n'est plus supporté qu'à partir de la version 3.0. Si l'on fait une mise à jours (de Leopard vers Snow Leopard, et de XCode 3.1.3 vers 3.2 vers , savez vous s'il vire les anciens SDK où si la compilation de projets en 2.2.1 reste possible?
Par contre je crois qu'il n'est pas possible de publier sur l'appstore quand on compile en 2.2.1 avec XCode 3.2.
- Plus agréable à l'oeil (plus doux ?)
- Documentation entièrement refaite (un peu longue à s'afficher sur mon mac). J'ai juste mis 10 minutes pour trouver où charger la doc => dans les préférences maintenant.
- Affichage des erreurs et warnings plus simple : il ne décale plus la ligne en question dans le code, ça c cool !!! Il affiche l'erreur sur la droite de la ligne
- J'ai testé la fonction pour renommer un projet : ça marche à merveille, c'est vraiment bien !
- La fonction Analyze a l'air bien sympa également.
Pas encore testé le reste.
La nouvelle police de caractère utilisé pour le code est sympa je trouve (si vous avez vos propre profile de coloration syntaxique passé sur l'original pour test)
Bonjour,
Pour mon premier message dans ce forum , je vais parler d'une nouvelle fonction de NSString en lien avec les fameux bloc(k)s
Le code télécharge un fichier texte sur le net et effectue un traitement pour chaque ligne (avec un NSScanner pour récupérer ce qui m'intéresse).
L'ancien code:
Le nouveau code snowisé:
Le code est un peu plus compact mais surtout - et c'est une bonne surprise -plus rapide:je suis passé de 0.9 seconde de traitement (après téléchargement) à 0.7 secondes en utilisant l'énumération avec bloc(k) ce qui fait quand même 25% de mieux !
J'ai testé la police, je ne suis pas convaincu, un peu trop tassé.
Je reste fidèle à mon Monaco, et ce sans pression. Et en 11pt s'il vous plaà®t.
C'est clair que pour la doc, je ne suis pas convaincu, l'affichage rame vraiment chez moi
Voir la capture sur les variables d'instance.
J'ai deja achete Snow, mais je ne l'install pas pour le moment ...
http://bugreport.apple.com
Clairement, oui, rien que le support du compilateur LLVM Clang 1.0 et l'analyse syntaxique valent le coup.
En cours de chargement je ne peux pas encore essayer mais as tu donné sa chance à "Quick Help" justement ?
https://developer.apple.com/mac/library/documentation/DeveloperTools/Conceptual/XcodeWorkspace/200-Documentation_Access/documentation_access.html#//apple_ref/doc/uid/TP40006920-CH260
Je ne l'utilisais que rarement car il ralentissait trop (analysant à chaque frappe du clavier) la nouvelle mouture semble plus pratique.
Le gain pose question : il est plus facile d'optimiser le découpage par ligne d'un texte par les '\n' (enumerateLinesUsingCeQuonVeut) que le découpage général par une sous-chaà®ne de caractères (componentsSeparatedByString)
Dans un cas, il s'agit de repérer un caractère ascii, dans l'autre il y a toute une chaà®ne de caractères unicode ... Il faut donc au moins deux tests à la place d'un.
De plus avec enumerateLinesUsingCeQuonVeut, on n'est pas obligé de faire la découpe pour ensuite lister, mais on peut découper au fur et à mesure. L'algorithme n'est pas le même.
Bienvenu Manu17 !
Il y a toujours un temps d'adaptation. Je commence à apprécier, notamment pour un sujet donné on a l'ensemble des documents associés, alors qu'avant il fallait fouiller.
A noter l'option+click qui est enrichi :
Ou alors je ne sais pas m'en servir !
J'essaie de me connecter depuis hier et je tombe sur ça.
Il faut donc contacter Apple pour leur dire que le système de rapport de bug a un bug ! :brule:
Effectivement, c'est un bug !
il faut le signaler à Apple ... persévère :fouf): :fouf):
A noter que les panels du QuickHelp peuvent être conservés à l'écran, ce qui peut s'avérer très pratique.
[EDIT] avec le bémol, qu'un nouveau quickHelp ferme le précédent .. c'est ballot
Comme tu dis !
Au passage c''est Quick Help qui a récupéré option double clic et ses liens s'ouvrent plus vite. Mais ils ne concernent que la doc sur disque. Peut être que la doc "normale" va t-elle charger les liens qui pointent sur le web ?
Autre chose: il ne me complète plus mes variables une fois déclarées, même si j'enregistre le fichier avant de continuer ma saisie.
Et ça ça m'énerve beaucoup.
En fait j'ai l'impression que c'est à cause de mots clés qui dans un autre contexte peuvent avoir aussi un sens...
Par exemple si dans une de mes classes je met une [tt]@property NSString* name;[/tt], quand je l'utilise avec [tt]self.name[/tt] dans mon code ensuite, elle se colore en bleu/violet. Si je la nomme "name2" au lieu de "name", elle se colorera en vert/bleu canard comme les autres @property et variables d'instances.
---
Sinon je compte passer à Snow Leopard (surtout pour Xcode) en fin de semaine (et on va passer le pas au boulot aussi)... mais les petites trucs que vous décrivez, comme le option-clic sur un mot pour avoir la doc (dont je me sers vraiment tout le temps) qui ne marcherait plus avec les méthodes de delegate, ou l'autocomplétion qui ne marche plus tout le temps... c'est des trucs tout cons, mais super méga bloquants quand même pour la programmation de tous les jours !!
Et quand en plus, d'après ce qu'il me semble avoir lu qqpart, qu'il y a un pb dans 10.6 qui fait qu'on ne peut plus créer de réseau wifi Ad-Hoc (qqun peut confirmer ou infirmer ça ?) alors que je m'en sers tout le temps pour ma part (pour permettre à l'iPhone de dev de se connecter au Mac voire accéder au net à travers ça quand j'en ai besoin, ne pouvant pas pour des raisons techniques me connecter au réseau Wifi de la boite avec l'iPhone)... ben ça me pose des questions de savoir si je vais finalement passer le pas malgré tout...?
Vos avis ?
Pour la présentation de la doc, il y a du changement dans nos habitudes, mais moi j'aime bien.
Pour les problèmes de complétion syntaxique, j'ai également remarqué que ce problème se posait avec les versions précédentes, et que demander la complétion (option du menu ou raccourci clavier) donnait en général ce qu'il fallait.