Développement : Apple publie les versions finales de Swift 3.0 et Xcode 8

Développement : Apple publie les versions finales de Swift 3.0 et Xcode 8

Attention à la compatibilité

Avatar de l'auteur
Vincent Hermann

Publié dans

Logiciel

15/09/2016 4 minutes
13

Développement : Apple publie les versions finales de Swift 3.0 et Xcode 8

Apple a publié la version 8.0 de son environnement de développement intégré Xcode. Swift 3.0, la nouvelle mouture du langage, est également fournie, mais peut être récupérée séparément si besoin. Il s’agit de la première révision importante depuis que le langage est devenu open source.

Maintenant que trois des quatre plateformes logicielles d’Apple ont été renouvelées (iOS 10, tvOS 10 et watchOS 3.0), l’éditeur déboule avec les nouvelles versions majeures de son langage de programmation Swift et de Xcode. Pour le premier, c’est l’occasion pour Apple de montrer les premiers résultats tangibles du passage à l’open source. La firme était d’ailleurs intervenue cet été sur le sujet, affichant sa satisfaction, malgré un petit retard.

Swift 3.0 casse la compatibilité avec la branche 2.X

Swift 3.0 n’est pas « source compatible ». Comprendre que la compilation d’un projet basé sur Swift 1.X ou 2.X ne fonctionnera pas. La raison tient à des changements profonds dans le nommage des API de la Standard Library, ainsi que dans la manière dont les API Objective-C sont importées dans Swift, particulièrement celles qui touchent l’ancien Cocoa. Apple fournit un guide de migration pour les développeurs, mais précise que Xcode 8.0 intègre un outil de migration du code, pour s’occuper de la majeure partie des opérations.

Les projets écrits en Swift 3.0 devront prendre en compte de nombreux changements, parmi lesquels la suppression des boucles « for » de type C ou encore celle des opérations « ++ » et « -- ». L’un des plus gros ajouts est cependant le Swift Package Manager qui va permettre, comme son nom l’indique, de créer et gérer la distribution du code sous forme de paquets.

Une nouvelle base, sans regarder en arrière

Comme évoqué en août, les principaux objectifs de Swift 3.0 sont la stabilisation de l’ABI (interface binaire) ainsi que de la Standard Library. Dans les grandes lignes, l’idée était de proposer une nouvelle base en abandonnant certains héritages jugés peu adaptés à la direction envisagée pour le langage, à savoir la voie royale pour développer sur les quatre plateformes d’Apple (iOS, macOS, tvOS et watchOS).

On reste donc sur un langage surtout conçu pour les besoins d’Apple, mais qui peut être exploité sur des plateformes concurrentes (merci l’open source). Mais si sous Windows on ne trouve que des portages non officiels, Apple propose bien dans son annonce des versions tout à fait authentiques de Swift pour Ubuntu, mais seulement pour les versions 14.04 et 15.10. Ceux qui veulent la longue liste des changements introduits par Swift 3.0 peuvent se rendre sur cette page.

Xcode 8.0 extensible et plus rapide

Parallèlement, Apple propose aux développeurs sous macOS de récupérer Xcode 8.0. C’est une mouture importante, pour deux raisons principalement. D’une part, Apple promet un bond significatif dans les performances, surtout dans l’Interface Builder. La conception de l’interface doit être beaucoup plus réactive et permet, selon Apple, de toujours avoir sous les yeux ce que l’utilisateur verra (au pixel près).

D’autre part, un système d’extension, exactement comme sur un navigateur. On peut donc enrichir Xcode avec des modules qui vont ajouter des fonctionnalités. On en trouve déjà un certain nombre, beaucoup s’orientant sur les actions à effectuer sur le code, pour le rendre plus lisible, plus propre et ainsi de suite. Par exemple, Alignment aligne les éléments de code pour rendre la lecture plus immédiate, Duplicate Line permet de copier un tronçon de code en reprenant son formatage, Xcode Way permet de se rendre depuis l’IDE dans différents dossiers souvent utilisés, et Strimmer se débarrasse des espaces vides inutiles.

Des rapports d'erreurs sur les fuites de mémoire

Xcode 8.0 ajoute également plusieurs améliorations, notamment dans la gestion des signatures pour les applications, dont il peut se charger automatiquement ou avec des paramètres définis par l’utilisateur. Les rapports d’erreurs et les alertes sont également plus nombreux, particulièrement sur les fuites de mémoire et les soucis d’alignement lors de la conception des interfaces. Par ailleurs, San Francisco Mono devient la police par défaut.

Écrit par Vincent Hermann

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

Swift 3.0 casse la compatibilité avec la branche 2.X

Une nouvelle base, sans regarder en arrière

Xcode 8.0 extensible et plus rapide

Des rapports d'erreurs sur les fuites de mémoire

Fermer

Commentaires (13)


Pour utiliser (peu régulièrement et à petit niveau) Visual Studio, Eclipse et XCode, ce dernier reste celui que je préfère. C’est donc sympa de le voir amélioré. La signature automatique est plutôt un bonheur aussi bien que de gros progrès avaient déjà été faits avant. Je me souviens que signer une application il y a 56 ans était un cauchemar.



Par contre, n’ayant pas eu le temps une seule seconde de regarder swift, c’est quoi cette histoire de suppression de boucles for ? C’est remplacé par quelque chose d’autre ?








t-la a écrit :



[…]



Par contre, n’ayant pas eu le temps une seule seconde de regarder swift, c’est quoi cette histoire de suppression de boucles for ? C’est remplacé par quelque chose d’autre ?





Bein oui, par for-in :



for i in 0..<10 {

  print(i)

 }









t-la a écrit :



Par contre, n’ayant pas eu le temps une seule seconde de regarder swift, c’est quoi cette histoire de suppression de boucles for ? C’est remplacé par quelque chose d’autre ?





Swift 2 permet d’utiliser une boucle for du type :



for var i = 0; i < list.count; i++ {

  …

}



Cette syntaxe est abandonnée, la seule boucle for qui reste sera la “foreach” du type :



for listItem in list {

  …

}



Bien sûr, il y a des cas autre que le parcours d’une liste/d’un tableau, dans ce cas tu as des alternatives :http://bjmiller.me/post/137624096422/on-c-style-for-loops-removed-from-swift-3



Au final, le système de for du Swift se rapproche de celui de Python en fait.



En gros si je ne dis pas de bêtises, la suppression des boucles for c’est uniquement celle de type C-like, la boucle Swift-like est conservé. Elle à été supprimé car syntaxiquement, elle ressemble trop aux langage dérivées du C, et pas a la syntaxe Swift.


OK, merci pour les réponses, je n’avais pas compris que c’était effectivement le for “C-like” qui sautait.


c’est drôle de voir swift bouger, ils suivent un peu l’approche de Go (une seule manière de faire quelque chose) en opposition à C/C++ (n manières de faire la même chose). Les deux ont des avantages








Elooam a écrit :



En gros si je ne dis pas de bêtises, la suppression des boucles for c’est uniquement celle de type C-like, 





Comme je le dis dans l’actu en fait&nbsp;<img data-src=" />



Je n’avais pas compris à ma première lecture de l’article, c’est en allant consulté la doc de Swift, dans ma compréhension très approximative de l’anglais que j’ai pigé le truc.



<img data-src=" />


et zéro news concernant la sortie d’angular 2 ^^

je le dis et redis depuis je crois 45 ans… nextinpact ne produit pas assez de contenu pour les développeurs :( &nbsp;c’est mon impression tout du moins.

&nbsp;


&nbsp;Angular 2, faut tout re-apprendre <img data-src=" />








Vincent_H a écrit :



Comme je le dis dans l’actu en fait <img data-src=" />







Ben en fait, je n’avais pas compris non plus. C’est écrit “la suppression des boucles « for » et de type C”



Le “et” porte à confusion et laisse penser que deux trucs sont supprimés.



Le “et” est en trop <img data-src=" />








Vincent_H a écrit :



Le “et” est en trop <img data-src=" />







J’avais hésité à le signaler