Transfert d'un projet de Swift 4.2 vers Swift 5.0

Bonjour, Habr! Je vous présente la traduction de l'article "Swift 5.0: Comment migrer votre projet et vos frameworks" d'Antoine Van Der Lee.

Swift 5.0 est sorti en mars 2019 et est la première version stable d'ABI Swift. Bien que de nombreuses ressources couvrent les nouvelles fonctionnalités de Swift 5.0, elles ne vous disent pas souvent ce que vous devez faire pour mettre à niveau votre projet vers Swift 5.0.

Dans cet article, je couvrirai les étapes que vous pouvez suivre pour mettre à niveau un projet existant vers Swift 5.0.

Vérifiez que votre projet a déjà été porté sur Swift 4.2.
Je ne serai pas surpris si cet article aide à convaincre votre chef de produit de planifier l'heure de la transition.

Migration automatique à l'aide de l'assistant migrant


Xcode suggère d'utiliser l'assistant de migration pour mettre à jour automatiquement votre code vers la syntaxe Swift actuelle. Cette conversion utilisera la dernière version de Swift, disponible avec la version installée de Xcode.

Xcode 10.2 est la première version à inclure Swift 5.0, vous devez donc utiliser cette version du logiciel.

Cette fonctionnalité fait souvent le travail difficile pour vous. Par conséquent, je recommande de démarrer le port de code en allant dans Edition -> Convertir -> Vers la syntaxe Swift actuelle ....

Conseil: veillez à ne le faire que pour votre projet et votre framework. Vous pouvez ignorer la conversion pour toutes les dépendances externes.



Mise à jour des dépendances


Très probablement, vous avez des dépendances Swift qui doivent être mises à jour. De nombreux grands projets open source, comme Alamofire et Moya, ont déjà commencé à fonctionner avec la version Swift 5.0.

Cependant, il est probable que toutes vos dépendances ne soient pas déjà mises à jour. Bien que j'aimerais vous exhorter à effectuer le transfert, puis à soumettre la demande d'extraction vous-même, vous devrez probablement attendre un peu jusqu'à ce que les propriétaires du projet le fassent eux-mêmes.

Si vous prévoyez d'effectuer un test intensif complet de votre application après ce transfert, il peut être utile de mettre également à jour directement vos dépendances. Votre test couvrira directement ces mises à jour, ce qui peut être une «double victoire».

Mise à jour sur l'environnement CI


Si vous utilisez Travis, Jenkins ou toute autre plate-forme CI, vous devez également mettre à jour Xcode.



Utilisation du résultat dans Swift


Xcode Converter n'effectue que des modifications de code de base. Il ne prend pas en compte le nouveau type de résultat , qui est désormais inclus dans la bibliothèque standard Swift. De nombreux frameworks ont inclus le type "Résultat" dans leur code. Cela peut signifier que vous disposez d'un grand nombre de données avec un type d'énumération qui n'est plus nécessaire. Cependant, ne vous précipitez pas pour les remplacer par des données de vos dépendances: vous dépendez des changements de code dans la structure externe.

Type d'erreur courant



Il est probable que votre type de «résultat» actuel ne définisse que le type du cas approprié.

Dans Swift 5.0, vous devez également déterminer le type d'erreur attendu. En tant que citoyen respectable, vous devriez essayer de concrétiser ce type d'erreur, en fonction de ce que vous attendez. Cependant, si vous souhaitez accélérer la migration, vous pouvez également simplement définir le type sur Swift.Error .

Conseil: Si vous souhaitez en savoir plus sur le nouveau type de résultat dans Swift 5.0, je vous recommande de lire cet article .

Nous prenons en compte la stabilité d'ABI


En fait, la stabilité ABI est un problème distinct. Vous pouvez en savoir plus à ce sujet sur le blog officiel de Swift.

Gardez à l'esprit que la taille de l' application que vous téléchargez diminuera , car les applications n'ont plus besoin d'intégrer la bibliothèque Swift standard!

Cela devrait convaincre votre produit de trouver le temps de transférer.
Si vous souhaitez plonger davantage dans Swift 5.0, vous pouvez passer à l' article de blog Apple Migrating to Swift 5.0.

Source: https://habr.com/ru/post/fr447098/


All Articles