web appbuilder for arcgis -...

40
Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George Bochenek and Gavin Rehkemper esriurl.com/wabtools2017 1 / 40

Upload: duongkhanh

Post on 27-Feb-2019

247 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Web AppBuilder for ArcGIS:Advanced Development Tools and Techniques

George Bochenek and Gavin Rehkemper

esriurl.com/wabtools2017

1 / 40

Page 3: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

What is Web AppBuilder?

3 / 40

Page 4: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Your browser does not support the video tag.

4 / 40

Page 5: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

When to use Web AppBuilderGood for:

Multi-purpose apps that need to run on multiple devicesCreating a suite of custom apps with consistent style/behaviorEmpowering non-devlopers to create apps

Other frameworks/templates might be better for:Specific, custom web apps, with specialized workflowsWhen there is a template that does almost all of app functionality

5 / 40

Page 6: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

What's new in Web AppBuilder

6 / 40

Page 7: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Your browser does not support the video tag.

7 / 40

Page 8: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Development Patterns and Tools

8 / 40

Page 9: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Patterns are the same ...

Tools have improved

9 / 40

Page 10: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Patterns1. Keep your source code outside of the WAB folders2. Don't write WAB widgets from scratch3. WAB widgets wrap your own widgets4. Test your code outside the WAB5. Build your applications for production

10 / 40

Page 11: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Tools: - - Yeoman Grunt Babel

11 / 40

Page 12: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Do I Really Need These Tools?

12 / 40

Page 13: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Builder experience is powerful

13 / 40

Page 14: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

WSIWG builder adds complexity

14 / 40

Page 15: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Easy for configurators = harder for developers

15 / 40

Page 16: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Generators automate this extra work for us

16 / 40

Page 17: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Scaffold out boilerplate code

17 / 40

Page 18: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Install / configure tools to automate tasks

18 / 40

Page 19: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

WAB is an opinionated framework on top of JSAPI

19 / 40

Page 20: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Heavy use of convetion - influenced by Rails

20 / 40

Page 21: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Ideal for a generator: yo esri-appbuilder-js

21 / 40

Page 22: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Installs tools to transpile and copy to WAB folder

22 / 40

Page 23: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Subgenerator to scaffold out widget files

23 / 40

Page 24: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

New Features: SASS styling, custom themes

24 / 40

Page 25: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Patterns Review1. Keep your source code outside of the WAB folders2. Don't write WAB widgets from scratch3. WAB widgets wrap your own widgets4. Test your code outside the WAB5. Build your applications for production

25 / 40

Page 26: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Pattern:

Source Code

26 / 40

Page 27: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Web AppBuilder Folder Structure

27 / 40

Page 28: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Only Keep YOUR Code in Source Control

28 / 40

Page 29: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Demo: App Generator

29 / 40

Page 30: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Pattern:

Do Not Write Widgets from Scratch

30 / 40

Page 31: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Demo: Widget Sub Generator

31 / 40

Page 32: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Pattern:

Wrap Your Widgets

....maybe

32 / 40

Page 33: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

How do I test all this Web App Builder code?

33 / 40

Page 34: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

34 / 40

Page 35: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Pattern:

Build for Production

35 / 40

Page 36: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Demo: Build it!

36 / 40

Page 37: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Coming Soon3D Builds

Fewer Dependencies

Better Performance

37 / 40

Page 38: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

ResourcesWidget Generator: Build Tool: Finding Great Widgets

Geonet:

ArcScripts SearchDocumentation, Download, and Support:

https://github.com/Esri/generator-esri-appbuilder-jshttps://github.com/gbochenek/esri-wab-build

Web AppBuilder Custom Widgets GroupWAB Widget Search

developers.arcgis.com/web-appbuilderdevelopers.arcgis.com/javascript

38 / 40

Page 39: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

Thank You! Any Questions? -

-

These slides, sample code, and links are at:

Please rate this session in the Esri Events mobile app!

[email protected] @gavinrehkemper

[email protected] @bosshenek

esriurl.com/wabtools2017

39 / 40

Page 40: Web AppBuilder for ArcGIS - Esriproceedings.esri.com/library/userconf/devsummit17/papers/dev_int... · Web AppBuilder for ArcGIS: Advanced Development Tools and Techniques George

40 / 40