avril 29, 2024

BreaGeek News

Obtenez toutes les dernières nouvelles et rapports sur la FRANCE ici. Manchettes, politique et culture françaises sur une chaîne d'information

Passer à SwiftUI dans Airbnb

Passer à SwiftUI dans Airbnb

En 2022, l’équipe iOS de Airbnb a décidé que SwiftUI était suffisamment mature pour l’adopter dans son application officielle. Cela nécessite une transition précise, explique Brian Budail, ingénieur de l’équipe Airbnb.

Les principaux avantages que les ingénieurs d’Airbnb ont constatés dans SwiftUI étaient sa flexibilité, sa composabilité, sa nature déclarative, sa brièveté et ses conventions, qui, espéraient-ils, amélioreraient l’expérience du développeur sans perdre l’expérience utilisateur.

Pour rendre la transition aussi fluide que possible, ils ont créé un plan en trois étapes. Dans la première phase, ils se concentreront sur la construction d’un ensemble de composants réutilisables en fonction de leur présence. Système de conception. Dans la deuxième phase, ils construiront des écrans complets combinant des composants de base. Dans la troisième et dernière phase, les affichages seront regroupés en fonctionnalités complètes.

Avant de commencer les deux premières phases, les ingénieurs d’Airbnb ont mené un petit projet pilote parmi des ingénieurs qui se sont portés volontaires pour essayer SwiftUI afin de recueillir des commentaires et d’améliorer leur infrastructure dès le début.

Comme mentionné précédemment, la première étape consistait à reconstruire le système de conception existant avec SwiftUI sur la base d’une série de protocoles de style qui peuvent être instanciés et transmis aux vues à l’aide de modificateurs de vue. Cela a fourni les bases permettant aux développeurs de personnaliser facilement les composants de l’interface utilisateur avec seulement quelques lignes de code.

La deuxième étape majeure consistait à créer une infrastructure permettant une liaison bidirectionnelle entre les offres Epoxy basées sur UIKit et les offres SwiftUI. Des détails sur la façon dont ce pont a été construit peuvent être trouvés dans l’article original. Qu’il suffise de dire ici que ce pont a été construit UIHostingViewController Pour inclure la hiérarchie SwiftUI dans le contrôleur de vue et UIViewRepresentable Pour intégrer la vue UIKit dans la hiérarchie SwiftUI.

READ  Comment obtenir Moonveil Katana

Une autre décision clé prise par les ingénieurs d’Airbnb a été d’adapter et d’adopter le flux de données unidirectionnel d’Epoxy vers SwiftUI. ObservableOject Comme base pour leurs classes d’état pour déclencher le nouveau rendu SwiftUI pour chaque changement d’état.

Nous avons constaté que les ingénieurs préfèrent continuer à créer des écrans dans SwiftUI en utilisant cette approche, car elle permet de séparer la mutation métier et la logique d’état de la logique de présentation.

La testabilité figurait également en bonne place sur la liste des priorités d’Airbnb. Le nouveau SwiftUI devrait bien correspondre à leurs applications Test de capture d’écran Approchant. Pour rendre cela possible, ils ont attribué un nom à chaque variable de vue qu’ils ont identifiée, à utiliser avec leur service de test d’instantanés et ont fait correspondre toutes les variables de vue à Xcode. Protocole PreviewProvider Pour activer l’utilisation des aperçus Xcode. De plus, ils ont été combinés VoirInspecteur Afin de soutenir Modèle comportemental les examens. ViewInspector permet de parcourir la hiérarchie des vues au moment de l’exécution et de fournir un accès direct au sous-jacent View Structures, rendant leur état interne inspectable et permettant de simuler l’interaction de l’utilisateur par programme.

Cela dit, explique Bodayle, les ingénieurs d’Airbnb ont pu réduire le nombre de lignes de code à environ un sixième par rapport à l’implémentation d’UIKit, sans subir de perte de performances significative liée à la nature réactive de SwiftUI, autre qu’une légère surcharge. lors de l’instanciation d’une instance. UIHostingController.

L’adoption de SwiftUI par Airbnb va bien plus loin que ce qui peut être résumé ici, alors ne manquez pas l’article original pour plus de détails et quelques extraits de code utiles.

READ  De nouveaux alliés arrivent sur Xbox