Esri’s recent Developer Summit showcased the latest innovation in mapping and GIS for software developers.
The summit, held March 5–9, 2018, in Palm Springs, California, was an opportunity for developers to find out how Esri has been expanding and further incorporating capabilities such as machine learning, big data, 3D functionality, data science tools, and immersive technologies into the ArcGIS platform. The event was also an opportunity for Esri to highlight where its development efforts are heading in the coming year.
The theme was ”by developers, for developers,” with the goal of bringing Esri’s own software developers together with the geodevelopment community across the world. For geodevelopers, this was an opportunity to learn best practices that will make them more successful. For Esri, this was an opportunity to share how it builds software and works with the community to shape the software.
This year’s event brought together more than 2,500 geodevelopers, which speaks to the growing importance of the technology. Beyond being the largest gathering of geospatial developers, Esri president Jack Dangermond characterized the conference as a “collection of developers with purpose.”
He said that, looking at the caliber of the attendees, “Clearly you are making a huge difference in your organizations, and in turn, in our field. You’re making the world a better place by enhancing communication, making processes more efficient, and improving decision-making.”
In presentations during the Plenary Sessions and throughout the week, Esri development staff shared what they have accomplished in the past year, what they are currently working on, and how developers can benefit from their work.
One of Esri’s goals has been to develop tech in a way that works very effectively for developers. One of the biggest takeaways—and a theme that ran throughout the presentations—was that leveraging the Web GIS pattern is the best way to work faster and smarter.
Most custom applications are built to access services directly, and that typically means writing a lot of code. Instead of writing code to access all the information in services, just use a map. In a couple of lines of code, all that information is available through the map. By letting end users edit web maps, you can let them configure your applications to match their needs and save you effort.
Web GIS also lets you leverage the authoritative content in an organization. Using a map lets data flow seamlessly between applications you develop and the rest of the ArcGIS platform. This also simplifies administration of your app by letting you apply the permissions and user roles for that organization that have already been established.
Developer Programs
In addition to the Web GIS pattern, Esri has been working to provide developers with a great experience. ArcGIS provides an arsenal of developer tools that support an array of SDKs and APIs and makes the ArcGIS platform more accessible. It also gives developers resources that get them up to speed and current with rapidly evolving technology.
If you are not already a member, your first step should be to join the ArcGIS Developer Program (ADP) by going to developers.arcgis.com. The Essentials subscription, which costs nothing, gives you credits, access to online web builders, membership in a large and collaborative GIS developer community, access to web and native client APIs and SDKs, reference documentation, access to a library of developer samples, and membership in an early adopter community.
Four additional subscription plans—Builder, Professional, Premium, and Enterprise—provide additional capabilities for a yearly subscription fee.
Once you have joined ADP, you can access developer tools. Esri has been maturing its developer framework that now has six ArcGIS Runtime SDKs for native app development and three APIs.
Euan Cameron, who leads Esri’s developer programs, emphasized the powerful reasons for pursuing native development using the ArcGIS Runtime SDKs. “There’s nothing that gets you closer to the native power of the device.” Native development not only provides the best performance, but it can also leverage device capabilities as well as access all device peripherals via their native SDKs. Native apps also provide the best debugging experience and allow offline use of ArcGIS.
Esri provides six ArcGIS Runtime SDKs: Android, iOS, Java, macOS, .NET, and Qt. With version 100.x releases, these SDKs have evolved to better leverage the Web GIS pattern so you can use maps, layers, and scenes that have already been created and users, roles, and groups that are already established in an organization.
If you build apps using the SDKs and the geoinformation model, your apps will seamlessly integrate with your end users’ ArcGIS workflows to provide optimal solutions. For example, you can create focused applications that extend the suite of field mobility apps that Esri provides.
AppStudio for ArcGIS is a native application builder that converts web maps into mobile apps for Android, iOS, Windows, OS X, and Linux. Those apps can be branded and made available through app stores. Configure apps using templates and wizards entirely online in a browser without any coding. Alternatively, you can customize an app’s source code, piece together components from existing apps and samples, or write QML code from scratch using AppStudio for ArcGIS (Desktop Edition).
The ArcGIS API for JavaScript is powerful and well supported with many samples and widgets. The 4.x release of the API integrates 2D and 3D, so you can build full-featured 3D applications from web maps and web scenes that include terrain, integrated mesh layers, and 3D objects as well as imagery and feature layers. These data types can be used for analyses such as viewshed or line-of-sight. New configurable 2D and 3D app templates speed up development. It takes just a few lines of code to implement the many responsive widgets that are available.
The ArcGIS API for Python supports automation in ArcGIS Enterprise deployments and time-critical workflows for ArcGIS Online applications. Data-driven Python scripts can add users, privileges, and roles and create groups, configure the portal, and establish collaborations between ArcGIS Online organizations.
With its integration with Jupyter Notebook, the ArcGIS API for Python was designed to bring data science to Web GIS. It facilitates machine learning and deep learning workflows through the creation of reproducible research for sharing and collaboration.
To support The Science of Where, ArcGIS continues to offer additional data science capabilities. Insights for ArcGIS offers an interactive, ready-to-use analysis experience. More than 1,200 geoprocessing tools are available in ArcGIS Pro that can be used with Python packages and the R-ArcGIS bridge in analytical workflows to provide a deeper understanding of what happened, where it happened, and what will likely happen in the future. Information products can be created in ArcGIS Pro that visualize and disseminate the results of analyses.
As Esri’s technology expands to include enhanced visualization and analysis of imagery, real-time, and 3D data, Esri’s developer tools have been extended to support these new capabilities. For example, the ArcGIS Runtime SDKs optimize the use of 3D content with scene layers using the I3S standard via online services or via a scene layer package on the device to support use offline.
Because Esri is always pushing the envelope, its developers are working on more immersive GIS applications that incorporate virtual reality (VR) or augmented reality (AR). These applications take advantage of dedicated chipsets that are already available in mobile phones that support these capabilities. Support for a stereo display rendering mode enables VR. Background transparency functionality has been added so that featues can render on top of a camera feed, making AR feasible.
Many Resources
In addition to SDKs, APIs, builders, and tools to speed the development process, the ArcGIS Developer Program website has been redesigned to better answer the two most common questions asked by developers: what can Esri technology do, and how do I get started?
The site not only tells what services are available, like generating directions or performing spatial analysis, but also provides live samples. These samples let you interactively test ArcGIS capabilities such as calculating drive times, routing to the closest facility, or generating a travel cost matrix. Live samples have links to resources for learning more about using geospatial data for analysis and visualization and how the SDKs, APIs, or other tools are used.
One terrific learning resource for developers is Esri Dev Labs. Introduced last year, the site provided several dozen brief, highly focused tutorials that were free. The labs are still free, and their number has grown to more than 100.
None of these tutorials take more than 15 minutes. They guide you through the three phases of building geospatial apps: importing and preparing data, designing and configuring maps and layers, and developing mapping applications using ArcGIS tools. These bite-size lessons are presented in a browsable format that allows you to filter by functionality, platform, and how recently the lab was added.
The example apps on the Esri GitHub repository give start-to-finish lessons in app development. These full-fledged apps illustrate best practices for using ArcGIS and can be used to kick-start a project. Each example app has complete documentation so you can really understand the problem and the app that was created to solve it.
Success Stories, a section of the ADP website, gives you another way to learn. Each story gives a detailed account of how an organization solved a problem using ArcGIS development tools. Stories are categorized by industry and links provided to resources on concepts illustrated and the software used.
Because you are developing on the ArcGIS platform, all the constantly expanding capabilities for visualization and analytics in ArcGIS are available to you. You can take advantage of Esri’s complete mapping, location, and analytics platform for your geodevelopment projects by joining the ADP.