What’s New in the ArcGIS API for JavaScript

Jeremy Bartley, Kelly Hutchins, Derek Swingley Agenda

• API Overview • 10.1 Printing • 10.1 Dynamic Layers • Editor Enhancements • Portal API • HTML5 • Road Ahead - Clustering - Web Tile Layer

JSAPI Overview ArcGIS JavaScript APIs – Why JavaScript?

• JavaScript is one of the most used programming languages in the world.

• Applications run in browser - Desktop and Mobile (iOS, Android, …)

• JS Frameworks abstract away the browser complexity - YUI, Dojo, EXTJS, jQuery

• Accessible programming language

• IDE’s are getting better. , Notepad ++, Visual Studio

• Multiple development patterns supported Race for the fastest browser – HTML5

• JavaScript Engine - Just in time compilation to byte code - Faster property access - Efficient garbage collection

• Graphics engine improvements

• DOM improvements

• CSS3

ArcGIS JavaScript API Status

• Fast development cycle - Initial Release May 2008 - Current Version 2.8—released March 26th, 2012

• 2.8 works with ArcGIS Server 10 and 9.3 (also works with 10.1)

• When going from one version to the next we try not to break compatibility

• Older versions are set in stone and will not change - 1.0 through 2.8

Core Library

• Map control • Support for Webmap • Layers – Tiled, Dynamic, FeatureLayer, WMS, WMTS, KML, Graphics • Graphics • Tasks – GP, Network, Geometry, Query, Locator • Geometry • Symbology – ArcGIS Server Symbology • Toolbars – Edit, Draw, Navigation Widgets 10.1 Printing Print Service

• Stateless print utility service that comes with 10.1

• JSAPI includes a PrintTask and a Print Widget 10.1 DynamicLayers Dynamic Layers allow the client to…

• Change Renderers

• Reorder Layers

• Add Layers from registered workspaces on the server Editor Enhancements Editing

Editor Tracking, Ownership based Access, Editing Service Capabilities, Portal API Portal API

• Simple API for working the ArcGIS for Portal API - On Premise or ArcGIS Online

• Supports: - Connecting to your Portal - Querying for items - Querying for Groups - Accessing user content - Get Notifications, comments HTML5 HTML5 components in (or soon to be in) the JSAPI

Cross Origin Resource Canvas (pixel control CSS3 Transitions Sharing and android graphics)

High performance browsers!

CPU Intensive Operations (asynch data processing, client geometric operations) CSS 3D Transforms What we are teaching app developers

Geolocation API Web Storage & Offline Web Apps (app cache)

File API, Drag and Drop API Road Ahead Dojo 1.7

• Dojo 1.7 supports AMD (Asynchronous Module Definition) - An efficient way to define and load JavaScript modules

- Module and its dependencies are loaded asynchronously

- Interoperable: AMD modules can be loaded in JS environments outside the browser: NodeJS

Release Notes for Dojo 1.7: http://dojotoolkit.org/reference-guide/1.7/releasenotes/1.7. Dojo 1.7

• At version 2.9, ArcGIS API for JavaScript will use Dojo 1.7

• Your applications will continue to work unmodified.

• You can define custom modules and widgets in AMD and load them into your apps using JSAPI.

• Esri modules will not be fully AMD compliant at 2.9 but will be in a future version.

Try it out now! http://servicesbeta.esri.com/jsapi/arcgis/2.9 http://servicesbeta.esri.com/jsapi/arcgis/2.9compact Future API enhancements

• Clustering

• Web Tile Layer

• Out of the box basemaps, geocoding widget and task

• Enhancements to Portal API

• More widgets: gauge, indicators

• GraphicsLayer as base layer