Esri Developer Summit: Day 3
March 10, 2011 3 Comments
Dan Levine
So Esri kicked off Wednesday announcing the winners of the Developer Challenges. Frank Roberts won the Developer Challenge with what looks to be something like the Tri-View Tool that we have been deploying for a couple of years. Not sure about the details, but it would be worth looking at to see if we can leverage each other’s work. Some of you may know Frank; we have interviewed him a couple of times trying to figure out how to make a fit within GISi. Congratulations to Frank.
Next was the Keynote. Apparently a last minute substitution by the Gartner Group sent a solid number 2. Michael King, Research Director, Gartner, spoke on The Future direction of Mobile Application Development. He had many different stats and charts talking about how the mobile industry is incredibly dynamic now and how that impacts us as developers and solution providers. A couple of the interesting stats:
- In the next few years 70% of all interaction will be through our cell phones
- Mobile is a Trillion dollar business.
- Industry is VERY fragmented and don’t see a consolidation for a least of couple of years if it ever happens, largely driven by how personal the use and experience of mobile devices are.
Above and beyond the statistics and observations, Michael presented that he believes that the successful solutions will be the ones that most effectively harness the ability to be context aware and have the most elegant interfaces. Specifically around context aware, not only is he referring to where you are (GPS), what you are doing (calendar), what you are supposed to be doing (reminding you that your anniversary is tomorrow while you drive by the florist that you bought flowers from last year), but tying this all to business and personal data systems to the point where the mobile device is keeping track of more information about you than you possibly can remember at any one time. Couple that with an interface that adjusts to how you use the phone and learns what your preferences are over time. For instance, for me that might mean that when I travel I always look for a CrossFit gym local to where I am staying. Well instead of me going to Google on my phone and stumbling through entering in “CrossFIt XXXXXX” for wherever I am, it would recognize that I am about to travel and just performs the search and gives me a list of results in the format that I typically look for: contact information, directions, and schedule. Within this theme of contextual awareness he talked a little about Augmented Reality and how the industry is still trying to figure out what we can do with this, how we implement it, and that we have to wait a bit for the hardware technology to progress to make this really work well. An example he gave was a crew in a manhole looking at a 100 year old valve. The only guy in the city that knows how to maintain that valve is back in the office but can share the camera screen from the guy in the field and do live annotation to walk the crew through what to do and not to do. This did tee up the presentation that Pat did later in the day well, and packed the room.
I am still somewhat surprised that the Mobile sessions, and there are a bunch of them, aren’t the ones that are packed. Seems like the server sessions are still the most popular.
Steve Mulberry
Check out the recorded plenary sessions here: http://www.esri.com/events/devsummit/videos-and-photos/index.html
Great keynote speaker form Gartner; He discussed the many facets of mobile computing and the trends and predictions for the future. One thing that stood out was the amount of mobile devices projected to be used in the future will by far outnumber the laptops. So planning accordingly with respects to UI/Application development is a key to succeeding in this market space. The speaker noted that mobile development should not be a sideline event but imbedded in application development strategies and procedures. We keep hearing the same ole adage about making it simple and easy to use. But we GIS geeks need to think outside the laptop when it comes to mobile development. That’s where you the designers come in.
I sat through several sessions dealing with performance, scalability testing and architecture scaling. The common theme always lead back to making sure your map document is optimized and ready for web deployment. Here are some tools that help this process:
- Mxdperfstat – http://arcscripts.esri.com/details.asp?dbid=15570. This tool along with the out-of-box map analyzer gives you a clear picture of the rendering time for ArcGIS Server.
- PerfHeat – http://arcscripts.esri.com/details.asp?dbid=16880. This tool produces a grid showing color coded rendering time ranges across the map extent. Display rendering times are generated for each map scale, presenting a spatial overview of display processing loads.
- Fiddler with the neXpert plugin – http://www.fiddlertool.com/fiddler2/addons/nexpert.asp. neXpert aids in performance testing web applications through workflow management tasks.
All these tools along with additional capacity planning and performance benchmarking can be found in the report. http://resources.arcgis.com/gallery/file/enterprise-gis/details?entryID=6367F821-1422-2418-886F-FCC43C8C8E22
Esri unveiled a new GIS Testing Tool that incorporates the above tools and methodologies in an all-in-one tool. Currently this tool is only available through professional services, but it was suggested that once final it may be made available for download.
Patrick Barnhart
The two biggest things that happened today, at least from my point of view, were successfully surviving my presentation on Augmented Reality and having the GISi dodgeball team (named Gone in 30 Seconds in honor of last year) exceed expectations. The presentation went well; if you’d like to see the on-screen part of it, check out http://prezi.com/iy3lglcdn6xi/augmented-reality-using-arcgis-and-layar/. Prezi saved the day on this one; it made things a lot more fun to prepare and present than if I had to do it using standard slides. Gone in 30 Seconds got a bye in the first round, emerged triumphant in the second and then were defeated by the team that went on to win.
As for the stuff I’m really here for, which is to learn as much about developing web applications using Esri products as possible, it was also a success. I attended a session entitled ‘Advanced Development with ArcGIS API for JavaScript’ which really should have been called ‘Intro to Mobile Development using the JavaScript API plus some HTML 5 and a touch of CSS3’. So, it wasn’t what I was expecting but it still turned out to be the most interesting session I attended today.
There are APIs other than JavaScript that are designed for mobile development but they’re device specific, which is kind of a turn off for me. If I’m putting in the time to write a phone app, I want it to run on iPhones, iPads, Androids, Blackberrys, you name it, and if it’ll run on the desktop too then glory hallelujah. Write once run anywhere is what I’m after and while it seems that the world is not 100% ready for that ,the JavaScript API gets you closer than anything else. Other than straight html of course, but that’s just too limiting. The morning’s keynote session talked about the “do’s and don’ts of mobile development, and if you’re just using html, you’ll end up with a bunch of don’ts (clunky interfaces that are a pain to use).
To make a really sweet phone app with a native look and feel without redoing the code using a separate API for each device, you need to use a framework for the front end. Something like JQuery Touch, DojoX Mobile or Sencha Touch provides the user with nice big buttons and the fat-finger pans and zooms that everyone is used to. I do a lot of ExtJS development so it would have been nice to see Sencha in action, but JQuery Touch is cool too and that’s what most of the demos were. These apps won’t work for the desktop but that was pie-in-the-sky anyway; the platforms are just too different to use the same interface.
- iOS (iPhones and iPads) – this was described as the best browser of the mobile devices with support for SVG overlays, geolocation, html 5, creating and editing vector graphics, etc.
- Blackberry Torch – this one’s a little more limited in that zooming in/out using a pinch, isn’t supported and it’s a little slower, but it does handle most of the other capabilities.
- Android – the Droid phones are more limited in certain things, especially since it doesn’t support SVG overlays. Vector graphics are rendered as part of the canvas so you can’t select an individual feature and manipulate it, although you can create features and add them. You also have to set a meta tag to disable gestures on the entire page so you can zoom in/out on a map object, but not the overall view.
So, back to what I want, which is the ability to run the same app on as many devices as possible; the way to go about it seems to be using something like Sencha Touch to build the interface and then hook the events and listeners to JavaScript API, which calls to ArcGIS server. Design the app for the most limited device, which surprisingly enough seems to be the Android, and go to town.
The JavaScript API works the same way as the rest of the Web API family – create a map object, create a layer object, create a feature object, add the feature to the layer, the layer to the map, etc. There are a lot of built-ins (way more than OpenLayers), but it’s pretty straight forward stuff once you get the hang of it, so I’m not going into it much here. But now at least I have a plan for building flexible mobile apps and know what tools I’d like to use when I get the time to make it happen.
The session also went into some pretty cool examples of using HTML 5 and CSS3, but I’m not getting caught up in that until it’s actually here. Quick note: there’s a site called CanIUse.com that tells you which devices support the really cutting edge stuff.
And there was a bonus! At the very end of the presentation they mentioned something called the Print REST API, which apparently takes the pain out of printing maps with vector overlays, external wms layers, text, etc. Exactly the stuff I’ve been doing in the open source world for the last couple of months. It doesn’t help with my current project, but I’m sure I’ll get a shot at it sooner or later.
In a separate session on Python, I also got a glimpse of using ArcPy to support template driven printing to PDFs, which is another of my current tasks (also using open source technology). So again, I can’t really use it yet, but I foresee great possibilities and hope to learn more about Python tomorrow.
Danny Bradshaw
Day 3 kicked off with an intriguing discussion with Michael King from Gartner Research concerning the pervasiveness and trends in mobile computing over the next few years. Although nobody has the magic 8-ball (especially in the ebb and flow of the mobile tech industry), he threw out some interesting stats:
- 214,000,000 tablet devices in the next few years
- 80% market penetration for smart phones in developed countries in the next few years
- 2013 – Mobile phones will overtake PCs for internet access.
- 2014 – 30% of users will use augmented reality with their mobile experience
Some other interesting sessions came from the Esri Prototype Labs and Esri Production Teams (i.e. those responsible for making sure they hit the deadlines). While I could write a book on cool stuff, I was particularly interested in an unconventional dynamic physics symbol, in which the bigger symbols would “bully” the smaller symbols and take their place on the map. The prototype team also demonstrated an interesting augmented reality app that used a sheet of paper with a specific “marker” that was replaced with an interactive map while video conferencing… think green screen.
The development teams/managers talked about the Esri internal development process. I was interested to see their strategies, which closely follows the Agile (Scrum) development process. ESRI loves Scrum and was evangelizing that development process. I’ll be honest, I was bored to tears as the discussion turned to their extensive… extensive QA processes, but be happy to know they’re thorough. Some interesting stats out of that session:
- 200 unique developers checking in code daily
- 95,000 source code files for ArcGIS Desktop, which takes 5 hours to compile (daily)
- AGS Desktop 9.0 = 6.9 million lines of code; AGS Desktop 10.0 = 15.97 million lines of code
Melinda Frost
Since I am all about mobile I am going to write this up on my iPhone! Of course it will be shorter because I did have to go to walk-in clinic for a sinus infection. Everyone here is super nice.
Anyway- back to business. Tuesday night at the meet the teams night, I ran into two of the developers for the 10.1 mobile SDK. So, of course, I drilled them about the problem I am having with the WPF map control ‘flickering’. People want it to behave like TomTom or Garmin. They told me that the 10.1 SDK for mobile will be significantly different. All the API will be pulling from a new core SDK. And they claim it will be WAY better than TomTom in that regard. I said ‘Great but I need that NOW’. I did leave my contact info with them so I can be in on the holistic testing for this. Wednesday I ‘tackled’ Martin and Jay- the head guys for the mobile SDK dev team. Again same answer. After I show them the best work-around I have come up with and I start to see some hope (breaking down) from them. They plan to take my code back and look into if that is something they can do sooner. Fingers crossed!
Other conference related info picked up is that if you have developed for Silverlight web app and/or WPF apps, then you are all ready to build a Windows 7 phone app. Same xaml and C# or VB.NET in back end. Good news for all you Silverlight and WPF developers.
Tommy Bramble
Day 3 started with the conference Keynote Speaker, Michael King, from Gartner Research. He talked about the past and future trends in mobile technology and how our lives will be impacted as the technology evolves. Context-aware computing will become the norm where our smart devices, and the services that power them, will know more about us then we do our self. The smart devices will become even more powerful and ‘aware’ through sensor driven data capture like facial recognition, better speech recognition, enhanced audio and video sensors, and other advanced sensors that require less direct user input to interact with the device. Mr. King also covered some do’s and do not’s of mobile application development and commented on how augmented reality will become a much more powerful tool as it evolves. We can expect to start seeing more ‘real world’ applications where augmented reality apps will assist people with work and other things in life instead of just being the ‘cool’ toy.
My first session of the day was ‘Advanced Development with the ArcGIS JavaScript API’. This session was almost entirely focused on mobile development with the JS API, although the session was not listed as mobile. The session probably would have attracted a larger audience had they actually listed the course under mobile. The presenters demonstrated building mobile friendly web apps using jQuery Mobile, Dojox.Mobile, and Sencha Mobile; all using the JS API for the mapping functionality. The presenters also briefly covered the HTML5 components that are available in most browsers that can also be leveraged in mobile web apps. In my opinion, there wasn’t much ‘advanced’ knowledge regarding the mobile development. The demos were very basic examples of wiring up a mobile web app. Maybe just the fact that it was ‘mobile’ was advanced. I did have to leave the session 10 minutes early to prepare for my Tech Support session with the Esri techs, and I was told the presenters did demonstrate a really cool drag-and-drop feature of the web app, but you’ll have to hear about that from Ben who was available for the entire session.
Next up was the ‘Building Secure Applications’ session. This session focused on securing your ArcGIS Server services and the web applications that consume them. The presenters first reviewed the correct procedures for securing the AGS services using users and roles, and then reviewed how to use the admin security tokens to get access to the secure services. The session also covered using proxies with your secure services and then taking the security to the next level by securing your application front-end (client). The out-of-the-box ASP.NET membership provider was used as the examples for creating the AGS server user and roles and for the application security, although a custom membership provider can be used in its place.
I sat in on the ‘Intro to ArcGIS API for Windows Phone’ next. This topic area was completely new to me, but I was able to walk away for this session with the basic principles of the Windows Phone development. A point the presenters emphasized repeatedly was that developing for the windows phone was no different than developing Silverlight applications. Most all the same tools and class libraries for building Silverlight apps are used for Windows Phone, with the exception of a few class libraries specific to the Windows Phone environment. The presenters also demoed some of their existing Windows Phone applications, like ArcGIS for Windows Phone and the AtoB Navigation application. The presenters also gave away a Windows Phone 7 at the end of the session to the person in the audience who could stump the crowd with a Silverlight/Windows Phone development question.
Next up was the most anticipated part of the day, the Dev Summit Party. Esri had a nice setup of games and entertainment as usual with the highlight of the event being the Dodgeball Tournament. GISi formed the team ‘Gone in 30 Seconds’. Luckily, we did not live up to that name and actually won our first match-up in the second round (after a first round bye), but sadly were knocked out of the tournament in the third round. I also took a shot at table tennis, but finished the night with a disappointing record of 1-4 in my match-ups. After my last competitor destroyed me by a score of 21-8, with a few of my coworkers watching, I decided to retire from table tennis and call it a night. All and all another great day at the conference.
Ben Taylor
I sat in on another Javascript API session. There is some pretty slick drag-and-drop functionality coming down the pipeline. The presenter showcased a file api by dragging an image directly from his file system and dropping it onto the map within the browser. I thought that was pretty cool until he dragged a csv file to his browser and the points along with the associated attribute data within the csv file appeared on his map. He also was able to add additional services by just dragging in the link of a rest endpoint from another browser and dropping it on the map. The only caveat at this point is they’ve only gotten the functionality working in FireFox and Chrome. They’re still working on getting this viable in IE9.
In addition they demoed a print tool for Javascript API that will probably be included in the next release. This tool is meant to be used until out-of-the-box exporting is made available in 10.1.
I also attended an advanced Flex session. This being my first dev summit, it turned out to be quite a treat to hear Mansour Raad present. He gave a lively presentation on how to best utilize the MVC pattern to develop Flex applications, so that they can easily be adjusted to fit web and mobile platforms.

Patrick Barnhart, could you give more informations about the Print REST API and also about your open-source work concerning printing.
I just finished a first version about a open-source PrintSOE:
http://www.arcgis.com/home/item.html?id=6809086326ea4c76bf026a32bb9dd698
Hi Tom,
The reference to the Print REST API came up briefly at the end of the Advanced Javascript API session, they showed that it supported vectors, text labeling, external wms layers – basically anything you could see in your map. I believe this functionality is being added to 10.1, which explains why information about it is hard to find. I don’t have any code examples but if it works the same way as the other APIs you could call it directly using a http request or through one of the other Web APIs (flex, silverlight, javascript). Their example, which I’m hoping will show up on the ESRI resources page along with the other demos from the summit, opened a separate window containing a ‘print friendly’ page. I know I’m being a little vague here but I really don’t have a lot of details.
I’m currently working on something similar to what you’ve done (which looks very cool) but I’m using OpenLayers, Mapserver/Mapscript and a C#.NET WCF Service. So, I collect all the map layers from the OpenLayers map object and send it to the WCF Service and recreate each layer as a transparent image that is then placed into a PDF using iTextSharp. There’s a number of C# pdf generation libraries, I picked iTextSharp because it allows me to find named elements in an existing pdf that I could use as a template.
So, looks like we’re all going down the same path here, which is not surprising, printing web maps seems to be lagging behind the rest of the technology. People still look at you like you’re crazy when you starting talking about printing large, high resolution maps from a web page. Another emerging option that I mentioned is using a Python GeoProcessing service (also accessible through REST) to do the same thing, I saw a demo of this and am hoping to get my hands on the code when it’s made available, it looked very promising – I can’t use it with my project since AGS isn’t part of the picture right now but maybe someday…
HTH,
Pat
Hello!
I’ve had to implement the same (drag’n'drop functionality) for graphic object using ArcGIS JavaScript API, probably it will be useful for somebody. It’s shown in my blog here – http://dotnetfollower.com/wordpress/2011/07/arcgis-javascript-api-how-to-implement-dragndropping-of-pushpin/
Thanks!