Flutter ou Swift : lequel choisir pour votre application ?
Choisir entre Flutter et Swift, c'est choisir entre un seul code pour deux plateformes et la meilleure application possible sur une plateforme. Les deux sont matures. Le bon choix dépend de l'endroit où se trouvent vos utilisateurs, des fonctions de l'appareil dont vous avez besoin et de qui maintiendra l'application.
La version courte
- Swift avec SwiftUI crée des applications natives iOS, iPadOS, macOS et watchOS avec un accès direct à chaque framework Apple.
- Flutter crée des applications iOS et Android, et éventuellement web et bureau, à partir d'un seul code Dart avec son propre moteur de rendu.
Performances
Pour la plupart des applications métier, les utilisateurs ne verront pas de différence. Flutter compile en code machine natif et dessine ses propres widgets : le défilement et les animations sont fluides sur les téléphones récents. Les applications Swift utilisent les frameworks d'interface d'Apple, ce qui donne le comportement le plus natif pour la saisie de texte, l'accessibilité et les gestes système. Les graphismes lourds, le traitement audio ou les applications qui tournent longtemps en arrière-plan penchent vers le code natif.
Accès aux fonctions de la plateforme
C'est là que Swift a l'avantage le plus net. Les nouvelles API d'Apple sont disponibles en Swift dès le premier jour. Des fonctions comme le filtrage d'appels CallKit, les VPN NetworkExtension, les widgets, Live Activities et App Intents sont d'abord natives. Dans notre propre application Synaptes, nous utilisons CallKit, StoreKit 2 et NetworkExtension : c'est pourquoi elle est écrite en Swift.
Flutter accède aux fonctions natives via des extensions ou des canaux de plateforme. Les besoins courants comme la caméra, la localisation, les notifications push et les achats intégrés ont des extensions bien maintenues. Les API moins courantes exigent de toute façon d'écrire du code natif.
Coût de développement
Si vous avez besoin d'iOS et d'Android, Flutter fait généralement économiser le plus : une équipe, un code, un seul ensemble de fonctions à tester. Avec Swift, Android demande une application séparée en Kotlin ou un outil comme Skip, qui compile le code SwiftUI en application Android.
Si vous n'avez besoin que d'iOS, par exemple parce que votre marché est surtout composé d'utilisateurs d'iPhone, Swift seul est souvent la voie la moins chère, car il n'y a pas de couche multiplateforme à contourner.
Apparence et sensation
Flutter dessine lui-même chaque pixel. Un design de marque sur mesure est ainsi identique sur les deux plateformes, mais les contrôles iOS standard sont des imitations qui peuvent sembler légèrement différentes. SwiftUI utilise les vrais contrôles système : l'application actualise donc son apparence automatiquement à chaque version d'iOS.
Maintenance
Une application Flutter dépend du SDK Flutter et de ses extensions. Quand iOS ou Android changent, vous attendez les mainteneurs d'extensions ou vous corrigez vous-même. Une application Swift dépend des mises à jour annuelles du SDK d'Apple, bien documentées mais qui demandent parfois des modifications de code. Dans les deux cas, prévoyez un peu de temps de maintenance chaque année.
Recruter des développeurs
Les deux ont de grandes communautés de développeurs. Les développeurs Flutter couvrent deux plateformes ; les développeurs iOS apportent une connaissance plus approfondie des plateformes Apple. Si votre équipe écrit déjà du Swift pour un autre produit, rester sur Swift garde les connaissances au même endroit.
Et React Native ?
React Native est l'autre grande option multiplateforme et convient aux équipes qui écrivent déjà du React pour le web. Il utilise les contrôles natifs de la plateforme via une couche de pont JavaScript. Nous développons surtout avec Flutter et Swift, nous comparons donc les deux que nous utilisons tous les jours.
Liste de décision
- Avez-vous besoin d'Android au lancement, ou cela peut-il attendre ?
- L'application dépend-elle de fonctions propres à Apple comme CallKit, les widgets ou HealthKit ?
- Un design de marque sur mesure compte-t-il plus que les contrôles système natifs ?
- Qui maintiendra l'application dans deux ans, et quel langage connaît cette personne ?
Plutôt oui à la première et à la troisième : Flutter. Oui à la deuxième : Swift. Nous expliquons notre recommandation dans chaque estimation. Voir développeur Flutter, développeur iOS ou écrivez à info@safindra.com.
Demander une estimation
Décrivez votre projet en quelques phrases. Nous répondons par e-mail avec des questions ou une première estimation en USD.
info@safindra.com