Rechercher dans le blog

Testez le nouvel SDK d'ArcGIS pour Flutter pour vos applications natives !

Les ArcGIS Maps SDKs for Native Apps vous permettent de créer des applications cartographiques natives supportées par plusieurs plateformes (tablettes, smartphones, ordinateurs) et pouvant tirer parti des capacités des périphériques à destination desquelles elles sont développées.
Parmi les nombreuses plateformes de développement disponibles, Flutter est actuellement extrêmement populaire, d'une part pour sa capacité à gérer le multiplateforme avec un unique code source, et d'autre part pour ses nombreux outils et fonctionnalités permettant d'améliorer la productivité des développeurs.
Afin de pouvoir permettre l'accès à cette plateforme aux développeurs faisant appel à ArcGIS pour intégrer des capacités géospatiales à leurs applications, Esri a développé un nouvel SDK venant enrichir sa gamme de SDKs pour applications natives : l'ArcGIS Maps SDK for Flutter.
La version bêta de ce SDK pour Flutter est désormais disponible en bêta sur le site Early Adpoter d'Esri, alors n'hésitez pas à aller le tester. Dans la suite de cet article, je vous propose de voir ensemble en quoi la prise en charge de cette nouvelle plateforme de développement va pouvoir vous supporter dans la création de vos prochaines applications cartographiques.

Qu'est-ce que Flutter?

Flutter est une technologie open source créée par Google, qui gagne rapidement en popularité pour le développement d'applications mobiles multiplateformes grâce à de ses nombreuses fonctionnalités améliorant la productivité des développeurs, à sa forte communauté et à son cycle de développement rapide. Il utilise le langage de programmation Dart, un langage de programmation moderne et concis, et propose une approche de développement basée sur des widgets personnalisables. Flutter permet aux développeurs de construire des interfaces utilisateur riches et réactives avec un seul code source, sans avoir à réécrire le code pour chaque plateforme. Cela en fait un outil populaire pour le développement d'applications mobiles et multiplateformes.
Pour en savoir plus, je vous renvoie vers cet article où nous nous sommes penchés plus en détail sur les raisons ayant poussé Esri à se lancer dans le développement d'un SDK pour Flutter.

La bêta du SDK ArcGIS pour Flutter

Le SDK Flutter combine les avantages et les fonctionnalités de Flutter avec les capacités géospatiales et la prise en compte de la localisation des SDKs ArcGIS pour applications natives. Si vous êtes déjà familier avec la famille des SDK natifs, vous vous sentirez tout de suite à l'aise avec les fonctions de cette première bêta du SDK Flutter, telles que la cartographie, le géocodage, le routage et le hors ligne.
En tant que bêta, le SDK verra ses fonctionnalités ajoutées progressivement. Cette première version bêta se concentre sur la visualisation de cartes 2D en ligne et hors ligne, le géocodage et le routage, ainsi que sur les flux de travail d'édition de données. Esri ajoutera des fonctionnalités à chaque nouvelle version jusqu'à atteindre le même niveau que les autres SDK natifs.
Notez que pour l'instant, les plateformes prises en charge par le SDK sont les plateformes mobiles sous iOS et Android. 
Vous pouvez consulter le site Early Adopter pour plus d'informations.
Pour vous donner une vue d'ensemble des fonctionnalités de la version bêta du SDK Flutter, Esri a mis à votre disposition un repo d'échantillons du ArcGIS Maps SDK for Flutter sur GitHub. Le repo est régulièrement mis à jour avec de nouveaux échantillons.
Ce repo contient des exemples de code qui démontrent les capacités du SDK Flutter et comment les utiliser dans votre propre application. Vous trouverez ici comment travailler avec les workflows typiques des SDK natifs dans votre application Flutter, avec des exemples comprenant les fonctionnalités suivantes : couches, rendus, symbologie, cartes et vues de cartes (mapview), géocodage, routage, géométrie, identification, travail hors ligne, requêtes, localisation, authentification, paquetages de cartes mobiles, etc.
Le repo propose également une application de visualisation des échantillons qui peut être exécutée sur un émulateur ou un appareil iOS ou Android, afin que les développeurs puissent facilement visualiser les échantillons en un seul endroit. Les échantillons peuvent également être exécutés individuellement.
Une fois que vous avez téléchargé la version bêta du SDK Flutter Maps sur le site Early Adopter et que vous avez suivi les instructions de démarrage, vous êtes prêt à créer votre première application Flutter Maps SDK. N'oubliez pas qu'avec Flutter, vous pouvez créer votre application à partir d'une seule base de code et l'exécuter sur des émulateurs ou des appareils iOS et Android.
Une fois que vous aurez commencé à développer, n'hésitez pas à partager vos feedbacks avec Esri via le forum dédié accessible sur le site du Early Adopter. Ces retours d'expérience sont très précieux car ils permettent d'orienter le développement pour mieux correspondre à vos attente et de corriger de potentiels bugs.

Les notions fondamentales du développement avec Flutter

Parlons maintenant des concepts clé du développement avec Flutter, de comment ils peuvent améliorer votre productivité et de comment les utiliser en synergie avec les capacités du système ArcGIS.

Widgets Flutter

L'un des concepts fondamentaux de Flutter est que l'interface utilisateur (UI) est construite avec des widgets Flutter. Les widgets sont les blocs de construction de l'UI de votre application, définissant à la fois la mise en page et les éléments interactifs, ainsi que la gestion de l'état. 
Lors de la création d'une application avec l'un des SDK natifs d'ArcGIS, la vue cartographique (map view) agit comme l'interface utilisateur qui affiche les couches et les graphiques de la carte. Dans la version bêta du SDK Flutter, la classe ArcGISMapView elle-même est également un widget, ce qui vous permet de contrôler totalement l'emplacement de votre carte dans votre application. Par exemple, vous pouvez l'envelopper dans un widget Flutter Stack et superposer des contrôles d'interface utilisateur, ou vous pouvez l'envelopper dans un widget Flutter Expanded pour remplir l'espace restant dans l'écran de votre application.
Vous pouvez également facilement remanier les widgets dans l'IDE que vous avez choisi pour Flutter en enveloppant les widgets existants dans de nouveaux widgets ou en les supprimant en fonction des exigences de conception de l'application. L'arbre des widgets de Flutter permet de comprendre facilement l'architecture de la conception de votre application.

Hot Reload

La fonctionnalité Stateful Hot Reload, appelée Hot Reload, fait partie des raisons de la popularité de Flutter. Celle-ci permet la mise à jour en direct de la présentation de l'interface utilisateur sur vos appareils ou émulateurs sans avoir à recompiler. Elle fonctionne en injectant du code mis à jour dans la machine virtuelle (VM) Dart, et lorsque la VM est mise à jour, Flutter reconstruit l'arborescence des widgets, ce qui vous permet de visualiser facilement et rapidement les modifications apportées à la conception de votre application.
Nous en avions parlé dans l'article de débrief de la plénière du Dev Summit, où la fonctionnalité avait été présentée en démonstration. 
Un autre exemple de Hot Reload est illustré ci-dessous. Il s'agit d'un prototypage rapide d'un changement de conception de l'application par la mise à jour du style d'un thème violet à un thème blanc et bleu (dans ce cas, en utilisant l'échantillon Set Basemap).

Et si Flutter n'est pas pour moi ?

Prérogatives de votre DSI, besoins spécifiques pour un périphérique, projet déjà engagé sur une autre technologie, préférences personnelles... Les promesses offertes par le SDK pour Flutter ont beau être très excitantes, plusieurs raison font que celui-ci puisse ne pas coller totalement à vos besoin de développement. Sachez qu'ArcGIS dispose d'une gamme complète pour le développement d'applications natives, parmi laquelle vous pourriez trouver une technologie plus adaptée pour répondre à vos attentes. N'hésitez pas à consulter la documentation de ces SDKs pour en apprendre plus :

Aucun commentaire:

Enregistrer un commentaire