web appbuilder for arcgis - recent proceedings · 10 challenges for people building apps build apps...

62
Web AppBuilder for ArcGIS Customization and Extension Moxie Zhang Julie Powell @theMoxie @JuliePowellGIS

Upload: others

Post on 13-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Web AppBuilder for ArcGISCustomization and ExtensionMoxie Zhang Julie Powell

@theMoxie @JuliePowellGIS

Page 2: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Let’s talk about App Creation

Page 3: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

10 challenges for people building apps

Build apps without dependencies on developer skills

Easily maintain apps

Unified UX to build apps that work across multiple form factors and platforms

Understand how apps are used by end-users

Secure aps, their content and functionality

Deploy apps simply and securely

Monitor and control the use of premium services

Understand if the apps are effective at getting the job done

Quickly turn business requirements into usable apps

Page 4: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

A Traditional way to Build an App

Page 5: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

GUIBuilder

widgets

Themes

Stem App

config

An App

A different way to Build an App

Page 6: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Access Type

225,458Total AppBuilder Apps

14%Shared

15%Account

35%Public

36%Private

Page 7: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

App has changed…

Page 8: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

App Lifecycle is complex Apps are data

Apps are disposable

Apps are a conduit to understand your users

App

Page 9: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

App Lifecycle

conception

program

configure

test

deploy

use

track

revise

analyze

retire

design

Page 10: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

simply, app creation made easier

Builder

Page 11: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Create a WidgetIntroduce Web AppBuilder widgets and how to create a widget

Julie Powell

Create a Theme

Moxie Zhang

Moxie Zhang

What’s ComingWhat are the exciting new features and functions introduced recently

Agriculture

Invasive Weed

ArcGIS Online WAB Show Case

ArcGIS Online WAB Show Case

Boone County

Muscatine County

ArcGIS Online WAB Show Case

Introduction

Julie Powell

WAB Communities

Julie Powell

Q&A

Moxie Zhang

Julie Powell

Page 12: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Web AppBuilder for ArcGIS

Introduction

Page 13: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Samples Configurable Apps & Builders Widgets

Building Web Apps for Your OrganizationUsing the ArcGIS API for JavaScript

Page 14: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Web AppBuilder (Developer Edition)

Page 15: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Widget Theme

• Execution at run time

• Configure-in, not cut/paste

• Self sufficient and

distributable

• Need container, no coding

block

• Has programing framework

of container

• Applied at run time

• Configure-in, not modify

css

• Need container

• Self sufficient and

distributable

• Has programing framework

of container

Page 16: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Building blocks of apps

Widgets

Page 17: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Break the code into files

Styles

Scripts

Markuphttps://developers.arcgis.com/javascript/jshelp/intro_custom_dijit.html

Tutorial:

MyWidget.js

MyWidget.css

MyWidget.html

Page 18: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Inheriting from BaseWidget

A widget derived from the BaseWidget class

Page 19: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Dijit lifecycle Widget events

• postCreate

• startup

• …

• onOpen, onActive

• onClose, onDeActive

Page 20: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

BaseWidget Your job?

• App properties (name, icon,

localization)

• App config data

• Widget's config data

• Map object

• Widget state (open, closed,

active…)

• Events (open/signIn)

• Widget communication

• Widget UI (HTML/template)

• Widget config file (JSON)

• Widget styles (CSS)

• Localization

• Your unique business logic /

worklows (JavaScript)

Page 21: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Widget Files

MyWidget

Widget.js

css/

images/

nls/

setting/

manifest.json

styles.css

es-es/

icon.png

strings.js

config.json

Widget.html

Page 22: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Getting Started…

1. Download developer edition

2. Connect to organization or portal

3. Copy widget template

4. Run the builder

5. Create an app with your widget

6. Build your widget in the app

Page 23: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Configure your custom widget inside the builder

Building a UI for the user

• Setting.js

- Config info

- getConfig, setConfig

• Setting.html

• Usual localization pattern

• css

Page 24: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Widget to Widget Data Sharing / Communication…using the DataStore

• Get all data, or..

• Data from a specific widget

• Handled through events

• Widget loading order handled

• Can load another widget:this.openWidgetById

Page 25: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Extra data source

• Configure a layer or

statistics

• Configure the refresh

interval of the data

• Currently supported by

InfoGraphic widget

Page 26: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Feature Actions

• Your widget can work with selected feature sets

• Example: Zoom To, Export to CSV, send to GP

Page 27: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Feature Actions

Page 28: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Feature Actions

“myFeatureAction.js”

isFeatureSupported: function(featureSet){ return…

onExecute: function(featureSet){…}

Widget.js

manifest.json

"featureActions": [{

"name": "ShowVertex",

"uri": “myFeatureAction"

}]

Do something

Page 29: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build
Page 30: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

App in style with personality

Theme

Page 31: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Theme is you

Page 32: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Because you are special

Page 33: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Your apps deserve to

via creating your own theme

Page 34: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

A menu of tools

Shortcut items

Map, of cause

Interactive content

The “player”

Page 35: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Theme Convention and Defaulting

A Theme

images/

layouts/

panels/

styles/

manifest.json

icon.jpg

a-layout-name/ icon.jpg, config.json

a-panel-name/ images/

Panel.js, Panel.htmla-style-name/

widgets/

Page 36: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Create a ThemeEmbrace your own style

Page 37: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

My pretty

layout

My cool

color

FF8000

Page 38: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Evolution with excitements

What’s Coming

Page 39: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Web AppBuilder is greatly appreciated by our users..

however, we can’t stand still in this fast moving world…

Page 40: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

10 challenges for people building apps

Build apps without dependencies on developer skills

Easily maintain apps

Unified UX to build apps that work across multiple form factors and platforms

Understand how apps are used by end-users

Secure aps, their content and functionality

Deploy apps simply and securely

Monitor and control the use of premium services

Understand if the apps are effective at getting the job done

Quickly turn business requirements into usable apps

Page 41: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

less coding

Limited needs forgrand-up dev works

added valuebetter UX

managedfaster

simpler

cheaper

Page 42: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

What Esri Has

Configurable App simplifies the app creation

• Web AppBuilder (WAB), as a tool, has significantly simplified the

app creation process

• Since the first WAB release, in two years, more than 220,000 apps

are created and hosted on ArcGIS Online

• However, as a tool, WAB can only partially meet the customer’s requirements for apps (in previous slides)

• Esri app creation needs to evolve into being a system to encapsulate the whole app stack and requirements

• Hence …

Page 43: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

appbuilder.arcgis.com

Page 44: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

What is App Builder for ArcGIS… a web user experience for creating and managing app through the app’s lifecycle

… is the evolution of Web AppBuilder, an integrated and unified web user experience

Managing app’s lifecycle

Configuring and creating apps

Analyzing and reporting the use pattern of the apps

Allowing integration of other app tools

for

Page 45: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Anatomy of an ArcGIS appAn App is a living and breathing being made out of…

Feedback (comments, rating, issues, etc.)

Function models (i.g. widgets)

WebScenes

Themes/Skins

Configuration

Source code and revisions

WebMaps

Captured usage data

Authorization

Premium Services

Page 46: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

App Lifecycle

conception

program

configure

test

deploy

use

track

revise

analyze

retire

design

Page 47: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

App Lifecycle is complex Apps are data

Apps are disposable Apps are a conduit to understand your users

App

Page 48: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

The Solution for the Whole App StackGo beyond configurable apps

Evolving WAB from a tool to be a system to

manage the full App lifecycle

CreationTool

App

Creator

User

A System

App

Creator

User

Developer Admin

Page 49: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Web AppBuilder as a Tool (tool centric)

WAB

Widget GUI Builder

Theme Stem App

app

before

Page 50: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

appbuilder.arcgis.com (app centric)

Extensions (widgets/themes)

App

Assets (images/icons/…)Unified Builder UX

App Lifecycle Management

Resources (maps…)

Statistics

after

Page 51: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

appbuilder.arcgis.com UI/UX

Page 52: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

appbuilder.arcgis.com UI/UX

Page 53: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

appbuilder.arcgis.com UI/UX

Page 54: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

appbuilder.arcgis.com UI/UX

Page 55: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

For you and by you

Community

Page 56: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Documentation

Online help documentation

http://doc.arcgis.com/en/web-appbuilder

Developer Edition help documentation

http://developers.arcgis.com/web-appbuilder

Page 57: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

https://geonet.esri.com/community/gis/web-gis/web-appbuilder

https://geonet.esri.com/groups/web-app-builder-custom-widgets

Page 58: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

https://training.esri.com

Page 59: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Other Online Resources

• Esri Solutions Widgets:

- https://github.com/Esri/solutions-webappbuilder-widgets

• Lists of Widgets:

- http://codesharing.arcgis.com/

- http://esri-es.github.io/Web-AppBuilder-Custom-Widgets/

- https://github.com/gavinr/wab-widget-search

• “Awesome ArcGIS” https://github.com/hhkaos/awesome-arcgis

Page 60: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

http://esriurl.com/ds2017videos

Page 61: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build

Please Take Our Survey on the Esri Events App!

Select the session you attended

Scroll down to find the survey

Complete Answersand Select “Submit”

Download the Esri Events app and find

your event

Page 62: Web AppBuilder for ArcGIS - Recent Proceedings · 10 challenges for people building apps Build apps without dependencies on developer skills Easily maintain apps Unified UX to build