ESRI Developer Summit 2016: Some thoughts

ESRI Developer Summit

This year, I was happy not just to attend the ESRI Developer Summit, but I also had the privilege of talking about the ESRI REST Diagnostics tools in a user presentation. Since I attended with some other members of my team, I focused on attending most of the sessions on JavaScript and web development. It was a lot of fun, and an interesting insight into the directions ESRI is taking the developer.

Moving the Web (and the Web Developer) Forward

ESRI has invested heavily in JavaScript and the web as a platform for sharing maps online. It’s JavaScript API has made it’s 4.0 version available in beta for a while, and just released version 3.16 in its stable line. The 4.0 JavaScript API is a massive redesign, heavily implementing Model-View-ViewModel throughout the framework. Every API object is treated as a promise, whether it’s a query result (as we’re used to), or a map. The 4.0 API is a much simpler API, and lets you do things like add 3d maps, watch and 2-way bind results, and so much more. It deserves a few blog posts to discuss the differences.

ESRI recognizes that not everybody cares about the details of cartography. Often, they just want to add a map into their existing application. I attended multiple talks where developers like Rene Rubalcava and Patrick Arlt mixed the ArcGIS JavaScript API with other JavaScript libraries and frameworks, including Angular and React. They showed how easy it was for someone experienced in other JavaScript frameworks to simply “Slap a map” into existing applications. Whether you work with web components, Angular directives, or React components, you too can have a map. As a caveat, some of the web components work only works in nightly builds of some browsers.

Many of the JavaScript sessions assumed developers are using build tools and task runners in their projects, and they encouraged it even more. Web AppBuilder Developer edition has a number of Yeoman generators to scaffold out your widget folder structures, as well as setting up watches to copy your code to Web AppBuilder. Unit testing with Intern is now easier, thanks to ESRI publishing the ArcGIS JavaScript API on Github, and making it available through Bower.

The other big thing that was talked about in JavaScript is TypeScript. For those not in the know, it’s JavaScript with extra features to allow for strong typed coding. You can assign a variable as a number, and when you try to assign text to it, it throws an error rather than happily accepting it as normal JavaScript would. This makes testing and intellisense so much easier. TypeScript definitions for the ArcGIS JavaScript API are available on Github, and the best tool to use TypeScript while coding happens to be Visual Studio Code.

It’s time for 3D

With the upcoming release of the ArcGIS JavaScript API 4.0, ESRI revealed some of the work they’re doing in the realm of 3D. Gone are the days of “Virtual Reality” graphics that look like they came from TRON or Minecraft. ESRI revealed slick 3D rendered buildings, sloping contours, and even dynamically rendered hill shading in the browser. They showed three-dimensional trees that looked like trees, with unique styling by tree type, and heights that matched measurements.

Another interesting example that caught my eye was a land contour with rippling water. While the land contours were generated using the 4.0 JSAPI, the wavy water was created with the help of three.js, a 3d graphics rendering library. It’s another sign that ESRI’s tools are working towards playing nice with other libraries in this mix and match web world we work and play in.

It’s worth noting that the 3D maps were only available on desktop browsers. The 3D maps engines rely on browsers implementing the WebGL specifications. While the desktop browsers have added enough of the specs to make 3D maps possible, mobile browsers have been spotty in their implementation. And don’t get me started on how mobile carriers are slowing down updates…

Web AppBuilder has plenty of room to grow

Since the company I work for wants to leverage Web AppBuilder for custom tools, I attended a few presentations on it. I found a pretty good tool set for generating full page mapping applications. If you’ve ever created applications with the Flex or Silverlight toolkits, Web AppBuilder is the JavaScript equivalent. The latest version is capable of publishing 3D maps and tools, using a beta version of the ArcGIS JavaScript API 4.0.

With a long list of default tools, responsive design, and simple configurable nature, you might think your days of developing custom web applications are over. However, I found that was not the case with the Web AppBuilder Developer Edition. While widgets in an application can talk to one another, they still can’t talk to widgets that haven’t been started. The apps are still limited to full screen (or almost full screen) map apps, Also, there is still a need for 3rd party integration widgets (like Pictometry or Google StreetView) and custom workflow widgets. You don’t have to reinvent the wheel. Instead, you can focus on the apps and tools that make you unique.

The People behind the products

Some people view ESRI as the Cadillac of the GIS world, while others view it as the Evil Empire. What we sometimes forget is that behind the company (and really any half-decent company) are hard working people trying to make things better for others. That’s what I found when I had the opportunity to meet some of the developers in real life. These are people I’ve known previously through Twitter, Slack, and GIS StackExchange, and I’m happy to say these people are cool in person.

Special thanks to Andy Gup, Rene Rubalcava, Tom Wayson, John Gravois, Gavin Rehkemper, Yann Cabon, and the other developers whose names escape me this late at night. These people not only put out good code, but also made me feel welcome. Also, to Douglas Crockford, while I was a little too starstruck to say little more than “great presentation”, one day, when I see you again, I will get up the nerve to ask for a selfie.

3 thoughts on “ESRI Developer Summit 2016: Some thoughts

  1. Hi, I am trying to integrate the three.js library with esri 4.0 API. Your post is basically the only reference I found of both library together. Do you remember during which session you saw it? Or the speaker?

      1. Thanks for the info, I have maybe a (not working) example of what I need 🙂

Comments are closed.