Catégories
Développement Application Mobile (FR) Featured-Post-Application-FR

SwiftUI : gain de productivité ou fausse bonne idée pour vos applications iOS ?

Auteur n°17 – Lucas

Par Lucas Schmid
Lectures: 13

SwiftUI suscite un véritable engouement chez les équipes iOS en promettant un développement plus rapide et une maintenance simplifiée grâce à une interface déclarative. Pourtant, son adoption ne saurait être systématique : au-delà des gains de productivité, il convient de mesurer ses limites dans des contextes exigeants, qu’il s’agisse de logiques d’affichage complexes ou d’interopérabilité poussée avec UIKit. Cet article propose un cadre décisionnel pour évaluer SwiftUI au regard de vos objectifs métiers et techniques, en s’appuyant sur des retours d’expérience suisses. L’approche mise en avant ne plaide ni pour un basculement aveugle, ni pour un rejet pur et simple, mais pour une stratégie nuancée et alignée sur la maturité de vos projets.

Promesses réelles de SwiftUI pour les équipes produits et tech

SwiftUI accélère le prototypage et réduit le volume de code nécessaire pour générer des interfaces cohérentes. SwiftUI facilite la maintenance en limitant les couches de synchronisation entre logique et affichage.

Réduction du temps de développement

SwiftUI propose une approche déclarative qui transforme chaque composant visuel en un simple fragment de code. Les développeurs gagnent en rapidité car ils voient instantanément le rendu de chaque modification dans Xcode.

Ce mécanisme allège la boucle code–test–itération, évitant de jongler entre storyboard et code. La création de vues courantes, formulaires ou listes dynamiques, se résume à quelques lignes.

La syntaxe concise de SwiftUI limite le risque d’erreurs de liaison entre code et interface. Les états partagés sont gérés via des propriétés annotées, ce qui simplifie le suivi des interactions.

Au global, SwiftUI offre un boost de productivité pour les équipes maîtrisant déjà Swift, particulièrement lors de la phase de prototypage rapide.

Maintenance et évolutivité facilitées

La nature modulaire des vues SwiftUI facilite les mises à jour futures. Chaque composant peut être testé et refactoré indépendamment, sans impacter le reste de l’application.

Le code explicitement lié à l’interface limite les effets de bord. Les modifications d’un composant n’enclenchent pas de cascade de corrections dans un fichier storyboard ou un contrôleur trop complexe.

Cette transparence réduit la dette technique, car l’état de chaque vue est visible et documenté dans le code, sans documentation externe.

Les évolutions ultérieures s’intègrent naturellement dans la hiérarchie des vues, ce qui garantit une maintenance plus prévisible.

Synergie UI/UX et prototypage

SwiftUI encourage les designers à travailler en étroite collaboration avec les développeurs. Les maquettes évoluent plus vite car chaque nouvelle interaction se code et se teste sur la même plateforme.

L’utilisation d’aperçus (« Previews ») dans Xcode offre une visualisation en temps réel, ce qui rassure les équipes métiers sur la fidélité du rendu.

Cette convergence réduit les aller-retour entre design et développement, et permet d’aligner rapidement les exigences UX sur les choix techniques.

Les retours utilisateur obtenus lors d’itérations rapides renforcent la pertinence des maquettes validées en conditions réelles.

Exemple de cas d’usage bénéfique de SwiftUI :

Une PME suisse du secteur de la logistique a lancé un module interne de gestion de tournées en SwiftUI. Les équipes ont réduit de 30 % le temps de prototypage des écrans et ont mis en place des mises à jour bihebdomadaires, là où la version précédente sous UIKit nécessitait huit semaines pour chaque itération majeure.

Limites concrètes en production pour les projets complexes

SwiftUI montre ses faiblesses dès que la navigation devient multi-niveaux ou que les animations se complexifient. SwiftUI reste jeune et les API évoluent rapidement, ce qui peut générer des régressions et des incompatibilités.

Navigation complexe et architecture

Les transitions entre vues profondes (multi-stack, tabs imbriqués) nécessitent des contournements pour maintenir une navigation fluide. Les gestionnaires de chemin d’accès (« NavigationPath ») sont encore en maturation.

Le suivi de l’historique de navigation peut devenir laborieux à implémenter sans introduire de code additionnel, annulant une partie des gains initiaux.

Dans les architectures modulaires, garantir la cohérence des routes à travers plusieurs modules externes expose parfois à des plantages non anticipés.

Pour des applications d’envergure, l’ajout de librairies tierces ou de flux personnalisés augmente la complexité du maintien des mises à jour de SwiftUI.

Animations et interactions front-end avancées

Les animations complexes, telles que les transformations 3D ou les gestes multitouch élaborés, restent plus simples avec UIKit. SwiftUI propose des animations basiques, mais peine sur les cas d’usage hautement personnalisés.

Les limitations des modificateurs graphiques imposent parfois le recours à du code UIKit via « UIViewRepresentable », ce qui complexifie la base de code.

Pour des interfaces riches – glisser-déposer, interactions avec des frameworks AR ou Vision – la surcharge des wrappers SwiftUI crée un surcoût de performance.

Les optimisations graphiques fines, nécessaires sur des devices plus anciens, restent plus accessibles dans l’API traditionnelle.

Intégration et interopérabilité fine

L’interfaçage avec des composants existants en Objective-C ou des SDK tiers exige d’encapsuler du UIViewController, puis de gérer manuellement les cycles de vie.

Les ponts entre SwiftUI et UIKit sont source d’incohérences lorsqu’il faut synchroniser états et données partagées à travers plusieurs couches.

Les tests unitaires sur des vues SwiftUI demandent une configuration avancée, car la capture de rendu doit se faire hors UI thread.

Dans un contexte d’applications critiques (finance, santé), cette surcharge de tests et de validation peut ralentir les déploiements.

Edana : partenaire digital stratégique en Suisse

Nous accompagnons les moyennes et grandes entreprises dans leur transformation digitale

Approche stratégique pour des projets hybrides

Combiner SwiftUI et UIKit permet de tirer parti des deux univers sans sacrifier la stabilité ni la richesse fonctionnelle. Définir des frontières claires entre les blocs SwiftUI et UIKit garantit un cycle de vie maîtrisé.

Partition fonctionnelle entre SwiftUI et UIKit

Il est recommandé d’isoler les écrans purement UI dans SwiftUI (listes, formulaires) et de conserver UIKit pour les vues critiques nécessitant un contrôle postopératoire fin.

Cette séparation par domaine réduit les dépendances croisées et facilite le passage à SwiftUI étape par étape, sans refonte totale.

Les fonctionnalités legacy ou fortement personnalisées restent sous UIKit, ce qui limite le risque de régression sur le cœur d’usage.

Le découpage modulaire évite un effet « Big Bang » et répartit l’effort de migration sur plusieurs sprints.

Gestion des cycles de vie et coordination

Chaque module SwiftUI peut être intégré dans un container UIKit via « UIHostingController », facilitant la gestion des lifecycle events.

Un coordinateur dédié peut gérer la communication entre vues déclaratives et contrôleurs de navigation, garantissant la cohérence des routes.

Cette approche évite les imbrications excessives tout en offrant une passerelle naturelle pour l’adoption graduelle de SwiftUI.

Les mises à jour de SwiftUI et UIKit s’appliquent indépendamment, réduisant le coût de maintenance.

Bonnes pratiques et stratégie modulable

Adopter un pattern MVVM standardise les interactions entre vues SwiftUI et la couche métier, tout en encapsulant la logique UIKit là où SwiftUI montre ses limites.

L’utilisation d’un service unique pour l’état global assure une synchronisation sans friction entre les deux frameworks.

La priorisation des écrans à migrer s’appuie sur leur criticité métier et leur fréquence d’évolution.

La roadmap de migration reste contextuelle, modulable et ajustée régulièrement par des bilans de performance et de feedback utilisateur.

Cas d’usage où SwiftUI brille vraiment

SwiftUI excelle pour le prototypage rapide, la création de widgets et les composants isolés. Dans ces domaines, il offre un gain de temps significatif sans compromis sur la qualité.

Composants isolés et librairies internes

Créer des modules UI réutilisables pour un design system est particulièrement simple avec SwiftUI. Chaque composant se développe et se teste en isolation.

Les équipes peuvent extraire ces composants dans un package Swift indépendant et les partager entre plusieurs applications en interne.

Cette approche garantit la cohérence visuelle et accélère la délivrance de nouvelles fonctionnalités conformes aux guidelines.

Les dépendances sont limitées, ce qui facilite la mise à jour de librairies internes sans réécrire de code UIKit.

Prototypage rapide et proof of concept

Pour valider rapidement des parcours utilisateurs, SwiftUI permet de livrer un prototype interactif en quelques jours, voire heures.

La réactivité du preview interactif dans Xcode facilite les démonstrations auprès des métiers et des parties prenantes.

Les retours utilisateurs obtenus en amont permettent d’ajuster l’expérience avant d’engager un développement plus lourd.

Cela limite le risque de défauts fonctionnels et d’écarts par rapport aux attentes initiales.

Widgets et extensions iOS

La création de widgets statiques ou dynamiques s’appuie naturellement sur SwiftUI. Les cycles de rafraîchissement et de configuration sont gérés par le framework.

Le temps de développement d’un widget diminue significativement grâce à l’API dédiée, qui pilote le rendu et la mise à jour des données.

Les interactions limitées des widgets correspondent parfaitement au modèle déclaratif de SwiftUI.

Chez Edana, plusieurs de nos clients ont ainsi enrichi leur application principale de widgets métiers sans impacter le cycle de développement général.

Exemple de widget développé avec SwiftUI dans le secteur bancaire :

Un établissement bancaire suisse a rapidement développé un widget de suivi de portefeuille en SwiftUI. En deux semaines, l’équipe a livré une version testable, intégrant des mises à jour de données en temps réel et conformes aux standards de sécurité internes.

Choisir la bonne voie pour vos projets iOS

SwiftUI offre des atouts indéniables pour accélérer le prototypage, améliorer la maintenabilité des composants et créer des widgets légers. Ses limites apparaissent sur la gestion de la navigation complexe, les animations personnalisées et l’intégration fine avec des SDK existants. Une stratégie hybride, équilibrée et modulable, permet de bénéficier du meilleur des deux mondes tout en maîtrisant la dette technique et les risques.

Selon la maturité de votre projet, optez pour SwiftUI sur les écrans nouveaux ou faiblement contraints, et conservez UIKit pour les parcours critiques. Définissez des modules clairement délimités, adoptez MVVM et un coordinateur de navigation pour orchestrer l’ensemble.

Que vous envisagiez une bascule progressive ou que vous souhaitiez évaluer la pertinence de SwiftUI pour un cas spécifique, chez Edana, nos experts sont à votre disposition pour co-construire une feuille de route contextualisée, évolutive et sécurisée.

Parler de vos enjeux avec un expert Edana

Par Lucas

Développeur Mobile

PUBLIÉ PAR

Lucas Schmid

Avatar de Lucas Schmid

Lucas Schmid est développeur mobile senior. Il conçoit des applications iOS, Android et web performantes, intuitives et parfaitement intégrées à vos écosystèmes digitaux. Expert en ingénierie et UX mobile, performance et scalabilité, il transforme vos idées en expériences utilisateurs fluides et engageantes en mobilisant les technologies mobiles modernes les plus appropriées.

CAS CLIENTS RÉCENTS

Nous concevons des applications mobiles pour transformer les opérations ou conquérir de nouveaux marchés

Avec plus de 15 ans d’expertise, notre équipe conçoit des applications innovantes sur mesure. Elles sont pensées pour optimiser les opérations, réduire les coûts, conquérir de nouveaux marchés et offrir une expérience client enrichie.

CONTACTEZ-NOUS

Ils nous font confiance pour leur transformation digitale

Parlons de vous

Décrivez-nous votre projet et l’un de nos experts vous re-contactera.

ABONNEZ-VOUS

Ne manquez pas les
conseils de nos stratèges

Recevez nos insights, les dernières stratégies digitales et les best practices en matière de transformation digitale, innovation, technologie et cybersécurité.

Transformons vos défis en opportunités.

Basée à Genève, l’agence Edana conçoit des solutions digitales sur-mesure pour entreprises et organisations en quête de compétitivité.

Nous combinons stratégie, conseil et excellence technologique pour transformer vos processus métier, votre expérience client et vos performances.

Discutons de vos enjeux stratégiques:

022 596 73 70

Agence Digitale Edana sur LinkedInAgence Digitale Edana sur InstagramAgence Digitale Edana sur Facebook