{"id":71841,"date":"2016-05-03T10:01:33","date_gmt":"2016-05-03T10:01:33","guid":{"rendered":"http:\/\/www.esri.com\/arcgis-blog\/products\/product\/uncategorized\/its-here-arcgis-api-for-javascript-4-0-released\/"},"modified":"2018-05-31T19:59:51","modified_gmt":"2018-05-31T19:59:51","slug":"its-here-arcgis-api-for-javascript-4-0-released","status":"publish","type":"blog","link":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released","title":{"rendered":"It&#8217;s here! ArcGIS API for JavaScript 4.0 Released"},"author":5111,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","format":"standard","meta":{"_acf_changed":false,"_searchwp_excluded":""},"categories":[37101],"tags":[24921,27491],"industry":[],"product":[36831,36601],"class_list":["post-71841","blog","type-blog","status-publish","format-standard","hentry","category-announcements","tag-javascript","tag-jsapi4","product-js-api-arcgis","product-developers"],"acf":{"short_description":"It is with great pleasure we announce the first release of the 4.x series of the ArcGIS API for JavaScript. You can now starting building...","flexible_content":[{"acf_fc_layout":"content","content":"<p>It is with great pleasure we announce the first release of the 4.x series of the ArcGIS API for JavaScript. You can now starting building web apps with the production release of the ArcGIS API 4.0 for JavaScript!<\/p>\n<h1>Version 4.0 and the 4.x series<\/h1>\n<p>The 4.x series represents a brand new edition of the JavaScript API that Esri is launching alongside the 3.x series. The goal of the 4.x series is to reimagine the API in terms of its <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/system-requirements\/index.html\">support for both 2D and 3D<\/a>, its <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/discover\/index.html#simpleAPI\">ease of use as a JavaScript API<\/a>, its ability to work with map and layer web resources stored as items in the ArcGIS geoinformation model and its support for building engaging and elegant user experiences.<br \/>\n<!--more--><\/p>\n<p>Version 4.0 allows developers to build full featured 3D applications powered by <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-WebScene.html\">Web Scenes<\/a> that can include rich information layers such as\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/scene-toggle-elevation\/index.html\">terrain<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/get-started-widgets\/index.html\">basemaps<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-imagery-popup\/index.html\">imagery<\/a>,\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/visualization-vv-size\/index.html\">features<\/a>, and\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-scenelayer-vv-color\/index.html\">3D objects<\/a>\u00a0that can be streamed in via tile, feature, image and scene services. In addition, 4.0 also includes core capabilities for working with 2D\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-WebMap.html\">Web Maps<\/a>\u00a0and\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-layers-Layer.html\">Layers<\/a>\u00a0that can be used to build compelling 2D applications using the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/discover\/index.html\">new programming pattern<\/a>.<\/p>\n<p>Developers will find the programming patterns for working in 2D and 3D to be pleasantly similar if not identical. Not all 2D layers and capabilities supported in the 3.x API are supported in 4.0 (the initial 4.x release). You can reference the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/choose-version\/index.html\">Choosing a version guide<\/a> to help you determine which API version to use for building your app, based on your requirements.<\/p>\n<p>Here are a few of the capabilities of the API that we are excited about.<\/p>\n<h1>Make 3D maps as easily as 2D maps<\/h1>\n<p>The API presents a unified and elegant implementation for both 2D and 3D application development. With the introduction of map views, developers can render a map with a 2D view or a 3D view (or both) with just a few lines of code. In many cases, you can use the same code agnostically of whether the view is 2D or 3D because both views share the same implementation for layers, renderers, tasks, geometry, symbology, pop\u00acups, navigation, and more. 3D adds 3D-specific concepts such as 3D symbols (think of a billboard symbol rather than a flat symbol on the ground), environment (atmosphere and lighting), and the camera. To learn more, see <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/get-started-sceneview\/index.html\">Getting started with 3D scenes<\/a> and <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/get-started-mapview\/index.html\">Getting started with 2D maps<\/a>.<\/p>\n<div>\n<div style=\"float: left; width: 50%;\">\n<pre style=\"font-family: Consolas,'Andale Mono','Lucida Console',Monaco,'Courier New',Courier,monospace;\"><code style=\"line-height: 1.4rem; font-family: Consolas,'Andale Mono','Lucida Console',Monaco,'Courier New',Courier,monospace; color: #595959; overflow: auto; font-size: .85em;\"><span style=\"color: #333; font-weight: bold;\">var<\/span> map = <span style=\"color: #333; font-weight: bold;\">new<\/span> <span style=\"color: #0086b3;\">Map<\/span>({\r\n  basemap: <span style=\"color: #d14;\">\"dark-gray\"<\/span>,\r\n  layers: [imageryLayer]\r\n});\r\n\r\n<span style=\"color: #333; font-weight: bold;\">var<\/span> view = <span style=\"color: #333; font-weight: bold;\">new<\/span> SceneView({\r\n  container: <span style=\"color: #d14;\">\"viewDiv\"<\/span>,\r\n  map: map\r\n});\r\n<\/code><\/pre>\n<\/div>\n<div style=\"float: right; width: 50%;\">\n<div><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/get-started-sceneview\/index.html\"><img decoding=\"async\" style=\"padding: 0;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/get-started-sceneview-2.png\" \/><\/a><\/div>\n<\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<div style=\"padding-bottom: 2.55rem;\">\n<div style=\"width: 100%;\"><span style=\"text-align: center;\"><a href=\"http:\/\/juliepowell.github.io\/playground\/sceneWithImagery.html\">SceneView with an ocean temperature imagery layer<\/a><\/span><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<div style=\"clear: both;\"><\/div>\n<div>\n<div style=\"float: left; width: 50%;\">\n<pre style=\"font-family: Consolas,'Andale Mono','Lucida Console',Monaco,'Courier New',Courier,monospace;\"><code style=\"line-height: 1.4rem; font-family: Consolas,'Andale Mono','Lucida Console',Monaco,'Courier New',Courier,monospace; color: #595959; overflow: auto; font-size: .85em;\"><span style=\"color: #333; font-weight: bold;\">var<\/span> map = <span style=\"color: #333; font-weight: bold;\">new<\/span> <span style=\"color: #0086b3;\">Map<\/span>({\r\n  basemap: <span style=\"color: #d14;\">\"dark-gray\"<\/span>,\r\n  layers: [imageryLayer]\r\n});\r\n\r\n<span style=\"color: #333; font-weight: bold;\">var<\/span> view = <span style=\"color: #333; font-weight: bold;\">new<\/span> MapView({\r\n  container: <span style=\"color: #d14;\">\"viewDiv\"<\/span>,\r\n  map: map\r\n});\r\n<\/code><\/pre>\n<\/div>\n<div style=\"float: right; width: 50%;\">\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/get-started-mapview\/index.html\"><img decoding=\"async\" style=\"padding: 0;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/get-started-mapview-2.png\" \/><\/a><\/p>\n<\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<div style=\"padding-bottom: 2.55rem;\">\n<div style=\"width: 100%;\"><span style=\"text-align: center;\"><a href=\"https:\/\/juliepowell.github.io\/playground\/mapWithImagery.html\">MapView with an ocean temperature imagery layer<\/a><\/span><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<h1>Easily integrate with your web GIS<\/h1>\n<p>Many developers have adopted the pattern of authoring a web map in ArcGIS Online and Portal for ArcGIS and consuming it in an app. They create beautiful visualizations of their data, configure pop-ups, and setup bookmarks, and then load the map into their app simply referencing the web map&#8217;s ID. With the 4.0 API, you can follow the same pattern with 3D maps using web scenes. This is accomplished by styling your map in ArcGIS Online or Portal for ArcGIS, saving it as a web scene, and then loading it in your app using the web scene&#8217;s ID.<\/p>\n<div>\n<div style=\"float: left; width: 50%;\">\n<pre style=\"font-family: Consolas,'Andale Mono','Lucida Console',Monaco,'Courier New',Courier,monospace;\"><code style=\"line-height: 1.4rem; font-family: Consolas,'Andale Mono','Lucida Console',Monaco,'Courier New',Courier,monospace; color: #595959; overflow: auto; font-size: .85em;\"><span style=\"color: #333; font-weight: bold;\">var<\/span> scene = <span style=\"color: #333; font-weight: bold;\">new<\/span> WebScene({\r\n  portalItem: { \r\n    id: <span style=\"color: #d14;\">\"3a9976baef9240ab8645ee25c7e9c096\"<\/span>\r\n  }\r\n});\r\n<span style=\"color: #333; font-weight: bold;\">var<\/span> view = <span style=\"color: #333; font-weight: bold;\">new<\/span> SceneView({\r\n  map: scene,\r\n  container: <span style=\"color: #d14;\">\"viewDiv\"<\/span>\r\n});<\/code><\/pre>\n<\/div>\n<div style=\"float: right; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/webscene-basic\/index.html\"><img decoding=\"async\" style=\"padding: 0;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/webscene-basic.png\" \/><\/a><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<div style=\"padding-bottom: 2.55rem;\">\n<div style=\"float: left;\"><span style=\"text-align: center;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/webscene-basic\/index.html\">Winter Sun Exposure &#8211; WebScene<\/a><\/span><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<h1>Author, manage and mash-up layers using layer items<\/h1>\n<p>Layer items are similar to web maps in that they allow developers to setup initial extent, rendering, filtering, pop-ups, and other settings. In contrast to web maps, which, consist of the entire map, layer items represent individual map layers. This allows you to choose the individual layers needed for each application. If you are developing in a team environment, others can also consume your layers, which are represented in a meaningful and consistent way. The 4.0 API lets you <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/portalitem-dragndrop\/index.html\">load layers by referencing the layer item&#8217;s ID<\/a>. For more information, see the\u00a0<a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-portal-Portal.html\">Portal<\/a>\u00a0class in the API Reference.<\/p>\n<div>\n<div style=\"float: left; width: 50%;\"><a href=\"http:\/\/www.arcgis.com\/home\/item.html?id=8444e275037549c1acab02d2626daaee\"><img decoding=\"async\" style=\"padding: 0;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/layer-item-1.png\" \/><\/a><\/div>\n<div style=\"float: right; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-portal\/index.html\"><img decoding=\"async\" style=\"padding: 0;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/layer-item-2.png\" \/><\/a><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<div style=\"padding: 0.55rem 0 2.55rem 0;\">\n<div style=\"float: left; width: 50%;\"><span style=\"text-align: center;\"><a href=\"http:\/\/www.arcgis.com\/home\/item.html?id=8444e275037549c1acab02d2626daaee\">Politics and Poverty<\/a><\/span><\/div>\n<div style=\"float: right; width: 50%;\"><span style=\"text-align: center;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-portal\/index.html\">Create a layer from a portal item<\/a><\/span><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<h1>Build a great user experience<\/h1>\n<p>The 4 API was designed to give you the tools to build an app that has a polished user interface and responsive design. Developer-friendly widgets, <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/view-ui\/index.html\">flexible UI placement<\/a>, and the API&#8217;s new pop-up window are a couple of the capabilities in this new API that will help you build a slick app suitable for any screen size.<\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Popup.html\"><img decoding=\"async\" class=\"alignnone size-full\" style=\"padding: 0px; background: transparent;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/api-reference-popup.png\" alt=\"\" \/><\/a><br \/>\n<span style=\"text-align: center;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/esri-widgets-Popup.html\">Create rich pop-up windows using the APIs new pop-up implementation<\/a><\/span><\/p>\n<p>API widgets have been built from the ground up with a clean user experience and can be easily placed relative to one of the corners or offset from the edge. You can use widgets as-is or style them using CSS to change specific aspects of the widget such as button color. You can even take it a step further and completely replace the widget UI using the library of your choice such as <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/widgets-frameworks-react\/index.html\">React<\/a> or jQuery.\u00a0<a href=\"http:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/get-started-widgets\/index.html\">Learn more about widgets<\/a>.<\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/styling\/index.html\"><img decoding=\"async\" class=\"alignnone size-full\" style=\"padding: 0px; background: transparent;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/custom-ui-2.png\" alt=\"\" \/><\/a><br \/>\n<span style=\"text-align: center;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/styling\/index.html\">Theme all aspects of your application<\/a><\/span><\/p>\n<h1>Create thematic visualizations of your data<\/h1>\n<p>Turn raw data into information with simple layer styling and data-driven visualizations in 2D and 3D.\u00a0\u00a0You can thematically represent data such as population or represent real-world values such as the width of a tree canopy or the height of a building. This is achieved by rendering features&#8217;\u00a0color, size and\/or opacity based on one or more attribute values.<\/p>\n<div>\n<div style=\"float: left; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-scenelayer-vv-color\/index.html\"><img decoding=\"async\" class=\"alignnone size-full\" style=\"padding: 0px; background: transparent;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/layers-scenelayer-vv-color2.png\" alt=\"\" \/><\/a><\/div>\n<div style=\"float: right; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/visualization-trees-2d\/index.html\"><img decoding=\"async\" class=\"alignnone size-full\" style=\"padding: 0px; background: transparent;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/visualization-trees-2d2.png\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<div style=\"padding-bottom: 2.55rem;\">\n<div style=\"float: left; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-scenelayer-vv-color\/index.html\">Thematically visualize buildings using continuous color<\/a><\/div>\n<div style=\"float: right; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/visualization-trees-2d\/index.html\">Scale feature sizes based on real world sizes<\/a><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<h1>Create realistic visualizations of your data<\/h1>\n<p>Build cityscapes that accurately depict the geography of your urban landscape. \u00a0Use ArcGIS to publish realistic content such as textured buildings, trees, or signs and consume them using the new ArcGIS SceneLayer. \u00a0The SceneLayer can be used to display very large data optimized for display at any view. \u00a0Your 3D views come alive as you drape your content on top of Esri&#8217;s global elevation layer. \u00a0In addition, the <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/scene-environment\/index.html\">3D environment<\/a> can be controlled to include the sun and stars positioned correctly at any date or time, the visual effect of the earth&#8217;s atmosphere, and the effects of the sun as it casts shadows across your buildings.<\/p>\n<div>\n<div style=\"float: left; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-scenelayer-texture\/index.html\"><img decoding=\"async\" class=\"alignnone size-full\" style=\"padding: 0px; background: transparent;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/layers-scenelayer-texture2.png\" alt=\"\" \/><\/a><\/div>\n<div style=\"float: right; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/sceneview-stars\/live\/index.html\"><img decoding=\"async\" class=\"alignnone size-full\" style=\"padding: 0px; background: transparent;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/jsapi_atmosphere_400x261.gif\" alt=\"\" \/><\/a><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<div style=\"padding-bottom: 2.55rem;\">\n<div style=\"float: left; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/layers-scenelayer-texture\/index.html\">Realistic view of downtown San Diego<\/a><\/div>\n<div style=\"float: right; width: 50%;\"><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/sceneview-stars\/live\/index.html\">Set realistic environment settings including lighting, shadows and stars<\/a><\/div>\n<\/div>\n<div style=\"clear: both;\"><\/div>\n<h1>Use the local geometry engine<\/h1>\n<p>The API&#8217;s local geometry engine enables you to perform operations such as buffer, measurement, and spatial intersect without having to make calls to the server \u2013 this means that apps can display immediate feedback to the user, enabling you to build highly interactive apps.<\/p>\n<h1><a href=\"https:\/\/developers.arcgis.com\/javascript\/\">Check it out<\/a><\/h1>\n<p>Along with a brand new exciting JavaScript API, we are releasing a completely re-engineered web site to go along with the ArcGIS API for JavaScript 4.0 release. The new web site offers a responsive design, integrated search experience and enhanced API Reference.<\/p>\n<p><a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/index.html\"><img decoding=\"async\" class=\"alignnone size-full\" style=\"padding: 0px; background: transparent;\" src=\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2016\/05\/sdk-4.0.png\" alt=\"\" \/><\/a><\/p>\n<p>The SDK site offers a wide variety of <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/sample-code\/index.html\">samples<\/a>, <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/index.html\">conceptual documentation<\/a>, and a rich <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/api-reference\/index.html\">API reference<\/a> to help you get started building your first app with 4.0. The documentation is geared towards developers new to Esri&#8217;s JavaScript API, as well as developers that are familiar with 3.x and are <a href=\"https:\/\/developers.arcgis.com\/javascript\/latest\/guide\/choose-version\/index.html\">considering migrating to 4.0<\/a>.<\/p>\n<p>As always, connect with other ArcGIS developers and engage with the Esri team on GeoNet. Happy coding!<\/p>\n"}],"authors":[{"ID":5111,"user_firstname":"Lloyd","user_lastname":"Heberlie","nickname":"heberlie","user_nicename":"heberlie","display_name":"Lloyd Heberlie","user_email":"lheberlie@esri.com","user_url":"","user_registered":"2018-03-02 00:16:44","user_description":"Working daily to elevate user happiness about reading the ArcGIS Maps SDK for JavaScript documentation. Occasionally blogging about the ArcGIS Maps SDK for JavaScript, and technical presenter at the Esri Developer Summit and User's Conferences. A Product Engineer on the Esri ArcGIS Maps SDK for JavaScript team.","user_avatar":"<img alt='' src='https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&#038;d=blank&#038;r=g' srcset='https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=192&#038;d=blank&#038;r=g 2x' class='avatar avatar-96 photo' height='96' width='96' loading='lazy' decoding='async'\/>"},{"ID":4811,"user_firstname":"Bjorn","user_lastname":"Svensson","nickname":"bjorn","user_nicename":"bjorn","display_name":"Bj\u00f6rn Svensson","user_email":"bsvensson@esri.com","user_url":"https:\/\/developers.arcgis.com\/javascript\/","user_registered":"2018-03-02 00:16:26","user_description":"20+ years of experience with web mapping. Currently lead project engineer for the ArcGIS Maps SDK for JavaScript development team at Esri.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Bjorn_Svensson_beard_squarish_2000.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"},{"ID":4271,"user_firstname":"Julie","user_lastname":"Powell","nickname":"Julie Powell","user_nicename":"julie-powell","display_name":"Julie Powell","user_email":"julie_powell@esri.com","user_url":"","user_registered":"2018-03-02 00:15:51","user_description":"Julie Powell is Principal Product Manager for Esri's web development technologies. She works to ensure developers can be successful in building state of the art, purposeful solutions using ArcGIS software. \r\nJulie brings 20 years of experience working with global leaders such as Hewlett-Packard and Esri, delivering a variety of software solutions for both the enterprise and consumer markets.","user_avatar":"<img data-del=\"avatar\" src='https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2022\/03\/PhotoRoom-20220321_101413-3-213x200.png' class='avatar pp-user-avatar avatar-96 photo ' height='96' width='96'\/>"}],"related_articles":"","card_image":false,"wide_image":false},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.9 (Yoast SEO v25.9) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>It&#039;s here! ArcGIS API for JavaScript 4.0 Released<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"It&#039;s here! ArcGIS API for JavaScript 4.0 Released\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released\" \/>\n<meta property=\"og:site_name\" content=\"ArcGIS Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/esrigis\/\" \/>\n<meta property=\"article:modified_time\" content=\"2018-05-31T19:59:51+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@ESRI\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":[\"Article\",\"BlogPosting\"],\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released\"},\"author\":{\"name\":\"Lloyd Heberlie\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/03caa527c3892a4e919fcf6abab2aace\"},\"headline\":\"It&#8217;s here! ArcGIS API for JavaScript 4.0 Released\",\"datePublished\":\"2016-05-03T10:01:33+00:00\",\"dateModified\":\"2018-05-31T19:59:51+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released\"},\"wordCount\":8,\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"keywords\":[\"JavaScript\",\"jsapi4\"],\"articleSection\":[\"Announcements\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released\",\"name\":\"It's here! ArcGIS API for JavaScript 4.0 Released\",\"isPartOf\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\"},\"datePublished\":\"2016-05-03T10:01:33+00:00\",\"dateModified\":\"2018-05-31T19:59:51+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.esri.com\/arcgis-blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"It&#8217;s here! ArcGIS API for JavaScript 4.0 Released\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#website\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"name\":\"ArcGIS Blog\",\"description\":\"Get insider info from Esri product teams\",\"publisher\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#organization\",\"name\":\"Esri\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"contentUrl\":\"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png\",\"width\":400,\"height\":400,\"caption\":\"Esri\"},\"image\":{\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/esrigis\/\",\"https:\/\/x.com\/ESRI\",\"https:\/\/www.linkedin.com\/company\/5311\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/03caa527c3892a4e919fcf6abab2aace\",\"name\":\"Lloyd Heberlie\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g\",\"caption\":\"Lloyd Heberlie\"},\"description\":\"Working daily to elevate user happiness about reading the ArcGIS Maps SDK for JavaScript documentation. Occasionally blogging about the ArcGIS Maps SDK for JavaScript, and technical presenter at the Esri Developer Summit and User's Conferences. A Product Engineer on the Esri ArcGIS Maps SDK for JavaScript team.\",\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/lloydheberlie\",\"https:\/\/x.com\/lheberlie\"],\"url\":\"https:\/\/www.esri.com\/arcgis-blog\/author\/heberlie\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"It's here! ArcGIS API for JavaScript 4.0 Released","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released","og_locale":"en_US","og_type":"article","og_title":"It's here! ArcGIS API for JavaScript 4.0 Released","og_url":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released","og_site_name":"ArcGIS Blog","article_publisher":"https:\/\/www.facebook.com\/esrigis\/","article_modified_time":"2018-05-31T19:59:51+00:00","twitter_card":"summary_large_image","twitter_site":"@ESRI","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":["Article","BlogPosting"],"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released#article","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released"},"author":{"name":"Lloyd Heberlie","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/03caa527c3892a4e919fcf6abab2aace"},"headline":"It&#8217;s here! ArcGIS API for JavaScript 4.0 Released","datePublished":"2016-05-03T10:01:33+00:00","dateModified":"2018-05-31T19:59:51+00:00","mainEntityOfPage":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released"},"wordCount":8,"publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"keywords":["JavaScript","jsapi4"],"articleSection":["Announcements"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released","url":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released","name":"It's here! ArcGIS API for JavaScript 4.0 Released","isPartOf":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#website"},"datePublished":"2016-05-03T10:01:33+00:00","dateModified":"2018-05-31T19:59:51+00:00","breadcrumb":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.esri.com\/arcgis-blog\/"},{"@type":"ListItem","position":2,"name":"It&#8217;s here! ArcGIS API for JavaScript 4.0 Released"}]},{"@type":"WebSite","@id":"https:\/\/www.esri.com\/arcgis-blog\/#website","url":"https:\/\/www.esri.com\/arcgis-blog\/","name":"ArcGIS Blog","description":"Get insider info from Esri product teams","publisher":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.esri.com\/arcgis-blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.esri.com\/arcgis-blog\/#organization","name":"Esri","url":"https:\/\/www.esri.com\/arcgis-blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","contentUrl":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2018\/04\/Esri.png","width":400,"height":400,"caption":"Esri"},"image":{"@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/esrigis\/","https:\/\/x.com\/ESRI","https:\/\/www.linkedin.com\/company\/5311\/"]},{"@type":"Person","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/03caa527c3892a4e919fcf6abab2aace","name":"Lloyd Heberlie","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.esri.com\/arcgis-blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/df342931f2b50f8d00850f6dee67142f65c9e1d4c1911952db30cc94ce36fde7?s=96&d=blank&r=g","caption":"Lloyd Heberlie"},"description":"Working daily to elevate user happiness about reading the ArcGIS Maps SDK for JavaScript documentation. Occasionally blogging about the ArcGIS Maps SDK for JavaScript, and technical presenter at the Esri Developer Summit and User's Conferences. A Product Engineer on the Esri ArcGIS Maps SDK for JavaScript team.","sameAs":["https:\/\/www.linkedin.com\/in\/lloydheberlie","https:\/\/x.com\/lheberlie"],"url":"https:\/\/www.esri.com\/arcgis-blog\/author\/heberlie"}]}},"text_date":"May 3, 2016","author_name":"Multiple Authors","author_page":"https:\/\/www.esri.com\/arcgis-blog\/products\/announcements\/announcements\/its-here-arcgis-api-for-javascript-4-0-released","custom_image":"https:\/\/www.esri.com\/arcgis-blog\/app\/uploads\/2025\/08\/Newsroom-Keyart-Wide-1920-x-1080.jpg","primary_product":"ArcGIS Maps SDK for JavaScript","tag_data":[{"term_id":24921,"name":"JavaScript","slug":"javascript","term_group":0,"term_taxonomy_id":24921,"taxonomy":"post_tag","description":"","parent":0,"count":151,"filter":"raw"},{"term_id":27491,"name":"jsapi4","slug":"jsapi4","term_group":0,"term_taxonomy_id":27491,"taxonomy":"post_tag","description":"","parent":0,"count":111,"filter":"raw"}],"category_data":[{"term_id":37101,"name":"Announcements","slug":"announcements","term_group":0,"term_taxonomy_id":37101,"taxonomy":"category","description":"","parent":0,"count":1957,"filter":"raw"}],"product_data":[{"term_id":36831,"name":"ArcGIS Maps SDK for JavaScript","slug":"js-api-arcgis","term_group":0,"term_taxonomy_id":36831,"taxonomy":"product","description":"","parent":36601,"count":361,"filter":"raw"},{"term_id":36601,"name":"Developers","slug":"developers","term_group":0,"term_taxonomy_id":36601,"taxonomy":"product","description":"","parent":0,"count":761,"filter":"raw"}],"primary_product_link":"https:\/\/www.esri.com\/arcgis-blog\/?s=#&products=js-api-arcgis","_links":{"self":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/71841","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog"}],"about":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/types\/blog"}],"author":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/users\/5111"}],"replies":[{"embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/comments?post=71841"}],"version-history":[{"count":0,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/blog\/71841\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/media?parent=71841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/categories?post=71841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/tags?post=71841"},{"taxonomy":"industry","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/industry?post=71841"},{"taxonomy":"product","embeddable":true,"href":"https:\/\/www.esri.com\/arcgis-blog\/wp-json\/wp\/v2\/product?post=71841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}