20150310_084558

Dan Levine

Well it feels like this year is a maturing year for the latest round of Esri technology. Many of the things they were working on last year and even before have become reality and are pending release. Just a few of these things that caught my attention: ArcGIS Pro and its associated SDK looks really powerful, the new Smart Maps concept is finally giving some higher end power into map authoring in AGOL, Vector Tile caching is coming and is gonna be sweet, felt like the old QuadTree concept revisited, 3D capabilities finally look like they are there and are gonna be everywhere - web, mobile, desktop, at speed. Esri will be publishing its 3D Scene specification to allow others to push data into it.

Esri continues to push the Templates and configurable, quick and easy app deployment capabilities at every level as well. More improvements to Web App Builder, similar approaches in runtime -- Applications QuickStarts fill out a form hit a button and create a runtime app without coding a line, and the AppStudio - code once, deploy to multiple platforms, natively! Despite creating all of this capability to create and deploy apps without the need of a developer, Esri is still investing heavily in creating developer tools, so fear not.

Many advances in the development tools world, the one that I was not aware of is that they are working on supporting Xamarin for C#.Net developers to be able to develop once and deploy to iOS and Android.

Many of these new capabilities are on the way in the next month or two all the way up to the UC of course.

Lots to focus on over the next few days to get the details and find where the limitations are.

Zeb Steeby

During the Plenary Session this morning, Jack called it E-S-R-I…the letters and I heard a lot of good information on the platform overall. A few things that really peaked my interest were Vector Map Tiles, Python and R Support that is planned in upcoming releases, Smart Mapping on ArcGIS Online and AppStudio.

Another fun thing was meeting my coworker’s Dad, who just happened to be sitting near me. Now I know why Kevin Brown is such a good guy.

I attended the following sessions:

  • ArcGIS Deployment Scenarios
  • Key Takeaways: Keep it Simple (install/configure what you need no more-no less), Enable SSL, Create Sites for specific purposes
  • ArcGIS for Server in the Microsoft Azure Cloud
  • Key Takeaways: Images and Cloud Builder Beta coming soon
  • Accessing Your Enterprise Geodatabase using SQL
  • Key Takeaways: Validated some workflows that I have used on projects and I learned a couple new ones for working with versioned data.
  • Accessing Your Enterprise Geodatabase using Python

Key Takeaways: Was more of a refresher for me, didn’t learn any new functionality

Kelly Bigley

This is not my first developer summit, so I know that the Plenary Session shows off lots of cool new tech and drives my hopes and expectations for the rest of the week.

The "platform" was a new term for me. The ArcGIS Platform delivers web GIS. It is a combination of all the ArcGIS products: ArcGIS for Server, Portal, the many ArcGIS APIs, and the ArcGIS clients all to serve, manage, and consume content. There are many new features either just released or upcoming in the platform this year that were demonstrated during the plenary: SmartMapping, 3D Mapping, Vector Tiles, Mobile map packages, and Arc GIS Pro. Some exciting new features of the JavaScript API enable the SmartMapping, 3D Mapping, client side geoprocessing with the GeometryEngine, and Real-time GIS with a StreamLayer from the GeoEvent Extension.

The end of 2015 can anticipate many new releases. A major JavaScript API release, 4.0, will bring more consistency across the API. The next release of the Runtime SDK, the "Runtime Quartz SDK", will add shape file support, portal layer support, and increased performance. Multi-platform mobile application development will become easier with Xamarin support and mobile deployment will also become easier with AppStudio for ArcGIS. ArcGIS for Server's Server Object Interceptors (SOI) will provide a place to modify functionality of services without affecting the client-side API by intercepting calls and responses to and from the server and performing some function. ArcGIS Pro development allows Python and R Scripts working together and the Pro SDK is very similar to the RunTime SDK. I am most intrigued with the SmartMapping, Vector Tiles, GeometryEngine and Real-time GIS and plan to track down sessions to learn more on these topics.

I focused on real-time GIS today with several afternoon sessions on the ArcGIS GeoEvent Extension for Server. Real-time GIS captures streaming data, continually process it, and sends updates, alerts, etc. A cool demo showed web app displaying ambulances driving around real-time, triggering alerts when an ambulance’s speed exceeds speed limits, or notifying the hospital when an ambulance enters a geofence of a 5-minute drive time from the hospital. Using the ArcGIS GeoEvent Manager, which is similar to the ArcGIS Server Manager, you can define input and output connectors, and create geoevent services to connect an input to filters, processors, and an output.

There are many out-of-the box input connectors (RSS, feature layer, twitter feed, and many more), processors for geoprocessing the input (buffer, field calculator, etc.), spatial filters, attribute filters, and output connectors (Email, SMS, feature layers, and stream layers) that you can tie into your geoevent service. A new output available is a stream layer service, which can be consumed by the JavaScript API and added in as a new layer type. A StreamLayer is a layer that is an extension of a FeatureLayer, and this layer automatically updates on the map in real-time. There are properties on the StreamLayer class that can be set to define view extents and maximum track points to display. The connect and disconnect events can be used when the map connects or disconnects to the stream and a message event that can be used when a new stream item occurs. You can simply set the definition query to filter the display and use any renderers you wish and tie to fields in the stream. You can even use temporal renderers to display a trail of points indicating a path of travel. All of this will automatically update on the map as the stream has new items or the activity changes making the map come alive with dynamic real-time information.

If the out-of-the-box input and output connectors and processors do not provide what you need, you can create custom ones. You can define input and output connectors in GeoEvent Manager tying an adaptor to a transport. The transport transmits the raw data to/from the adapter. The Adapter has defined properties to convert the raw data to/from a geoevent listener. The processor performs continuous analytics on GeoEvents (geofences, buffer, field calculation). There are several transporters and adapters available out-of-the-box that you can use to create custom connectors and there are several available processors to use in the GeoEvent service. Using the GeoEvent SDK for Java you can create custom transporters, adapters, and processors if the out-of-the-box ones are not sufficient. There are many that have been built in the Esri developer community and are out on GitHub to install into the GeoEvent Manager and use to create your geoevent processor.

Dan Huber

Confession of a conference noob.

thenotebook

I’ve attended a lot of Esri events in the 20+ years I’ve been using their software, so I’m pretty familiar with the amount of hype and spin that can come from these events. However, with this being the first time I’ve attended the Palm Springs event, I was a bit surprised by the amount of solid information put forth today.

What follows is a synopsis of what I observed – or at least felt it was important enough to put down in my notebook:

Plenary Session:

The morning started off with a cool old school Mario’ish cartoon game depicting a developer sucked into a world where he was forced to zap “bugs” and capture coins. First indication this event was not going to be like a normal UC.

AccuWeather, Microsoft, and Space Curve were recognized as being ‘Ultimate’ Business partners with Esri. Not sure when they started using the Microsoft licensing level for their partners, but I got the point.

Quick numbers about the summit – the 10th anniversary:

  • 300 Staff
  • 1800 attendees
  • 41% for the first time
  • 21% International
  • 300 sessions

During the obligatory ‘Meet your neighbor’, I introduced myself to Mike from Farmers Edge, a precision farming firm out of Kansas City. This was also his first Dev Summit, and he was just here for the business partners meeting but stuck around an extra day to see what it was like.

will.i.am attended the conference via Skype, providing information about his efforts to respond to the “tsunami of neglect” that is happening in this country, and how to use technology as way to “change the ghetto forever!” from within.

The remainder of the plenary was an overview and demonstrations of all the great updates that have been released or are going to be released in the next year.

Here is a quick list of what is targeted for 2015:

  • Collector in Windows
  • Explorer to work offline
  • Vector Map Tiles(!)
  • StreetMap for Mobile & ArcGIS Navigator
  • Mobile Map Packages
  • 3D JavaScript
  • AppStudio for ArcGIS
  • Server Object Interceptors (SOI)

The one cool thing I took away from all the demonstrations and I know I will use is the example Python automation app for ArcGIS Pro that produces a map book. MapBooksInPro_Pro1.0_v1

ArcGIS Deployment Scenarios - Jay Theodore and Phillip Heade

Good presentation on the various ways to bring ‘Web GIS’ into your organization – either through on premise hosting, ArcGIS Online, or a combination of the two. Also covered how best to implement an enterprise scale ArcGIS for Server architecture, and the methods you should employ to manage it on a production scale.

Further highlights from the talk:

  • Create separate sites rather than lump all services together
    • Keeps deployments clean
    • Servers not bogged down by long running geoprocesses
  • Enable SSL
    • Ensures services can be consumed by HTTPS systems (Portal and AGOL)
  • Keep system architecture simple
    • Do not deploy unnecessary components
    • Utilize local IT systems
  • Implement release management
    • Deploy services during off-peak hours
  • At version 10.4 of Portal for ArcGIS, they plan to allow easy migration of services from on premise sites to ArcGIS Online

ArcGIS Pro SDK for .NET: Introduction, Samples and How to Contribute - Uma Harano and Wolf Kaiser

I was a little bit disappointed with this talk. While it covered what is in the SDK and they did show examples on how to program with it, I was hoping that the SDK would be available today and not have to wait until “Q2 2015” – whenever that is. What we do know:

  • SDK will be available as an Visual Studio Extension
  • There will be an Esri GitHub site where they plan to provide repositories for ProConcepts, ProSamples, ProGuides, ProTutorials and ProSnippits
  • The SDK will contain utilities to Generate DAML IDs, and Fix References
  • They will roll out a Wiki to provide further guidance/information
  • Users can fork the sample repositories and contribute your own code

ArcGIS Runtime SDK’s: Core Display Architecture and Performance Tips and Tricks - Christian Venegas and Ralf Gottschalk

Great session that started off with the appropriate statement: “Warning: Extremely Nerdy Content”. The presenters focused on the ArcGIS Runtime rendering engine, and what impacts you could see if you did not properly setup you applications. They used NVIDIA Nsight application to show what it takes to render your maps using Static and Dynamic modes. Static mode rendering has the CPU generate the layers as raster tiles that are then placed in GPU memory. Dynamic mode rendering loads the layers as vectors with textures into GPU memory.

Tips and Tricks:

  • When adding or creating features on a map, use arrays rather than sequentially loading
  • Use a renderer for the features as it cuts down on additional runtime processing
  • Create single layer for each geometry type as they render faster
  • Avoid layer level transparency and use symbol level transparency

Chad Cooper

The morning of the first day of any conference is always exciting and interesting, and this morning was no different. This is my third Dev Summit, and I was pretty blown away by the size of the plenary room and the very large number of people present.

Plenary

The main focus of the plenary was that it's all about the apps; apps from Esri, apps in AppBuilder, apps you create with any of the Esri APIs and SDKs. Jeremy Bartley introduced the concept of Smart Mapping, which is basically new ways to symbolize your data and use defaults and data-driven workflows in ArcGIS Online - interesting stuff to make mapping easier.

Next, the vector map tiles demos were pretty impressive; hi-res, dynamic labeling and advanced on-the-fly styling. In one of the demos, they rotated the map and labels dynamically redrew in the proper orientation. Also regarding data, they demo'd mobile map packages were pretty cool, capable of housing data and drawing it very quickly.

The coolest demo of the first half of the morning for me was by far the Satellite Map which demo'd the new Web Scene Viewer.

The second half of the morning was all about APIs and SDKs. The latest JavaScript API release earlier this month exposes Smart Mapping and the Search Widget now allows you to consume locator service(s) and/or map/feature service feature layer(s) - I can already use that improved Search Widget in some of our existing applications.

New at the upcoming (first beta in May) 4.0 release of the JavaScript API will be a geometry engine. This new feature will allow you to do client-side processing and operations such as clip, buffer, and calculate, all on the fly. Watching this in action was pretty impressive. The 4.0 API will be released in multiple betas over the course of 2015, with a final release in Q4.

Another big-ticket item in the plenary was AppStudio for ArcGIS. AppStudio is a tool that allows you to create mobile apps that can be deployed to virtually any platform - Mac, iOS, Windows, Android, and Linux.

Finally, later in the morning, they talked some Python. Python is my first love and still my favorite git-r-dun language. At 10.3.1, scipy, pandas, and netcdf4python will be part of the standard ArcGIS for Desktop install. If you haven't experimented with Pandas, you should, it's pretty fun. They briefly mentioned that at 10.3.1, you will also get to choose which version of Python to install. Finally, at 10.3.1, you will be able to run R scripts from within ArcGIS and from tools.

ArcGIS Deployment Scenarios - Philip Heede and Jay Theodore

I recently transitioned over to a Solutions Engineer role here at GIS, Inc., so deployments are something I'm getting into more and more now everyday. This talk covered many KISS principles, such as create single cluster sites if you can, keep your system architecture as simple as possible, but no less, and if possible, enable SSL for all of your server sites. Also, if you already have a reverse proxy or a load balancer, you don't really need the Web Adaptor. Philip also talked about different combinations of how organizations might use ArcGIS Online, Portal, and ArcGIS together to achieve goals.

ArcGIS Server in the Amazon Cloud - Thomas Shippee and Sridhar Karra

I went into this talk with pretty much no Amazon Web Services (AWS) experience other than logging into some client consoles a time or two. The Amazon cloud has always fascinated me, and I needed to find out more. Tom gave an overview of AWS and covered many important terms, such as:

  • SaaS - software as a service, such as ArcGIS Online
  • PaaS - platform as a service, used in app dev, such as REST services exposed through ArcGIS Server
  • IaaS - infrastructure as a service, this is IT infrastructure, such as ArcGIS Server on AWS or Azure
  • AMI - Amazon machine image. Esri has AMIs available
  • EC2 instance - Elastic Cloud Compute, the machine rental service
  • Security group - think of this as the Amazon firewall
  • ELB - elastic load balancer
  • Auto-scaling - auto add/remove machines as needed
  • Region and availability zones - where your system runs

IaaS provides benefits such as no physical infrastructure; you pay for what you need when you need it, and on demand scaling. EC2 is the key service of AWS for standing up GIS servers. There are three flavors of AMIs: Ubuntu/Postgres/ArcGIS Server, Windows/SQL Server Standard/ArcGIS Server, and Windows/SQL Server Express/ArcGIS Server.

The ArcGIS Cloud Builder was also demo'd. This wizard of sorts allows you to configure and stand up a ArcGIS Server AMI in around 15-25 minutes. Cloudbuilder backup is also available to create a backup of an entire ArcGIS Server image that you can restore later.

Amazon CloudFormation allows for scripted and repeatable cloud deployments for advanced users/DevOps.

Web AppBuilder for ArcGIS: JavaScript Apps Made Easy - Derek Law and Moxie Zhang

Web AppBuilder is a pretty exciting product from several angles. First, I think Web AppBuilder is going to allow smaller shops without developers to still create and deploy small, focused apps that will perform useful tasks. Secondly, I think that it’s going to open up opportunities for partners such as us here at GIS, Inc. to develop widgets and advanced functionalities that we can provide to our clients. New widgets are being created by Esri and by end users. 3D is coming to Web AppBuilder in 2015.

Accessing Your Enterprise Geodatabase using Python by Russell Brennan and Jill Penney

I was pretty excited about this talk, until it got started and Russell said that it should have been named "Administering your geodatabase with Python". I stuck around, and was glad I did. This was a demo-heavy talk, which was good. They started off small with using tools like Create Enterprise Geodatabase and then moved on to creating roles and users in the database with CreateRole and CreateDatabaseUser. It got interesting for me when they started talking about tools that are available (at 10.1+ at least, maybe earlier?) to kick users out of a database. I remember years ago having to call my DBA every time we needed to boot users from SDE. With arcpy.AcceptConnections you can deny connections, then with arcpy.ListUsers you get a list of users that you can then iterate through, calling arcpy.DisconnnectUser on each one to kick them out. There is also an "ALL" keyword you can use to kick all users out. The Reconcile Versions Tool was covered and the presenters advised that it's wise to update stats and indexes after reconcile/post. All of the code from this presentation is available at http://esriurl.com/PyGDB2015

All in all, it was a very good day and I'm looking forward to tomorrow.

Charles Arnold

DevSummit Plenary Session - Sud Menon, director of software engineering

Hinted a little about the “scene layer” which is basically the new 3D service in the upcoming 4.0 JS SDK. Pro is the editor for 3D, and has many other advantages of desktop too, esp. 64 bit and an asynchronous architecture. They’re also introducing Vector Tiles w/ the 4.0 release.

Big advantages to having the vector data available on the client include being able to dynamically change the style/symbology of the map without round tripping to the server, more responsive labels etc. The format is said to be based on “existing community specs”. In the future, ESRI basemaps will be VT based.

Chris Andrews, 3D PM

Demoed new version of City Engine, which is a really cool looking product that I’m not really familiar with. After a few demos of new features of 3D symbology, the focus changed to the new web scene viewer in the 4.0 JS SDK (due sometime in the 2nd half of 2015). The way they’ve pulled off 3D in the browser is awesome (astounding what you can pull off with webgl and JavaScript these days). The 4.0 SDK will also include an easy animateTo() method that works similarly in 2D and 3D web scenes, as well as a new client-side geometry engine (buffering, splice, dissolve etc., all in the browser) and a new “3D overview” widget – a really cool visualization that shows the current extent as a section on a small globe.

Will Crick, Runtime

New features include edit+share directly from the mobile device

Bill Moreland, Python

Pandas + Scipy will be distributed with ArcGIS Pro. ESRI will be moving to using conda to deploy arcpy, much like these open source scientific libraries, which will decouple the release cycle from the rest of ArcGIS. They’ve also rewritten arcpy.mapping (now renamed arcpy.ma) for Pro, to better match the new app’s API/workspace-model.

ArcGIS GeoEvent Extension for Server - An Introduction

Nothing really to say about this…looks like it would make quite a few things really easy; doesn’t seem like it’s really a developer-focused tool.

Effective Geodatabase Programming

This was a very low-level talk about how to best use the ArcObjects geodatabase API. Most of the gems came after the end in talking with the presenters

ArcGIS for Server: Map Caching

This talk was about Tile services, which I didn’t really expect, because it seems they’re pretty simple and again, not very developer focused. I did hear about something called a “FeatureCollection” on AGOL that’s implemented differently from standard Feature/MapServices, and you can see pretty significant performance improvements over dynamic map services, but there’s no equivalent functionality in AGS+Portal. Poking around on AGOL afterwards, however, it wasn’t obvious how to use it…but I did find mention of it at https://doc.arcgis.com/en/arcgis-online/reference/geo-info.htm.

Accessing Your Enterprise Geodatabase using SQL - Amit Kesarwani, Trans Val

Great talk about how ESRI intends developers to access enterprise geodatabases directly. Great examples of queries to display the geodatabase metadata…not a lot new in general, but a lot of the details were new-to-me. The SDE command line tools are deprecated in 10.3, and the developers were unaware of any way to register a table/view with geodatabase without pointing-and-clicking in the UI (a big lose for automated installation/deployment)..but I hear elsewhere that the functionality is included in GP Tools.

Jason Knisley

We kicked off the day with the Plenary Session where we got an overview of several of the sessions that will be held this week and some of the features that will be included in upcoming releases. Will.i.am made a Skype appearance to talk about some of the work that he and Esri are doing to improve impoverished communities. At least that’s what I think they were talking about. Every other word cut out during his talk, so there were a lot of blanks to try to fill in. It’s funny how technical conferences always seem to be plagued by technical difficulties…back to the Plenary though; there were several other cool topics:

  • The 10.3 geo event extension can push data to clients via stream services. Could support a lot of cool functionality and continue to evolve apps that respond dynamically based on user location. Especially with server-side technology where those events can be reconfigured on demand to change their behavior without having to redeploy the client apps.
  • Vector tiles seem really cool. Very fast, smaller footprint. I wish they had been available for past mobile apps that I worked on where we had to cache tiles on the client.
  • Along those same lines, mobile map packages look like they’ll probably provide a much simpler and cleaner way to package up data for use on disconnected clients.
  • I’m definitely looking forward to learning more about Scene services and strategies for integrating 3D geospatial data in webmaps.
  • The local geometry engine for JavaScript is an exciting development as well. Not only does it allow for quick geometry operations to be performed on the client, but it will also allow disconnected JavaScript apps to be even more powerful. Using JavaScript webmaps in a disconnected environment may not be a very common scenario, but when it is needed, the local geometry engine will be a useful tool.

The first actual session of the day after the Plenary was “Choosing the Best JavaScript Framework for You”. This provided a great overview of the strengths and weaknesses of various JS frameworks and libraries, such as Backbone, Ember, Angular, and others. Perhaps the best aspect of this presentation was the fact, instead of trying to present one framework as the “best”, the presenters did a really good job of giving examples of where each of the frameworks shine and which situations might lead you to choose one framework over the other.

After that is was off to a demo theater session on Bootstrap. The presenters here gave some GitHub links to some useful resources on integrating the JSAPI with Bootstrap. This includes CSS files to prevent conflicting styles and a Bootstrap map wrapper to allow for responsive resizing and re-centering of the map when screen dimensions changes (such as with a mobile device screen orientation change).

The next session for on JavaScript Testing Tools and Patterns. Everyone knows that unit testing and code coverage are crucial to creating high quality code, but like everything else in the world of web, there are a lot of options out there to choose from, and the first hurdle is simply finding the right tools for the job. This session focused largely on examples based on Jasmine (for the actual unit tests) and Karma (for automating the execution of those tests when any files change). Combining these two tools should provide a solid platform for automated unit testing of client side JavaScript code, and supports cross-browser testing (including compatibility mode for IE back to IE8).

The final session of the day was Build System Automation for Enterprise JavaScript Applications. I was expecting some overlap between this session and the last one (I assumed they would compare various build systems and contrast the pros and cons), but instead this one was more focused on a single implementation, which turns out to match what we already do here at GISi: it was a demonstration of how they use Ant and Jenkins to create continuous integration builds. While I am familiar with the concepts based on what we do here at GISi, it was still informative to see it in action (I personally haven’t created Ant builds before) and it was good to see that the build patterns that Esri employs closing match our own build patterns.

After the day was all said and done, for me the most useful takeaways came from the JavaScript Testing Tools and Patterns sessions. I’ve long been a proponent of test-driven development, but I haven’t had an opportunity to do test-driven development in JavaScript, and so I was very interested to learn about tools to support that. Taking a deeper dive into Karma and Jasmine is now at the top of my to do list.

Tim Johnson

I’ve been to many Esri User Conferences in San Diego over the years, but this is my first Dev Summit. I’ve heard that it is a very high-quality event so I look forward to seeing what it’s all about. I am hoping to get a good idea of the road ahead for the Esri Stack, learn about new-to-me-technologies that I work with such as the GeoEvent Extension for Server, and get info about the new ArcGIS Pro product.

Today I attended:

  • The Plenary Session, of course
  • ArcGIS GeoEvent Extension for Server - An Introduction
  • ArcGIS GeoEvent Extension for Server: Building Real Time Web Applications
  • JavaScript Mapping Applications: Testing Tools and Patterns
  • ArcGIS GeoEvent Extension for Server: Creating Processors with the SDK

It was cool seeing will.i.am chatting with Jack Dangermond at the Plenary, and his message of the “Tsunami of Neglect” in some American communities is an important one, although his Skype connection was a little unfortunate at times. But the overall theme of the Plenary was all of the significant releases coming around the corner from Esri. One standout from this was tiled vector layers, which promise excellent performance, high resolution, dynamic labelling, and easy styling. Another thing of great interest are StreamLayers- a new feature service type that streams features constantly over a web socket rather than fetching them as requested. This exact capability would have been fantastic for the last three projects I’ve worked on, so I look forward to it. StreamLayers featured prominently in the GeoEvent Extension for Server sessions. In the Real Time Web Applications session, in fact, the presenters demo’d a real-time flight tracking application and a real-time power outage monitoring app that were both excellent. This was a standout session for me as well as the whole room as excited questions were fired at the presenters one after the other. Very cool.

I look forward to Wednesday!

Steve Mulberry

The day started off with the Plenary where Will.i.am made a Skype appearance to talk about his work with youth in is childhood neighborhood. He sated “don’t try to get out of the ghetto change it, and change it with technology”. He also mentioned the work he his doing with his geoenabled wearable platform, technology for wearable devices.

ArcGIS Platform was the focus of the plenary where the presenters showcased each component; Desktop, Apps, APIs and Portal with an emphasis on the organization through platform identity. This basically means that organizations implement security based on users, roles and privileges.

In 2015 look for:

  • Web GIS to be included 3D across all devices and APIs
  • Smart Mapping
  • Vector Map Tiles
  • Mobile Map Packages
  • Street Map for Mobil
  • ArcGIS Navigator
  • Real Time Analysis for Web with Big Data (vector and raster)
  • 3.1 in Q2 (brings Server Object Intercepters)

Jeremy highlighted the new capabilities in the JS API.

3.13 is out now some of the highlights are 3D capabilities, Smart Mapping Support, Local Geometry on the browser, Stream Layers, 40+ widgets, Access Vector Map Tiles.

4.0 beta will be released in 2015.

Some highlights for native App Development

Support for Xamarin (this allows .Net C# developers to write code and deploy to non-windows devices like iOS, Android)

The AppStudio was unveiled with its ability to build once and deploy to Android, iOS, Lynix and Windows. This also includes access to Esri’s online compiler.

AppStudio is in beta now and planed to be released in May.

Also introduced was the Developer Web Site. This will give access to what Esri is calling “Quick Starts”. A way to jump-start your application development. Coming later this year

Arcpy will start to have it’s own release cycle. This will help keep arcpy in line with the scientific community library and other 3rd party libs. With the release of ArcGIS Pro arcpy.mapping will be renamed to arcpy.mp.

Pete Mahoney

Well it’s day one at the Dev Summit and I’m excited and thankful to be here to dive into all the technology that Esri is dishing up for us. We all got together last night for a team dinner and it was great to see all the faces of the people I work so closely with every day.

The first challenge we all face is deciding which sessions we’ll attend, trying our best to get the greatest bang for the buck. Today I chose to focus on some core JavaScript tracks by some presenters I knew would deliver and also got my first look at the ArcGIS Pro Visual Studio SDK. However I had to give up all the sessions that were focused on the Geo Event Extension, which seems to be very popular this year and very well covered. However, several of my fellow GISi colleagues attended these if you’re interested.

The big Plenary Session kicked off the conference first thing this morning. I had to laugh when I saw that this year ESRI went out of their way to make folks comfortable in the big Oasis room by providing bean bag chairs and couches.

beans

The plenary highlights included:

  • Support for 3D across the platform
  • New SOI (Server Object Interceptors) for ArcGIS Server. Allowing code to intercept calls to ArcGIS Server to perform custom logic (such as integrating with another system or performing logging). GISi might be doing some hands on testing of SOIs with the Server team this year.
  • Python improvements for scientific computing. Some applause for being able to configure the Python version for ArcGIS Desktop. New online docs to help with Python migration to Pro.
  • New abilities to customize ArcGIS Pro and a new ArcGIS Pro SDK
  • Upcoming support for authoring vector tiles and using them in mobile runtime apps

Choosing the Best JavaScript Framework for You - Dave Bouwman & Mike Juniper

I would highly recommend Dave’s talks. He puts together a fun slides and great demos. In this session Dave talked about a few of the more popular JS frameworks, what they are good at and why they might work or not work for your team or project. Some frameworks are very opinionated which may provide structure but be less flexible. Others may end up being more flexible but will pile up more lines of code than others. We discussed several frameworks including Backbone, Marionette, Ampersand, React and of course Angular and Ember.

ArcGIS Pro SDK for .NET: Introduction, Samples, and How to Contribute - Uma Harano & Wolf Kaiser

As an ArcObjects developer I was excited to see the next generation of desktop development tools be unveiled. This was a pretty simple introduction but it really confirmed what I’d expect. There’s an SDK to help you set up your project and to add common controls to extend base classes and create add ins. There’s a xml based UI view (a daml file) with a C# code behind. The SDK also provides snippets and utilities. All the developer help right now is being served from GitHub.

JavaScript Mapping Applications: Testing Tools and Patterns - David Bouwman & Tom Wayson

Didn’t get enough of Dave earlier in the day so I came back for more. This talk was actually a repeat of last year but it was good to see it again. I think the biggest take away for me was the concept of wrapping your common objects like ‘the map’ so that you can fake interaction with it through your tests. Your tests should force you into a better architecture using this approach of decoupling your spaghetti code. The demo is available on GitHub and showcases tools like grunt and gulp to watch your changes and kick of tests (test runners), Phantom JS which is a headless browser that runs your app against different versions, Sinon JS which can analyze code coverage and Jasmine to author your tests.

Demo Theatre - Build System Automation for Enterprise JavaScript Applications - George Bochenek & Randy Jones

In this demonstration I got a good review of automating builds for testing and continuous integration. These guys demonstrated how to set up Jenkins and how to author ant scripts to perform the build and deployment of your JS apps. JS Lint (or JS Hint) are recommended for code analysis and can also be customized to include specific rules for your team.

Justin Burns

I went into the day today to hear what Esri has planned for the near future at the plenary session, ready to get started on some of the technical sessions and eager to discuss some of my wishes with the ArcGIS Runtime SDK for iOS development team.

I’m sure you’ll get more about the plenary from some of my co-workers. It was the typical parade of technical leads showing what’s on the horizon. Largely, vector tile packages (this is pretty huge), pushing ArcGIS Pro more (you can only publish vector tile packages from here) and rollout of 3D across the platform throughout 2015. Oh yeah, Jack Dangermond’s friend Will.i.am made a choppy Skype appearance too.

To lay a bit of groundwork, we are currently writing an iOS app that works with the offline SQLite geodatabase 100% of the time. So, equipped with my laptop and some burning questions I skipped the first couple of sessions to go meet with the ArcGIS Runtime SDK for iOS development team. Lead by Al Pascual – Technical Product Manager, they were all interested to hear my questions and to help think of the best solutions.

First off, I wanted to find out if they would be providing a synchronous query method for the SDK in the near future. We have found that when you are querying for many nested objects using only asynchronous methods your code becomes needlessly complex. The team indicated that there were no plans at this time to provide synchronous query capabilities. The way we have handled it is to query the geodatabase directly for non-spatial tables and use the SDK query methods when we need spatial features. As a follow-up I asked the team if it would be possible to get instruction on how to properly deserialize the geometry blob stored in the local SQLite geodatabase so we could write complex SQL statements to get our data outside of the SDK. They explained to me that the manner in which the geodatabase team stores the geometry for that blob object would be too complex to deserialize outside of their SDK. Strike two.

My second question was about updating features in the local geodatabase. When we query for data from the local geodatabase we store the attributes in our own model classes for use throughout the application. Prior to version 10.2.4 of the SDK we could get the ObjectID of the existing object, but not the GlobalID. When we would go to have the updated feature we would instantiate a new instance of the AGSGDBFeature class, add the updated attributes and call the saveFeature method. Unfortunately, though, doing so will always result in the insertion of a new feature. As it turns out, the key for updating is the GlobalID. Our solution for this is to query the geodatabase table by ObjectID before we save to get a reference to the existing feature, update its attributes and then save. However, this introduces yet another asynchronous call to the geodatabase. The team confirmed that as of version 10.2.4 they have exposed the GlobalID and think that adding that attribute when we instantiate a new instance of the AGSGDBFeature class and save it should properly perform an update. I was of course eager to try this out confidant that we were using version 10.2.4 in our project. Armed with this new information I went and found a table not far from the team to test this out. Much to my dismay I was not getting the GlobalID returned when my queries ran. I went back to the team to take a look and they reassured me that it is in there. After a little more digging I discovered that my project is still pointed at 10.2.3. Doh! Once I get my project properly upgraded I will test this out and hopefully be able to perform updates without querying for the data first.

The next to last session I went to was ArcGIS Runtime SDKs: Core Display Architecture Performance Tips and Tricks. This was a very interesting session if you do any Runtime development. The presenters discussed how they render the map in the core and how to improve performance in your apps. The big take away from this session were the performance tips: 1.) When adding and creating graphics use arrays. Create an array of the graphics that you want to add to a graphics layer then add the array to the layer rather than adding each graphic one at a time. 2.) Use a renderer whenever possible instead of individual symbols for each graphic. 3.) Create separate graphics layers for each geometry type. Adding graphics with different geometry types greatly reduces the efficiency of rendering.

The last session I attended was a debate on web vs. native mobile – Development Strategies for Building Mobile Apps – the Great Debate. There was good discussion by the Esri team broken down by several categories: capabilities, cost and deployment. When it comes to capabilities native gives you more direct access to the device and it’s hardware. Web does have access to some sensors like the accelerometer, but does not work well with the local file system, offline editing, local analysis or 3D. Web is attractive because it will cost less to develop one web app, including device specific code, than it will to develop several native apps. Xamarin and Qt QML are two promising cross-platform solutions that can help alleviate the cost burden with native, however each of them also have shortcomings in capabilities. When it comes to deployment web is much easier for the developers to deploy, but can be jarring to the users. Native deployment allows the users to decide whether or not to upgrade, taking that control from the developers. The bottom line when making a decision on which to develop is to consider what technology your developers are already familiar with, who your user base is going to be and what capabilities your app needs.