Le développement mobile multiplateforme a mûri : on ne sacrifie plus la qualité à la portée. La question est de savoir quelle boîte à outils convient à votre produit et à votre équipe. Nous livrons des applications avec Flutter comme avec .NET MAUI, et le choix tient rarement à la seule technologie.
Flutter en un paragraphe
Flutter (Dart) dessine lui-même chaque pixel avec son propre moteur de rendu : votre application a le même aspect et le même comportement sur iOS, Android, web et desktop. Le hot reload rend l'itération sur l'interface étonnamment rapide, l'écosystème de widgets est vaste et les performances sont constamment fluides. C'est notre choix par défaut pour les applications grand public — les applications passager et chauffeur de notre plateforme VTC finlandaise sont en Flutter.
// Flutter — declarative UI, same pixels everywhere
class TripPage extends StatelessWidget {
const TripPage({super.key});
@override
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(title: const Text('Your trip')),
body: const TripSummary(),
);
}.NET MAUI en un paragraphe
.NET MAUI (C#) affiche des contrôles natifs sur chaque plateforme à partir d'un seul code et vit dans l'écosystème .NET : le même langage, les mêmes bibliothèques, le même conteneur d'injection et les mêmes outils de test que votre backend ASP.NET Core. Pour les organisations déjà investies dans .NET, il peut diviser la courbe d'apprentissage par deux, et Blazor Hybrid permet de réutiliser des composants web dans l'application.
// .NET MAUI — one C# codebase, native UI on every platform
public partial class TripPage : ContentPage
{
public TripPage(TripViewModel vm)
{
InitializeComponent();
BindingContext = vm; // MVVM with CommunityToolkit.Mvvm
}
}Face à face
| Critère | Flutter | .NET MAUI |
|---|---|---|
| Langage | Dart | C# |
| Approche UI | Rendu propre, identique au pixel | Contrôles natifs par plateforme |
| Hot reload | Excellent | Bon (XAML/C# hot reload) |
| Écosystème | Très vaste (pub.dev) | En croissance, solide pour l'entreprise |
| Synergie backend | N'importe lequel | Partage modèles et logique avec les API .NET |
| Idéal pour | Apps grand public, design sur mesure, interfaces cartographiques | Apps métier/entreprise, équipes .NET |
Quand nous choisissons Flutter
- Produits grand public où la marque et l'animation comptent (VTC, livraison, applications patient).
- Usage intensif des cartes, de la caméra et de gestes personnalisés.
- Équipes qui veulent un seul code d'interface pour le mobile et le web.
Quand nous choisissons .NET MAUI
- Applications d'entreprise internes : intervention terrain, inspections, scan d'entrepôt, outils commerciaux.
- Organisations disposant de développeurs .NET et de bibliothèques métier C# existantes.
- Applications qui doivent paraître strictement natives sur chaque plateforme avec un minimum de design sur mesure.
Des enjeux communs, quel que soit le choix
Quel que soit votre choix, les parties difficiles sont les mêmes : synchronisation hors ligne, notifications push, stockage sécurisé des jetons, rapports de plantage et un pipeline de publication qui signe, compile et livre automatiquement sur les deux stores. Nous les résolvons une fois par plateforme et réutilisons les packages entre projets.
Toujours indécis ? Un sprint de découverte de deux semaines avec un prototype cliquable dans chacun coûte moins cher qu'un mauvais choix.