At the 18th annual Esri Developer Summit (DevSummit), held March 7–10 in Palm Springs, California, the message was clear: With the latest advanced capabilities that have been added to ArcGIS, developers can save time, keystrokes, and mouse clicks while creating location-based solutions for myriad uses.
Developers continually engage with Esri, providing product teams with critical feedback that helps make these technological advances possible.
“You provide us [with] feedback on our products,” Esri product manager for developer technology David Cardella told the 3,130 people who attended DevSummit in person and virtually. “You push our technology to the limit, and you challenge us to do better.”
This symbiotic relationship between the developer community and Esri has helped galvanize ArcGIS product teams to make strides in game engine development, solving issues of scalability and resilience, turning ArcGIS into a comprehensive spatial analytics system, and much more.
Powerful GIS Capabilities Available on the Web
“The one area we focus on is really helping you bring the meaning out of your data in a beautiful way,” said Julie Powell, Esri’s principal product manager for web development technologies.
An improved web editing experience in the SDK helps ensure data integrity while increasing productivity. Esri software developer Jonathan Uihlein showed the audience an app that a 3-1-1 call center operator could use to process a report concerning a downed streetlamp. The simple, form-based app makes the workflow straightforward—from finding the location of the incident to adding dynamically generated details to the report. And most of the app was built with components from Calcite Design System, a collection of design and development resources for creating easy-to-use, cohesive experiences across apps.
“[Developers] can really build some powerful information products…which hopefully leads to better understanding and then better decision-making,” said Powell.
New SDKs Enhance the Native App Developer Experience
Building native apps for desktop, mobile, and embedded environments gives developers access to all the capabilities on the devices that they’re developing for, including the camera; GPS; and the gyroscope sensor, which tracks a device’s rotation.
Esri provides five API technologies to aid with native app development, and two of the newest ones—ArcGIS Maps SDK for Swift, for developing apps on the iOS platform, and ArcGIS Maps SDK for Kotlin, for creating Android apps—simplify the developer experience for those who build apps on these platforms.
In a demonstration for the Plenary Session audience, Esri product engineer Jennifer Merritt showed how to use Swift Maps SDK to easily add elements to an app and preview the updates. With a few clicks and keystrokes, Merritt included a map in an app that, previously, only displayed text. A preview pane allowed her to not only see what the app would look like but also pan and zoom within the map.
She then explored features of the new Swift API by adding reverse geocoding and a current-location display to the app. Using the open-source toolkit that’s part of Swift Maps SDK, Merritt also added a few more elements to the app: a basemap gallery, a search view, and a custom floating panel that shows feature information in a pop-up window.
“Looking at this in the application, I can now easily select a different basemap with the basemap gallery, I can query my feature layer using the search tool, and I can display feature information within a pop-up view,” Merritt explained.
As Euan Cameron, Esri’s chief technology officer (CTO) for developer technology, said at the conclusion of Merritt’s presentation, “These new [programming] languages can truly revolutionize your mobile app development.”
Extending, Integrating, and Automating ArcGIS
According to Jay Theodore, Esri’s CTO of ArcGIS Enterprise and artificial intelligence (AI), ArcGIS Enterprise offers “a trifecta of opportunities to extend, integrate, and automate [GIS].”
For example, the ArcGIS Enterprise team recently announced custom data feeds, which allow users to create feature services from any data source that can be used throughout the ArcGIS system and beyond.
“This lets you extend and connect new data sources that are not yet supported by ArcGIS,” said Theodore.
Shreyas Shinde, group development lead at Esri, showed the audience how to access data that’s not readily available in ArcGIS to analyze the Supplemental Nutrition Assistance Program (SNAP) within a community. To get started, he obtained a list of authorized local retailers that accept SNAP tokens. The list was kept in a MongoDB database, which allows users to curate the federal and state agency-maintained data. Shinde also acquired a list of crowdsourced attributes, such as reviews and price points, for retailers from the online business directory Yelp.
Shinde showed the audience how to do this. Using ArcGIS Enterprise SDK, he built and packaged the data providers and then deployed the packages to the server. Acting as an administrator, Shinde received the files and converted them to feeds. He wrapped up by showing how analysts and publishers can then search or browse the feeds to find specific item types and bring them into Map Viewer to query their properties.
“[Using] custom data feeds is a very powerful developer workflow that can bring to light these datasets that were harder to reach before, making them accessible…for mapping and analysis,” Shinde said.
A New Generation of Scalable, Resilient Enterprise GIS
ArcGIS Enterprise on Kubernetes is a fully automated, cloud-native geospatial infrastructure that’s scalable, resilient, and ready for automation. It is built on a collection of microservices that represent foundational workflows, such as mapping, analysis, collaboration, and sharing. It is delivered as a set of container images that run in a distributed operating system called Kubernetes. And it can run on Amazon Web Services (AWS), Microsoft Azure, Google Cloud, and OpenShift.
An ArcGIS Enterprise on Kubernetes deployment ensures that an organization’s enterprise GIS is resilient, maintaining the desired state of operations and remaining highly available during disruptions. It is scalable both vertically—by adding more central processing units or memory to a deployment’s current set of pods—and horizontally, by manually or automatically adding more pods to a service deployment when needed. An ArcGIS Enterprise on Kubernetes deployment allows for rolling updates, which eliminates downtime.
To demonstrate how resilient ArcGIS Enterprise on Kubernetes is, senior product engineer Chris Pawlyszyn let a chaos monkey loose within a cluster of virtual machines.
“A chaos monkey is a tool frequently used by infrastructure engineers to introduce disorder into a running cluster,” said Pawlyszyn. “The chaos monkey has privileges to terminate nodes at random, without any notification to the control plane or associated workloads.”
As the chaos monkey terminated nodes, a dashboard showed that even as the deployment’s capacity was brought down below 100 percent, average response times remained within the organization’s normal range of tolerance and the rates of successful responses didn’t appear to be altered at all. A number of workloads were redistributed throughout the cluster, which quickly added nodes to replace the terminated ones.
“Throughout this intentional sabotage, the distribution and elasticity of our cluster, coupled with the scalability of our published service, instills confidence that organizations’ critical services can remain up and running,” said Pawlyszyn. “From a user perspective, work is business as usual. And the underlying system recovers without any manual intervention.”