Rechercher dans le blog

Un an de nouveautés de développement dans ArcGIS : Plénière de l'European Developer Summit 2023

L'European Developer Summit 2023 d'Esri a eu lieu du 14 au 17 Novembre. La conférence a débuté le mardi matin avec l'habituelle session plénière. Celle-ci a notamment été l'occasion de revenir sur un an de nouveautés dans ArcGIS, vues par des développeurs. De l'automatisation et l'extension du système à la création d'applications webs, natives ou immersives, toutes les facettes du développement dans ArcGIS ont été évoquées et illustrées par de nombreuses démonstrations. Dans cet article, je vous propose un débrief complet de cette plénière, où nous allons faire ensemble un tour d'horizon des capacités de développement d'ArcGIS, et des nouveautés saillantes y ayant été introduites tout au long de l'année 2023.

Partie 1 - Développer des applications avec ArcGIS

ArcGIS Platform met à votre disposition de nombreux services de localisation, que vous pouvez consommer dans vos applications pour les enrichir avec de nombreuses capacités d'intelligence géographique.
 
C'est évidemment l'enrichissement des services proposés par ArcGIS Platform qui a été mise au centre de cette section de la plénière (nous en avions parlé plus en détail dans cet article). 
Avec le nouveau service Places, vous avez accès à une large collection de points d'intérêts (POIs) que votre application peut consommer, afin que l'utilisateur puisse requêter des informations sur l'environnement qui l'entoure. Qu'il s'agisse de monuments, de commerces, d'éléments naturels, de services publics, etc., votre application pourra accéder à des données réparties en plus de 1000 catégories hiérarchisées.
Le second service introduit est le service de style de fonds de carte en v2. Lors de la démonstration, nous avons pu voir en action la possibilité de traduire les étiquettes des fonds de carte, ainsi qu'une nouvelle capacité en bêta : Worldview. Cette fonctionnalité permet d'adapter les frontières des pays aux endroits où celles-ci peuvent être remises en question pour diverses considérations géographiques et géopolitiques. La démonstration s'est concentrée sur l'exemple de la frontière entre le Maroc et le Sahara Occidental, qu'il est possible de retirer grâce à ce paramètre.
A gauche : carte par défaut ; à droite : utilisation du paramètre worldview avec la valeur "morocco"
Esri a également eu l'occasion d'évoquer les améliorations apportées aux services déjà existants. 
Le service de géocodage a été enrichi par nombreux nouveaux contributeurs, avec désormais presque 100 contributeurs actifs, ce donne accès de plus nombreux jeux de données nationaux et régionaux pour alimenter le service. 
Le service d'itinéraires a vu ses performances augmentées de 50%. En commençant par les services asynchrones, nous notons que le paramètre usage_cost, permettant de connaître les crédits nécessaires à l'analyse, est supporté par tous les services. L'ajout du paramètre locate_settings permet de spécifier comment les inputs sont localisés. Sur les services synchrones maintenant, le paramètres usage_cost est également supporté par tous les services ; locate_settings peut aussi être utilisé, sauf pour Location-allocation.
Enfin, le service de géo-enrichissement s'est vu renforcé par de nouvelles données pour les US, l'Inde, le Japon, et le continent africain. La fonction de recherche de l'API est améliorée par la recherche des chaînes de caractères sémantiquement semblables.
L'ArcGIS Maps SDK for JavaScript permet de créer des applications web tirant parti des puissantes capacités géographiques offertes par ArcGIS. Si vous le connaissiez sous le nom d'ArcGIS API for JavaScript, c'est depuis la fin de l'année 2022 que la version 4.x de l'API a officiellement été renommée ArcGIS Maps SDK for JavaScript, laissant l'exclusivité de l'ancien nom à la version 3.x. Pour l'API, cette année a justement été particulièrement marquée par l'annonce du retrait de cette version 3.x, prévu pour le 1er juillet 2024
Désormais mature et capable de prendre en charge la lourde mission d'hériter de l'API 3, l'API 4 a quant à elle continué à évoluer à son rythme de croisière de 3 mises à jour par an. Au cours de l'année, nous avons pu voir de nombreuses nouveautés concernant sa partie 3D, que ce soit une amélioration des performances et des rendus dans chaque nouvelle version, mais aussi des nouveaux fonds de carte 3D et un renforcement de plusieurs capacités d'édition. Un grand travail a également été mené sur la classe Popup : un meilleur affichage des graphiques, une refonte de leur design mais surtout la capacité d'y afficher les enregistrements associés depuis la version 4.26, qui a permis ensuite en 4.27 et 4.28 d'intégrer les capacités d'édition des enregistrements associés. Bien sûr, les nouveautés sont encore plus nombreuses : analyses raster, nouveaux widgets, support de nouveau services, et une fin d'année plus qu'excitante avec l'introduction des Composants Maps SDK. Je vais m'arrêter ici pour cet article, mais je vous propose de retrouver en détail chacune des nouveautés dans les articles consacrés aux sorties de la 4.26, la 4.27 et la 4.28.

Lors de la plénière, Esri a souhaité insister sur 3 capacités de cette API, illustrées par 3 démonstrations :
 
La première démonstration sur le SDK pour JavaScript nous a montré comment il était possible d'intégrer très rapidement une carte web issue d'un portail ArcGIS au sein d'une application JavaScript, en tirant parti de la classe webMap.  
const webmap = new WebMap({
  portalItem: { 
    id: "f8e9ca3d667742ad91c349d365764cf7"
  }
});
Il vous suffit de récupérer l'identifiant de la carte web, très facilement accessible dans l'url de l'élément.
Cela permet de charger non seulement la carte web (incluant les couches et le fond de carte), mais aussi les modifications que vous auriez pu y importer : la symbologie des couches, les fenêtres contextuelles, ou encore des expressions Arcade personnalisées (sur lesquelles nous reviendrons plus tard dans cet article).
Au détour de cette même démonstration, nous avons également pu apercevoir Calcite, le Design System d'Esri, dont les composants venaient enrichir l'interface de l'application intégrant la carte web, et dont l'accès en version de production est disponible depuis le début de cette année 2023.
 
Une deuxième démonstration a mis en avant les capacités d'édition de l'API, aussi bien en 2D qu'en 3D, en proposant une application de planification de plantation de végétation arborée en tirant parti de la capacité d'édition des enregistrements associés. Cette capacité introduite dans version 4.27 de juin dans le widget Editor, concernait dans un premier temps les relations entités à tables. La mise à jour en 4.28 en octobre a étendue celle-ci aux relations entités à entités. En plus de pouvoir positionner des éléments et en modifier la table attributaire, l'application était aussi capable de valider ou d'invalider des implantation d'arbres selon des règles d'empiètement établies avec Arcade.
Enfin, la dernière démonstration se concentrait sur l'imagerie orientée. C'est l'une des nouveautés majeures de la 4.28, via la prise en charge d'un nouveau type de couche : les couches d'imagerie orientées. Au delà de l'API JavaScript, cette nouveauté s'est répandue dans le reste du système ArcGIS avec les sorties d'Octobre et Novembre d'ArcGIS Pro 3.2, ArcGIS Online et ArcGIS Enterprise 11.2.
Pour clôturer cette partie, cela n'a évidemment pas évoqué lors de la plénière, mais nous avons largement parlé de l'API JavaScript côté CodeTheMap, avec notamment cette série de tutoriels qui nous a accompagnés tous l'été, et que je vous incite largement à découvrir si vous souhaitez vous initier au développement web cartographique.

Les SDKs d'ArcGIS pour les applications natives

Depuis la fin de l'année 2022, les SDKs pour applications natives ont connu une actualité particulièrement riche, avec la sortie d'une nouvelle génération : la 200.x. Les SDKs Qt, Java et .NET ont fait l'objet d'une mise à niveau d'envergure pour supporter les frameworks les plus récents : Qt 6, JAVA FX et .NET MAUI. En avril, les SDKs Kotlin et Swift sont sortis en version de production pour compléter la gamme 200.x, venant remplacer les SDKs connus sous le nom de "for iOS" et "for Android" dans la 100.x. Ainsi, cette nouvelle génération de SDKs pour applications natives continue d'offrir les mêmes fonctionnalités et les mêmes modèles d'utilisation que la 100.x, tout en s'adaptant aux derniers outils de développements du marché proposés par Apple, Google, Microsoft, Qt et Java, pour rendre vos application natives encore plus puissantes. Cette nouvelle génération se voit également dotée d'un nouveau nom, l'ArcGIS Maps SDK for Native Apps, là où la version 100.x était connue sous le nom d'ArcGIS Runtime SDK.

Comme pour le SDK JavaScript, le SDK pour apps natives se voit évoluer au rythme de trois mises à jour par an, en hiver, au printemps et à l'été. Celles-ci ont intégré des capacités de cartographie 2D et 3D, comme par exemple la prise en charge des bâtiments OSM 3D, le filtrage des entités dans les couches de scène, ou encore la possibilité d'agréger les entités ponctuelles, disponible depuis la dernière mise à jour en 200.2, et qui a été l'objet d'une démonstration lors de cette plénière. 
Cette année, les équipes de développement des SDKs pour applications native se sont également largement concentrées sur l'intégration du temps réel. Les entités dynamiques introduites en 200.1 permettent d'intégrer des données de flux temps réel, et depuis la version 200.2 il est même possible de passer par des flux personnalisés.
Encore une fois, je vous invite à (re)découvrir les articles consacrés aux sorties 200.0, 200.1 et 200.2 pour retrouver en détail chacune des nouveautés ayant jalonné cette année.
Les SDKs pour moteurs de jeu sont relativement récents dans l'écosystème, avec une sortie en version de production à l'été 2022. Sous la forme de plugins disponibles pour Unity et pour Unreal Engine, ils permettent d'intégrer des données issues du SIG dans des applications immersives, avec un rendu graphique de très haute qualité tirant parti des capacités de gestions de la physique, de l'éclairage, de particules et de textures des moteurs de jeux. Avec un calendrier de sortie calqué sur celui des apps natives, ces SDKs ont donc eu droit à trois mises à jour dans l'année.
Parmi toutes les nouveautés, celle qui a été mise à l'honneur est la prise en charge des couches de scènes de bâtiments depuis la version 1.2. Cela permet d'intégrer des données issues du BIM dans leur contexte géographique, et d'en faire des rendus très réalistes.
Pour des informations plus précises sur les autres nouveautés de ces deux SDKs pendant l'année, vous pouvez retrouver les articles concernant les sorties des versions 1.1, 1.2 et 1.3 sur ce blog.

ArcGIS et le développement Open Source

Nous en parlons plus rarement, mais ArcGIS possède un fort lien avec le monde de l'Open Source. Ce lien existe à travers trois axes :
  • L'utilisation de l'Open Source au sein des technologies Esri, qui se basent par exemple sur React, Angular JS, D3, Three .js, Apache, SQLite. 
  • L'intégration des services Esri au sein d'APIs cartographiques web Open Source tierces. Les services de localisation d'ArcGIS supportent ainsi depuis quelques temps Leaflet, OpenLayers et MapLibre. L'année 2023 a marqué l'ajout d'une nouvelle API à cette liste : Cesium, dont le support est effectif depuis mai.
  • La contribution à l'Open Source, via des APIs OS propres à ArcGIS comme Esri Leaflet et ArcGIS REST JS, mais aussi à de la contribution à TypeScript, PostgreSQL... ou encore la promotion et la participation à des événements tels que l'Hacktoberfest.

Développer sans coder : le low code / no code avec les générateurs d'applications

Pour clôturer cette première partie, il est important de rappeler que le développement dans ArcGIS peut également passer par des solutions en low-code / no-code via une gamme de générateurs d'applications adaptés à différents types de besoins.
Ces générateurs d'application ont eux aussi connu une actualité assez forte, avec l'annonce du retrait d'ArcGIS Web AppBuilder, coïncidant avec le retrait de l'API JavaScript 3 sur laquelle il était basé. Son remplaçant tout désigné, ArcGIS Experience Builder, a fait l'objet d'une démonstration intégrant le nouveau widget Autour de moi, dans le cadre de la recherche d'hôtels et de restaurants dans Berlin. Experience Builder n'est cependant pas la seule alternative à Web AppBuilder, et l'une des autres solutions à envisager sont les ArcGIS Instant Apps, très adaptées à un développement rapide répondant à des besoin très ciblés. Le modèle Atlas, nouvellement introduit dans les Instant Apps et permettant de créer des collections de carte et de couches, a justement été au cœur d'une démonstration.

Partie 2 - Automatiser et étendre le système ArcGIS

Cette deuxième partie s'adresse aux clients ArcGIS, qui souhaitent pouvoir automatiser leurs flux de travail dans le système, ou encore étendre les capacités des différents produits comme ArcGIS Pro ou ArcGIS Enterprise.
Arcade est un langage d'expression léger qui permet de créer du contenu personnalisé dans les applications ArcGIS. Il est capable d'effectuer des calculs mathématiques, de formater du texte ou encore d'évaluer des des affirmations logiques.
 
Au cours de cette plénière, Arcade a eu droit à un traitement assez particulier avec une très longue démonstration le mettant en valeur. 
Dans un premier temps, ses capacités d'étiquetage ont été mises en avant dans le MapViewer. Arcade permet en effet de pousser beaucoup plus loin les labels de vos couches, en concaténant des champs, en les testant ou en faisant des calculs sur ces derniers, afin de pouvoir afficher des informations très complètes pour annoter vos cartes.  
C'est ensuite son utilité lors de l'édition qui a été démontrée. J'en parlais un peu plus tôt dans cet article, Arcade peut être utilisé pour valider ou invalider des actions d'éditions, avec par exemple dans la démonstration une alerte lors d'un risque d'empiètement de la végétation dans une application d'éditions de données de terrain réalisée avec ArcGIS FieldMaps.
Enfin, sa forte valeur ajoutée pour la visualisation des données a été illustrée par la personnalisation des fenêtres contextuelles dans lesquelles il devient possible de modifier toute la mise en page, d'ajouter des graphiques avancés, et du contenu très personnalisé en fonction des entités interrogées.
L'une des plus grandes forces d'Arcade est son intégration transparente au sein du système ArcGIS. Ainsi, une règle définie dans ArcGIS Pro se retrouvera et fonctionnera aussi bien avec l'API JavaScript, dans les applications natives, dans le portail web via le MapViewer ou de différentes applications, etc... C'est justement sur ce point que la démonstration s'est achevée.

Selon le contexte et le besoin pour lequel vous utilisez Arcade, les expressions sont définies par des profils qui régissent la manière dont elles sont évaluées et interprétées. L’aide en ligne d’Arcade s’est récemment enrichie de pages décrivant tous les profils disponibles, que je vous invite à aller consulter pour découvrir la richesse applicative de ce langage.
Dans le monde de l'automatisation, Python est certainement le langage roi. ArcGIS intègre deux bibliothèques Python : ArcPy, permettant d'automatiser le travail du SIG Desktop et Serveur (ArcGIS Pro, ArcMap, ArcGIS Server) en donnant accès aux outils de géotraitement et de cartographie, et l'ArcGIS API for Python, qui automatise le SIG Web (portail ArcGIS Online ou Enterprise) avec des capacités d'administration de l'organisation et de ses contenus, ainsi que d'analyse spatiale et de data science. 
 
Durant l'année, l'API Python d'ArcGIS a eu droit a deux mises à jour majeures : la 2.1.0 de janvier et la 2.2.0 d'octobre. Parmi les nouveautés aussi bien d'administration, de gestion de contenu, de capacités cartographiques, etc., que je vous invite à retrouver dans les articles de ce blog, celle qui a le plus retenu mon attention est la prise en charge d'Experience Builder via la classe WebExperience. Bien que pour l'instant encore sommaire, cette classe permet l'automatisation de la création d'expériences. A terme, cela permettra de terminer un processus de traitement et d'analyse par la création d'expériences uniformes d'une exécution à l'autre du script, ou encore de mettre à jour les données d'une expérience avec les données nouvellement traitées.
 
Au cours de la plénière, l'API Python a été illustrée par un ArcGIS Notebook (environnement d'exécution directement connecté à votre SIG et disponible dans ArcGIS Pro et ArcGIS Online nativement et via un role server dans ArcGIS Enterprise) appuyant sur ses capacités d'administration d'un portail. La démonstration a montré comment via quelques lignes de code un administrateur SIG peut facilement, via le module GIS de l'API, accéder à et mettre à jour très facilement des informations sur les utilisateurs, leur niveau de licence, leur contenu, la consommation de crédits de l'organisation, et automatiser l'envoi d'alertes. Afin de faciliter l'administration, Python permet très facilement de créer divers graphiques sur ces différents éléments, que la démonstratrice a compilés dans un tableau de bord.

Conclusion de l'année

L'année 2023 est une année marquée par des changements et des annonces importantes concernant le développement dans le système ArcGIS. En tête de liste des événements marquants de l'année se trouve bien sûr l'annonce du retrait de l'API JavaScript 3.x, entraînant de fait le retrait du concepteur d'applications Web AppBuilder. Leurs successeurs annoncés, l'API JavaScript 4.x et Experience Builder, atteingnent désormais une certaine parité fonctionnelle tout en introduisant de nombreuses nouvelles fonctionnalités, rendues possibles par l'emploi de technologies plus récentes et plus performantes. Pour les utilisateurs, cette annonce induit des migrations d'applications à redévelopper sur ces nouvelles technologies, donnant lieu à la fois à des opportunités d'intégrer de nouvelles capacités et de bénéficier de performances retravaillées, mais demandant aussi du temps et de l'investissement pour s'adapter à cette rupture technologique.
Les applications natives ont elles aussi connu un grand bon en avant technologique, avec l'arrivée de la nouvelle génération, elle aussi basée sur les dernières technologies disponibles. Enfin, cette année a été l'occasion d'observer la première année des deux derniers SDKs du système destinés à Unity et Unreal Engine, et les voir s'enrichir des nombreuses capacités d'ArcGIS au fur et à mesure des mises à jour.
Côté extension du système, Arcade continue sa croissance importante en nombre de fonctions disponibles. Aujourd'hui, il est très intéressant pour les utilisateurs d'ArcGIS d'utiliser ce langage afin de pouvoir personnaliser les interactions avec les données SIG dans tout le système. 

Évidemment, l'année 2024 risque d'être tout aussi intéressante, et je continue à vous donner rendez-vous sur ce blog où l'on continuera à observer l'actualité développeurs du système ArcGIS.

Aucun commentaire:

Enregistrer un commentaire