L’outil de développement multiplateforme de Google, Flutter, n’a jamais eu pour vocation de se limiter aux seules plateformes mobiles. Il veut s’étendre aux PC sous Windows, Linux et macOS. Mais Google souhaiterait une étroite collaboration avec Microsoft, collaboration qui est loin d’être acquise d’avance…

Lancé en 2017, Flutter est un framework de développement multiplateforme s’appuyant sur le langage Dart. Comme React Nactive créé par Facebook, il découle d’une volonté de création d’applications natives pour les différentes plateformes mobiles s’appuyant sur un même et seul code source. L’application adopte un look natif qu’elle tourne sous Android, iOS, ChromeOS, Web voire Fuchsia OS (le futur prochain OS de Google).

Même si les premières versions du framework ne fonctionnaient que sur mobile, Google a toujours anticipé un usage totalement multiplateforme et a donc progressivement étendu Flutter à la création d’applications pour le Bureau des ordinateurs que ce soit celui de Windows, de Linux ou de macOS.

Windows réunifié… Le Project Reunion de Microsoft

Dans un billet de blog, Google rappelle que l’univers Windows propose deux univers différents : Win32 et UWP. Trouver l’approche idéale est un débat compliqué auquel tout développeur Windows est confronté. Une situation à laquelle Microsoft compte mettre fin à l’avenir avec son « Project Reunion » justement conçu pour permettre aux développeurs de ne plus avoir à choisir entre l’un et l’autre.

Et pour trancher sur les bonnes options à suivre, Google invite aujourd’hui ouvertement Microsoft à rejoindre le projet Flutter et aspire à une étroite collaboration avec l’éditeur de Windows.

« Flutter a vocation à cibler une grande variété d’appareils, y compris iOS, Android, Windows, Linux, macOS, et le Web à partir d’un code source unique, avec une compilation native et des interfaces visuellement très attrayantes », écrit Tim Sneath, Product Manager Flutter chez Google.

Création app mobile et Web sous Flutter

Il explique que « quelle que soit la plateforme, Flutter est embarqué à l’intérieur d’un petit container hôte (appelé « embedder ») à la manière de certains moteurs de jeux vidéo comme Unity ». Cet « embedder » est spécifique à chaque plateforme fournissant la couche de gestion des événements et coordonnant les liaisons avec le système d’exploitation sous-jacent pour l’accès au rendu, à la saisie ou aux services d’accessibilité.

« Windows offre deux approches distinctes pour créer cet embedder, explique Tim Sneath.

Soit le mature modèle de programmation Win32 qui une compatibilité descendante maximale aux plateformes telles que Windows 7 et construit un fichier EXE standard adopté par la plupart des développeurs.

Une app Flutter en mode Desktop

Soit le modèle d’application moderne UWP, approche recommandée pour Windows 10 qui permettrait également d’envisager la prise en charge par Flutter d’appareils tels que Xbox ou le prochain système d’exploitation Windows 10X.

Avec l’extension de la gamme Surface à Windows et Android (NDLR : via le smartphone double écran Surface Duo) nous pensons que Flutter offre à Microsoft une plateforme performante pour construire de nouvelles expériences natives couvrant tout leur portfolio d’appareils ».

Des qualités qui ne parlent pas qu’à Microsoft. Il est évident qu’aujourd’hui, les entreprises cherchent à développer leurs applications métiers à la fois pour leurs PC sous Windows et pour leurs équipements ultra-nomades iOS ou Android sans pour autant avoir à gérer des équipes de développement différentes pour chaque plateforme et des codes sources différents.

Plusieurs solutions s’offrent à elles : passer par les outils Microsoft et Xamarin, adopter les PWA (Progressive Web Apps) s’appuyant sur des technologies WEB, ou adopter des frameworks cross-plateformes comme Electron, React Native ou, justement, Flutter.

Projet .NET 6 et MAUI

Microsoft n’a pas encore régi à l’invitation de Google. Pour l’éditeur, une montée en puissance de Flutter sous Windows entre en concurrence avec les différents projets internes comme Project Reunion, mais surtout la solution open source .NET 6 et son extension MAUI attendue en 2021. Par ailleurs, Microsoft cherche plutôt ces derniers temps à pousser PWA auprès des entreprises avec un support désormais très complet de cette technologie sous Windows 10.

D’un autre côté, Microsoft n’a encore jamais ouvertement fermé la porte à Flutter. Au contraire. Lors de la dernière conférence Build, même si la plupart des démos « cross-plateformes » étaient réalisées sous Xamarin-Forms ou sous React Native, certaines l’ont aussi été sous Flutter.

Un support officiel de Flutter par Microsoft permettrait bien sûr d’éclaircir la situation, de rassurer les développeurs quant à la qualité du support de Flutter au cœur de Windows mais permettrait surtout aux entreprises de s’engager avec assurance sur cette technologie. Ces dernières auraient alors trois approches universelles à disposition : utiliser .NET 6 et MAUI si leurs équipes sont très orientées développement Windows et .NET, utiliser PWA (voire React Native) si leurs équipes dev sont plutôt orientées Web ou utiliser Flutter si les équipes ont davantage un savoir mobile…

Une affaire à suivre….