2014 Esri International Developer Summit (Day 2 Recap)
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.
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.
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.
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:
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.
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).
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.
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.
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.
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.
For more information on these frameworks, the presenters recommended going here.
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.
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.
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:
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.
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.
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.
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:
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.
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!
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.
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.