Talk

2014 Esri International Developer Summit (Day 2 Recap)

dev-summit

Day two’s events at the 2014 Esri International Developer Summit were a blast and our guys and gals have a lot to say about it. Here’s a recap from our developers and architects who are attending: Katie Reiter, David Marley, Pete Mahoney, Ryan Taylor, Drew Stinnett, Jeff Galang, Jason Worrel, Jamie Phillips, and Chris Judd.

Psst…We’re hiring Geospatial Developers! Check it out and pass it along to anyone you know who might be interested in coming to work with us.

Katie

Plenary Session - The Plenary did not disappoint. It had lots of amazing demos and it was very inspiring to see all of the different ways you can use the Esri API’s/software.

Introduction to the ArcGIS Web App Builder: JavaScript Apps Made Easy (Jianxia Song, Julie Powell, Moxie Zhang) - This was the session I was most looking forward to attending. Having previously worked with the ArcGIS Viewer for Silverlight, I am very familiar with their concept of an app builder and I was excited to see how they would pull it off with JavaScript. They have produced a very powerful product and it is completely customizable. One major thing to note is that the builder only works with a web map, meaning you must use a map from either ArcGIS online or portal. The four main categories for configuration/customization are themes, map, widgets, and attributes. Pretty much everything is customizable through the interactive builder and it will allow you to have simple, enriched applications built/launched in no time. I have already signed up for the beta program (starts at the end of March) and can’t wait to get my hands on this. They said the production release of the ArcGIS Web App Builder would coincide with 10.3 and is slated for this summer. It’s also worth noting that right now it only works with 2D maps but they are currently working on the 3D version.

What’s New in the ArcGIS API for Silverlight and Silverlight Viewer (Rex Hansen, Richard Zwaap) - They started out the session talking about some new features/enhancements to their Silverlight API and Silverlight Viewers, adding support for portal and ArcGIS online as well as some updates to calling/processing asynchronous tasks. As for the road ahead, they will continue to have targeted fixes/enhancements as well as a 3.3 release later this year, but there is no version 4 in the plans. If you read Esri’s blog last month detailing their roadmap for web developers then this session came as no surprise. Responding to Microsoft’s decision about Silverlight, they stated they would continue to support Silverlight but not encourage new development. For new development, they pointed us toward the ArcGIS API for JavaScript and the new ArcGIS Web App Builder. 

Building a Slick App using Qt (Jen Trieu, Hsueh Yu-Chen) - I stopped by this session on a whim, not really expecting to get too much out of it since I’ve never used Qt or QML, and left feeling pleasantly satisfied. QML was not as scary as I thought it would be and seemed pretty similar to a lot of the JSON I’ve been dealing with recently in some JavaScript apps. You can develop an app to run on multiple platforms using one code base, which is definitely a plus. She demoed 2 identical apps, one created with C++ and one with QML, and you couldn’t tell a difference between the two. Looking at the code for the 2 apps I would definitely pick the QML over the C++, it looked a lot more pleasant/familiar and seemed like it could be picked up pretty quickly.

Lightening Talks - I stayed and watched some of the lightening talks this evening, which were pretty entertaining. It’s amazing how much content you can jam into a short 5-minute presentation! I was hoping they’d have a loud obnoxious buzzer or bring out the cowbell from speedgeeking to let people know their time was up but they were rather polite when people ran over. I’d have to say my favorite presentation was Steve Mulberry’s talk on GeoMetri and GISi Indoors.

So a few of my concluding thoughts about today: Esri’s GitHub page is definitely worth getting familiar with. They have tons of samples out there to help you get started/tackle something new. The portal/ArcGIS online is the direction everything is moving towards. The ArcGIS Web App Builder only supporting web maps confirmed this for me. And 3D mapping in the web is getting pretty impressive and definitely worth looking into.

David

Yesterday was a great day. Of course I always look forward to the plenary session to get a sense for the big themes and current trends. Here are the sessions I went to yesterday:

Introduction to ArcGIS WebApp Builder – JavaScript Maps Made Easy (Julie Powell, Moxie Zhang, Jianxia Song) - The ArcGIS WebApp Builder is a new tool for configuring and deploying web applications based on the JavaScript API. The web applications use responsive design to that they work well on multiple devices and form factors. The Builder requires ArcGIS Portal or Online. It also requires that the map be based on a WebMap, as opposed to loading ArcGIS Server map services directly. If you are adopting Portal or Online, this tool looks very promising.

Custom widgets can be created and added to the builder, as can custom themes to modify the look and feel of the application. The session included a presentation by an Esri Partner who built a solution using an early beta version of the Builder. I was surprised how much the look and feel was modified – it really looked nothing like the other viewers/examples shown. It did not look like an app that came from a template or ‘builder’. The Builder has a simulator that allows you to see how the site will look on several different devices and form factors – this looked really cool.

While there are similarities to the existing ‘builders’ for Flex and Silverlight, the fact that the WebApp Builder for JavaScript requires ArcGIS Portal or Online is really a major difference and it is important to keep in mind when considering whether to use this tool.

What’s New in the ArcGIS API for Flex and Flex Viewer? – (Bjorn Svensson, Heather Gonzago) This session opened with a discussion of Esri’s plans for the future for Flex. The take-home message is that while there are no plans to release any updates for the Flex API or Viewer beyond 2014, you can continue to use them. Technical support will continue, and your applications will not ‘break’ in the future even as ArcGIS Server is upgraded to newer versions. Read the “Esri’s Roadmap for Web Developers” blog post for more details.

Some of the more recent enhancements to the API and Viewer were discussed and demonstrated, such as GeoEnrichment and OAuth2 support. With the App Builder, a lot of the recent enhancements have been in adding UI elements to customize certain aspects of the viewer and widgets that previously had to be done by manually editing the configuration files (for example, ability to edit date display formats in the Attribute Viewer widget).

Working with JavaScript App Frameworks and ArcGIS API for JavaScript (Derek Swingley, Matt Priour, Mike Juniper, Fred Aubry) - This was an interesting session, though a bit overwhelming. The session confirmed one thing for me about JavaScript development: there are a bewildering number of paradigms and frameworks to use, and the playing field is constantly changing and evolving. The presenters emphasized that when choosing a framework, there is no one answer that will suit all. There are merits and tradeoffs with each option.

Here is a brief summary of the frameworks discussed:

  • backbone.js: Simple, lightweight, flexible, active community of users, lots of plug-ins.
  • Angular: Markup-centric, MVW pattern “Model View Watcher”, need to use carefully to avoid creating messy pages (intermixed JS and markup), and seems complicated/magical.
  • Ember.js: MVC framework for JavaScript. Based on Cocoa MVC from Apple. If you are familiar with a MV* pattern now, this may be a good choice.
  • Polymer: Basically the equivalent of creating your own markup elements. This one is a bit of a mind-bender. At this point it is too far out into the future to consider for any production development.

If I had to choose a framework based on the information from this session, I would probably choose Backbone.js. There are many others to consider too, such as knockout.js.

ArcGIS for Server Performance and Scalability: Testing Methodologies (Andrew Sakowicz, Frank Pizzi) - This was a very informative session that covered a lot of ground. A key point is that testing is just one step in a larger process: System Design, Tuning, Testing, and Monitoring. Know your testing objectives before starting and don’t test indefinitely! A few main points and best practice tips from the session:

  • GIS systems are often CPU limited. If publishing a large number of ArcGIS Server services then memory can become the limiter.
  • You often do not need to test your app for performance. 80-90% of the performance bottlenecks are likely to be in the GIS Services and infrastructure (hardware and software).
  • Optimize the map first! (Scale dependency, proper spatial and attribute indexes, etc.)
  • If having performance issues, use testing and monitoring tools to isolate the problem – often a single bottleneck can be causing most or all the performance degradation.

There are a number of commercial and open-source tools available for performance testing and monitoring. Some of them have steep learning curves. Esri has created a series of tools geared towards GIS enterprise systems: System Designer, System Monitor, and System Test. All 3 can be downloaded from arcgis.com website, just go here and search: “owner:EnterpriseImp” and check the “Show ArcGIS Desktop Content” checkbox on the left. System Monitor and System Test were both demonstrated and both look quite useful and powerful.

Overall from today it is increasingly clear that Esri is coalescing around ArcGIS Online and ArcGIS Portal as the foundations for nearly everything they do in the future. I think it is going to challenge developers to make great apps within that framework. Also, there is no question that the big trend this year is ArcGIS as a “Platform”. ArcGIS Online and ArcGIS Portal are central to that paradigm. The ArcGIS WebApp Builder definitely looks promising, if you are adopting the Portal approach for your organization. The Runtime SDKs are really maturing. The Qt Runtime with QML looks like a cool option for multi-platform development. It will be in beta in 2-3 months – I am going to be checking it out! ArcGIS Professional also looks promising – 64 bit, multiprocessing, more modern UI and application architecture – looks to me to be Esri’s first step at moving away from COM and 32-bit technology (i.e., ArcObjects) on the desktop.

Pete

Yesterday I was looking forward to really getting into the conference. The day began with a well polished plenary – Esri puts on a very good show. So it was day two and my journey to learn more about the JavaScript API and associated technology was still just beginning. Here are the sessions I attended:

The plenary session - The plenary covered lots of advancements in the key technologies that Esri is promoting: JavaScript API and associated tools and resources for development, the Runtime SDKs, map portals and server architecture concepts and of course sound bytes for other Esri technologies like ArcGIS Pro. Lots of Kool-Aid for everyone. Some key points:

  • 10.2.2 is scheduled for an April release and is mainly focused on quality and stability.
  • 10.3 was given the vague ‘summer’ timeframe and will focus on more new functionality described as a focus on “performance, style and capabilities”. They mentioned it will include: improved 3d support, ability to zoom and spin with labeling, dynamic buffering, templates with smart extent with pull out side view, using html 5 canvas style blending, and a new a new stream service (socket layer). The JS API will include a new 3D camera object as well as support for a new ‘scene service’ capability.
  • There are lots of improved JavaScript app templates on ArcGIS Online, including an app boilerplate – all are available on GitHub.
  • The JavaScript Web App Builder stole the show – even ability to deploy to different devices without writing any code and ability to preview the app, as it will appear on those devices.
  • Euan Cameron gave a great presentation on the Runtime SDKs and how Esri is getting on board with Qt as a foundational layer to support native development.
  • Ismael Chivite gave a great presentation on deployment patterns with ArcGIS portal and ArcGIS Online. Repeating the emphasis that there are several different ways an organization can implement such as using cloud hosted platforms for some data and integral (Portal) for others.

Declarative Mapping Applications with Angular JavaScript (Patrick Arlt) - Another fast and furious presentation in the demo theatre. I learned that Google’s Angular framework could be used to create HTML components that have directives and controllers. We are all trying to grasp what business situations call for a specific framework. To me it seemed like a lot of work, perhaps justified only if you were going to use the same components in several different front ends.

Working with JavaScript App Frameworks and ArcGIS API for JavaScript (Frederic Aubry, Derek Swingley, Matt Priour, Mike Juniper) - In this session each presenter created the same app (something about gas prices for different areas) with one of four different frameworks: Backbone, Ember, Angular and Polymer. Each one is out on GitHub if you’d like to see it – search for users ffaubry, mjuniper and mpriour. Backbone is a framework that enables you to create views that react to models/collections all with a nice Restful JSON interface – they say it’s awesome. Angular? A framework from Google – markup centric framework – they call it model view watcher – mvw – set watchers on elements and when it changes there’s automatic bidirectional information. Ember’s main component is wiring events through the route object; it’s an MVVM data binding framework, leaning toward web components, templating, routes + controllers. Polymer was interesting, not like any of the other frameworks, not MVC at all; it’s all templates, shadowing dom custom elements and packaging. With Polymer everything is an element.

For more information on these frameworks, the presenters recommended going here.

Transitioning to JavaScript: What to Expect and How to Quickly Come Up to Speed (Bjorn Svensson, Yann Cabon) - As someone that’s new to the JavaScript development process, this one was more up my alley. Mainly this talk was aimed at how to set up your development environment and start developing with JavaScript. Some great tips included how to get nice looking HTML from bootstrap and digits from Dojo. It was also neat to see how you can edit and analyze JavaScript right within the Chrome Developer Tools.

Overall I think it was a good day. Also, for me, I need to take some time and really check out this site. It’s full of information and, unlike the sessions, I can digest at my own pace and maybe be ready for the next session.

Ryan

Yesterday was the first day of my Developer Summit experience. Overall, my goal for this week is to learn as much about the ArcGIS JavaScript API as possible. I work on a fairly large Flex based application that in time will need to be migrated to JavaScript so this it’s pretty important that I understand the ramifications of that migration. Given the number of JavaScript based tech sessions and the rise of the web as a platform I think I’ll have my work cut out for me. I attended the following:

Introduction to the ArcGIS WebApp Builder: JavaScript Apps Made Easy (Julie Powel, Moxie Zhang, Jianxa Song) - This session was an overview of the ArcGIS WebApp Builder primarily from a users or solution engineers perspective. The ArcGIS WebApp Builder was, for me, the biggest announcement Esri had at the plenary today so seeing that it had two dedicated sessions to it was quite welcome. The presenters demonstrated how to use the application to create new applications and application templates using the existing out of the box themes and widgets. Pretty cool stuff.

In addition they showed an impressive reskinning of an application created through WebApp Builder that used custom developed themes and widgets to create an application that looked and felt totally unique. This avoided the “cookie cutter” look and feel that no doubt many applications created with the WebApp Builder will have. They didn’t show how to create and publish custom themes and widgets but I hope to find out in another session.

The biggest limitation of the ArcGIS WebApp Builder is that it can only consume services published via a Web Map through Portal. While disappointing, it makes sense. The Web Map (exposed via Portal) contains much richer information about your map than any single map service could.

What’s New in the ArcGIS API for Flex and Flex Viewer (Bjorn Svenson, Heather Gonzajo) - There wasn’t much new in this What’s New session though we did learn more about Esri’s support plans for the ArcGIS API for Flex and Flex Viewer. In short there will be bug fixes and minor enhancements made in 2014 but after that there would be no future releases of these products. Esri will still support the ArcGIS API for Flex for a couple more years but we should not expect to see it be developed any further. There will be no 4.x release.

Working with JavaScript App Frameworks and the ArcGIS API for JavaScript (Derek Swingly, Matt Prior, Mike Juniper, Fred Aubrey) - The gist of this session was demonstrating the differences between four different frameworks – Backbone.js, Ember.js, Angular.js, and Polymer – to help you build JavaScript based web applications that separate your view logic from your business logic. This was accomplished by demonstrating a simple application written in each of the target frameworks.

Having not developed JavaScript applications before I felt unprepared for this session and the details of the frameworks and their idiosyncrasies went over my head. Even so, I felt this was a great session that introduced the complexities of JavaScript development and how these frameworks do and do not address them.

Transitioning to JavaScript: What to Expect and How to Quickly Get Up to Speed (Bjorn Svenson, Yann Cabon) - This was a good session but the title was misleading. I expected to be presented with thoughts and considerations for migrating Flex based applications to JavaScript. Instead this was a walkthrough of creating a ‘My First App’ in JavaScript. It was, unfortunately, light on best practices and more about a brief introduction to developing with JavaScript.

They did demonstrate/mention tooling options including IDEs such as Brackets, Sublime Text, Web Storm, and Chrome dev tools along with a recommendation to use JSHint for code analysis, Grunt for automation, and SASS and LESS for preprocessing your CSS. Again, this was a good session but I wish there had been more focus on considerations when porting Flex based applications into JavaScript based ones.

The message that I took away from these sessions was that Esri has fully embraced JavaScript as the platform with which to develop web based applications. They have and continue to put a lot of energy into making sure they have a robust, singular, toolset and vision for any aspiring Geospatial Web Application developer. This includes introducing new tools like the ArcGIS WebApp Builder that can make developing JavaScript based applications easier for developers and users to publishing a plethora of samples and templates to GitHub for folks to experiment and learn from.

Seeing the vast amount of patterns, practices, frameworks, and general options when developing JavaScript application I have a renewed appreciation for Flex and what it brought to the table. On the one hand I am sad to see it go but on the other I am excited for new the capabilities, tooling, and visualization options that will come from moving to a JavaScript based technology stack. I welcome the transition and am eager to learn this brave new world.

Drew

Yesterday I was hoping to see technologies that would be useful to our company and the people with whom I work. Sometimes these tech events get a little ahead of themselves because the technology is not quite fully baked. It is always great to see what is coming down the road but it is even better when what is coming down the road is ready for prime time usage upon arrival. Here are some of the sessions I attended:

Plenary (Euan Cameron, Julie Powell, Derek Swingley, Kelly Hutchins, and other assorted speakers) - This is a fire hose of new geotechnology that Esri has worked on over the past year. Each speaker demoed a brief snippet of the technology that his or her group has been working on. Some of the highlights included:

  • WebApp Builder which allows the creation of custom apps via a drag and drop interface while still maintaining the ability to customize using the ArcGIS JavaScript API.
  • Another cool initiative is the App Market, which is Esri’s way of providing developers the opportunity to distribute their apps to corporate customers via an Esri hosted delivery mechanism. The emphasis is not on consumers but organizations already committed to integrating geospatial technology in to their business processes.
  • “Portal” is going to be playing a larger role within the Esri ecosystem of ArcGIS Online (AGOL) in the coming years as it integrates the delivery of data and apps with the ability to authenticate users and groups to establish permissions at a very granular level.
  • ArcGIS Pro looks like a very powerful application. It is a multithreaded, asynchronous application that combines 2D and 3D viewing and analysis in one package. It looks like ArcMap will migrate this way in the future.

Profiling Python (Jamie Philips of GISi) - Jamie did a great job of describing the results of his process of learning about the profiling tools that can be used with Python applications. He is a high-energy speaker and covered the basic points of performance monitoring with the built in features of Python. If anyone in the company is looking for a place to start when analyzing the performance of their Python apps, Jamie is a great resource!

Deploying IOS Apps (Albert Pascual) - Albert covered the different ways an app can be distributed to iOS users. Primarily the Apple store or via corporate development subscription as far as GISi is concerned. He also discussed some of the best practices before submitting an app to the Apple store such as profiling the memory usage of the application with Instruments

FileGeodatabase API (Lance Shipman and David Sousa) - This strikes me as an underutilized technology as it allows one to work with geospatial data in one whatever form is convenient and then translate the data in to an Esri compatible format. It is free to download and minimally licensed by Esri. While Esri provides the means to translate data from many formats in to the Esri ecosystem, this allows independent shops to work with and share data with organizations without making the receiving party perform the translation. It seems like this would facilitate the usage and understanding of geospatial data.

Working with App Frameworks and theArcGIS API for JavaScript (Derek Swingley, Matt Priour, Frederic Aubry, Mike Juniper) - This was a survey of various JavaScript frameworks (Backbone, Angular, Ember and Polymer) that could be integrated with the Esri JavaScript API. One application was re-written by four different people using the four different frameworks. Basically Polymer is still too “raw” to be used reliably but looks promising. Backbone and Angular both ease the task of responding to events in web apps, while Ember is inspired by Apple’s COCOA framework.

ArcGIS API for JavaScript What Have You Done for Me Lately? (Derek Swingley, Jerome Yang) - A summary of the changes made to the Esri JavaScript API over the last year. Some examples: circle geometry that is aware of its projection in order to change shape automatically, simplifying the creation of events in web apps, and more advanced rendering options for the symbology of points, lines and polygons.

Lightning Talk (Steve Mulberry) - Excellent talk about GISi’s very own GeoMetri. It was well received by the audience due to both Steve’s presentation…and that GeoMetri is cool technology.

Jeff

I was really looking forward to the plenary where new features would be demoed for new and existing products. And it did not disappoint with demos of ArcGIS Pro, the JavaScript Web Optimizer, cross-platform development using Qt, and the new Scene Service. Here a few of the sessions I attended today:

Declarative Mapping Applications with Angular JavaScript (Patrick Arlt) – An overview of the Angular framework with a demonstration of creating custom HTML elements (e.g. <esri-map/>)

Building Real-Time Web Applications Using ArcGIS GeoEvent Processor (James Cardona, Ryan Elliott) – The GeoEvent Processor can take data feeds and turn them into streaming services that can be consumed using the JSAPI StreamLayer and web socket connections.

Working with JavaScript App Frameworks and ArcGIS API for JavaScript (Frederic Aubry, Derek Swingley, Matt Priour, Mike Juniper) – A demonstration of using four JS frameworks to build mapping applications: Backbone.js, Angular.js, Ember, and Polymer.

So what I gathered from today…the JavaScript API is huge. Just about every presenter used the API to present their demo applications. Cross-platform development was also a big topic using the Runtimes as well as with Qt and PhoneGap. 3D is moving forward in both the ArcGIS Pro and the JavaScript API (welcome to the web, ArcScene). Overall It was a great day filled with lots of new topics (at least for me) showcasing some of the great advances in current web and desktop trends.

Jason

Yesterday I was excited to attend the Plenary and get a good overview of the conference. It helped direct me to some tech sessions for the day. At the Plenary, there were a bunch of new and exciting features that jumped out at me. The image blending of the background imagery and feature layer was interesting to see. Also, the demo of the WebApp Builder was impressive with how quickly an app can be created and also how extendable it could be. Here are some of the sessions I attended:

Introduction to ArcGIS WebApp Builder: JavaScript Apps Made Easy (Julie Powell, Moxie Zhang, and Jianxia Song) - What jumped out at me for the WebApp Builder was its ability to create templates the Portal for ArcGIS. Also, the ease of being able to add your own custom widgets, services and themes made this product a good base for spring boarding further development.

Building Real-Time Web Applications Using ArcGIS GeoEvent Processor (James Cardona and Ryan Elliot) - This presentation started off with a strong demo and then picked apart the different aspects and explained them really clearly. It was good to see the nuts and bolts behind the scenes of the demo with real time interaction. I’m really looking forward to the new StreamLayer and the flexibility it’ll bring.

Working with JavaScript App Frameworks and ArcGIS API for JavaScript (Derek Swingley, Frederic Aubry, Matt Pirour, and Mike Juniper) - For this presentation, I was able to learn about different JavaScript frameworks, all used to create the exact same application. This was deep dive into the code for each and really demonstrated how each framework can be used to the application’s advantage.

Geotrigger Service: iOS and Android Tips and Tricks (Ryan Arana, Court Fowler, and Josh Yaganeh) - It was interesting to learn that the Geotrigger service wraps the locations services depending on the different device. Also, the ease of adapting the service into iOS apps was good to see.

Using SQLite? Know Which Geometry Storage to Use? (Jamie Phillips) - This session was given by our own Jamie Phillips. Here, it was interesting to see and discuss the performance between the different storage options. Also, the Esri developer for different storage options happened to be present and joined in the discussion!

Jamie

Yesterday I went in hoping to learn more about Python and the new Runtime SDKs. I also did a few presentations of my own…in addition to attending the following:

Plenary Session – Python 3.4 will be supported with ArcGIS for Professionals. The phrases, Open Data, Open Source, and GitHub were mentioned several times.

Deploying Geoprocessing Tools as Python Models – Python module support has been in ArcGIS since 10.2. It is deployed to your python site-packages like any other package and extends arcpy. There is support for help documentations, messages, and internationalization.

Building a Slick App with Qt – You can build native C++ applications without writing code using QML. The apps can also be deployed to any platform.

Using Python with the ArcGIS Runtime SDKs – Any python tools deployed as a GP package with the runtime SDKs run on a local server so any limitations with ArcGIS Server apply. No arpy.mapping since there is not any MXDs.

Chris

Yesterday was another great day at the summit. I didn’t really have any expectations…only an agenda with this little nugget of a session:

Mapping apps with Angular JS (Patrick Arlt) – Patrick was our presenter and is actually from GeoLoqi fame. He said that Angular’s documentation contributes to its steep learning curve, but has gotten better in the last year. As an experiment to validate Angular he wrote the front end of a location based game in 275 lines of code, demonstrating how easy it is to write large chucks of functionality with very little code. Angular also includes a very lightweight JQuery version. Patrick demonstrated the strategy he used to incorporate a mapping application into Angular web components. More on that here.

There are 2 comments

  1. Petr K.

    “The session included a presentation by an Esri Partner who built a solution using an early beta version of the Builder”.. Do you happen to know which partner company it was?

  2. Christian Elfers

    Hi Petr, i think the partner was us, con terra. We presented a solution app for geoportfolio management for insurances that we build for/with the builder. The solution app incooperated a few custom widgets and a custom theme. Cheers, Christian

Join the conversation