Building Your own Widget with ArcGIS API for JavaScript

Size: px
Start display at page:

Download "Building Your own Widget with ArcGIS API for JavaScript"

Transcription

1 Building Your own Widget with ArcGIS API for JavaScript Matt JC

2 Agenda About Widgets Prerequisites Widget framework Theming DO IT! Tips & tricks

3 About Widgets What? Encapsulated Cohesive Single-purpose pieces of functionality Why? Reusable Interchangeable How? Different frameworks are available

4 Prerequisites Accessor (esri/core/accessor) TypeScript

5 Accessor JavaScript API Foundation Consistent developer experience TypeScript support

6 Accessor - Unified Object Constructor var view = new MapView({ container: "viewdiv", map: map }); var symbol = new SimpleMarkerSymbol({ style: "square", color: "blue" }); var widget = new BasemapToggle({ view: view, nextbasemap: "hybrid" });

7 Accessor - Defining Properties (getters + setters) var Foo = Accessor.createSubclass({ properties: { // read-only foo: { readonly: true, value: new // aliased bar: { aliasof: "foo" }, } }); // autocast baz: { type: SomeClass }

8 Accessor - Property watching // watch for changes using a property view.watch("map.basemap.title", handle // watch for changes to multiple prope view.watch("stationary, interacting",

9 TypeScript Superset of JavaScript Compiled to JavaScript Statically type-checked Syntactic sugar... sweet! Use ES6 syntax while targeting ES5 environments

10 Type safety let view: MapView SceneView; //... /* * TS2322: Type '"not-a-view"' is not * to type 'MapView SceneView'. */ view = "not-a-view";

11 Typings Help describe what things are: type PresenterName = "Alan" "Matt" interface Person { name: string; age: number; } interface Presenter extends Person { name: PresenterName; }

12 JS of the future, now Fat arrow functions const somefn = () => { /*... */ }; // instead of const somefn = function () { /*... */

13 JS of the future, now Template strings const text = `Hello. Nice to meet you, // instead of const text = "Hello. Nice to meet you,

14 JS of the future, now Destructuring const { map, zoom, scale } = view; // instead of const map = view.map; const zoom = view.zoom; const scale = view.scale;

15 JS of the future, now Rest Parameters function ignorefirst(first,...therest console.log(therest); } // instead of function ignorefirst() { var therest = Array.prototype.slice. } console.log(therest);

16 JS of the future, now foo = "foo";

17 TypeScript IDE Support Visual Studio: 2015/2013, Code WebStorm Sublime Text Atom Eclipse Brackets Emacs Vim

18 TypeScript + JS API 4 Install TypeScript Install JavaScript API typings Start writing code! TypeScript setup

19 Let's see some widget decorators

20 Creating a + class Foo extends declared(accessor) { //... }

21 Creating a class: multiple inheritance + declared interface Foo extends Bar, Baz class Foo extends declared(accessor, B //... }

22 Defining foo = new Foo();

23 set myproperty(value: string) { // note internal `_set` this._set("myproperty", value); this._ensurevalidity(value); }

24 dependson: ["firstname, lastname"] }) get fullname() { return `${this.firstname} ${this.las }

25 readonly: true }) myproperty = "I'm read-only";

26 Autocast type: MyClass }) myproperty; instance.myproperty = { /* params */ } console.log(instance.myproperty instan

27 Alias aliasof: "bar.baz" }) foo;

28 Alias foo;

29 Handle click and private function _dosomething() { //... }

30 Rendering when @renderable() title "viewmodel.foo", "viewmodel.bar" ]) viewmodel = new ViewModel();

31 More details in the SDK Implementing Accessor Widget Development

32 Widget framework JSX Lifecycle Properties Methods Events

33 Widget Framework: About esri/widgets/widget: Our new widget framework Accessor-based Built with TypeScript

34 Widget Framework: JSX JavaScript extension syntax adds XML syntax to JavaScript Looks similar to HTML Can use JS inline! <div class={classlookup.hello} onclick={this._handleclick} tabindex={0}> Hello World </div>

35 Widget Framework: Lifecycle constructor() postinitialize() render() destroy()

36 constructor() constructor(params?: any) { super(); // Do some stuff! }

37 postinitialize() postinitialize() { this.own( watchutils.on(this, "property", => ); }

38 render() Return JSX Virtual DOM render() { return ( <button>{this.title}</button> ); } Widget rendering (SDK)

39 destroy() destroy() { // cleanup listeners // destroy other widgets // dereference variables // etc. }

40 Framework: Getting/Setting Properties // normal setting of a prop mywidget.property = value; // normal getting of a prop console.log(mywidget.property); // internal set property // will not trigger setter this._set("property", propertyvalue); // internal get property // will not trigger getter this._get("property");

41 Framework: ViewModels (The brain) Core logic of widget resides here Provides necessary APIs for the view to do it's thing No DOM/UI concerns (think business logic)

42 ViewModels: Why? Framework integration Reusability Separates concerns

43 Widget Framework: Views (The face) esri/widgets/widget Uses ViewModel APIs to render the UI View-specific logic resides here

44 Views: Why? Separates concerns Framework compatibility

45 Views: Defining type: MyViewModel }) viewmodel: MyViewModel = new MyViewMod

46 Widget Framework: Method Convention Public Methods public mymethod() {} Private Methods private _mymethod() {}

47 Widget Framework: Events Views have ability to emit() an event. ViewModel needs to import dojo/evented in order to emit() Views can alias an event with vmevent decorator.

48 Widget Framework: View Events Widget views extend dojo/evented this.emit("my-event", {...});

49 Widget Framework: ViewModel Events 1. Import evented import Evented = require("dojo/evented 2. Extend Evented interface MyViewModel extends Evented... } 3. Emit event when necessary this.emit("my-event", {...});

50 Widget Framework: Aliased type: MyViewModel }) viewmodel: MyViewModel = new MyViewMod

51 Widget Theming Out of the box themes SDK: Styling topic Sass BEM

52 Widget Theming: Guide SDK Guide: Styles

53 Widget Theming: Out of the box Themes Demo

54 Widget Theming: Sass CSS preprocessor (group - (use - (split up - (inheritance) More power!

55 Sass makes it easier to... Restyle Theme Modular / DRY Be organized Write less code :)

56 Sass Install Installing Sass Themes source on Github

57 Widget Theming: BEM BEM: Block Element Modifier Methodology to create reusable components Uses delimiters to separate block, element, modifiers Provides semantics (albeit verbose) Keeps specificity low Scopes styles to blocks /* block */.example-widget {} /* block element */.example-widget input {}.example-widget submit {} /* block--modifier */.example-widget--loading {} /* block element--modifier */.example-widget submit--disabled {}

58 DO IT! Build a widget! Demo

59 Setup HTML & CSS with Sass HTML Setup Steps Sass Setup Steps

60 Tips & Tricks Collections Accessibility i18n

61 Rethinking Widget APIs Using esri/core/collection instead of Arrays Using esri/core/accessor instead of plain objects Adding properties to manage widget state Hiding nodes with Widget framework JSX instead of CSS setting JSX node to null when necessary Private/protected variables

62 Accessibility tabindex aria roles keyboard events

63 i18n Import language file import * as i18n from "dojo/i18n!./myw Setup root language file with languages // "/nls/mywidget" define({ root: ({ helloworld: "Hello World" }), "es": 1 }); Setup other languages. (\es) // "/nls/es/mywidget" define({ helloworld: "Hola Mundo" });

64 Suggested Sessions Building Classes Using Accessor and the ArcGIS API for JavaScript Using TypeScript with ArcGIS API for Javascript Deep Dive on How ArcGIS API for JavaScript Widgets Were Built

65 Additional Resources Styling Implementing Accessor Setting up TypeScript Widget Development JavaScript Sessions at DevSummit Documentation 4.3

66 Use the source luke esriurl.com/buildwidgets2017

67 Please Take Our Survey! 1. Download the Esri Events app and go to DevSummit 2. Select the session you attended 3. Scroll down to the "Feedback" section 4. Complete Answers, add a Comment, and Select "Submit"

68 Questions?

69 Thank you!

70

Deep Dive on How ArcGIS API for JavaScript Widgets Were Built

Deep Dive on How ArcGIS API for JavaScript Widgets Were Built Deep Dive on How ArcGIS API for JavaScript Widgets Were Built Matt Driscoll @driskull JC Franco @arfncode Agenda Prerequisites How we got here Our development lifecycle Widget development tips Tools we

More information

Frontend UI Training. Whats App :

Frontend UI Training. Whats App : Frontend UI Training Whats App : + 916 667 2961 trainer.subbu@gmail.com What Includes? 1. HTML 5 2. CSS 3 3. SASS 4. JavaScript 5. ES 6/7 6. jquery 7. Bootstrap 8. AJAX / JSON 9. Angular JS 1x 10. Node

More information

ArcGIS API for JavaScript

ArcGIS API for JavaScript ArcGIS API for JavaScript Getting Started Bjorn Svensson, Undral Batsukh 1 Agenda Don't write code JavaScript development Use ArcGIS platform, use webmaps and webscenes js.arcgis.com The Big Four: layers,

More information

Modular JavaScript. JC Franco. Blake Stearman

Modular JavaScript. JC Franco. Blake Stearman Modular JavaScript JC Franco Blake Stearman console.log("hello world"); JC Franco @arfncode jcfranco Blake Stearman @cthru BlakeStearman The Story of an App We ve all been here. Start small Add features

More information

Advanced React JS + Redux Development

Advanced React JS + Redux Development Advanced React JS + Redux Development Course code: IJ - 27 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 astr. hours / 54 study 1 hours Sofia, 2016 Copyright 2003-2016

More information

ArcGIS API 4.x for JavaScript Advanced Topics. René

ArcGIS API 4.x for JavaScript Advanced Topics. René ArcGIS API 4.x for JavaScript Advanced Topics René Rubalcava @odoenet Fundamentals Map and View Map and View Getting Started in 3D need a Map with data and a MapView / SceneView with a container const

More information

widgetjs Documentation

widgetjs Documentation widgetjs Documentation Release 1.2.3 Nicolas Vanhoren Dec 22, 2017 Contents 1 Tutorial 3 1.1 Presentation of widgetjs......................................... 3 1.2 Quickstart................................................

More information

React + React Native. Based on material by Danilo Filgueira

React + React Native. Based on material by Danilo Filgueira React + React Native Based on material by Danilo Filgueira Prerequisites JS and ES6 HTML and CSS NPM/YARN and NODE React A Javascript library for creating reactive and composable UI components Whenever

More information

ArcGIS API for JavaScript: Getting Started Andy René

ArcGIS API for JavaScript: Getting Started Andy René ArcGIS API for JavaScript: Getting Started Andy Gup @agup René Rubalcava @odoenet Agenda Introduction to the ArcGIS API 4.x for JavaScript Fundamentals and Patterns Platform Integration Visualizations

More information

Full Stack Developer with Java

Full Stack Developer with Java Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed

More information

Nick Senger & Jesse van den Kieboom

Nick Senger & Jesse van den Kieboom Using TypeScript with the ArcGIS API for JavaScript Nick Senger & Jesse van den Kieboom Live version of this presentation is available on: https://jkieboom.github.io/devsummit-palm-springs-2018/presentations/typescript-arcgis-js-api

More information

Stencil: The Time for Vanilla Web Components has Arrived

Stencil: The Time for Vanilla Web Components has Arrived Stencil: The Time for Vanilla Web Components has Arrived Gil Fink sparxys CEO @gilfink / www.gilfink.net Typical Application Web Page Design From Design to Implementation Session List Day tabs Component

More information

Advance Mobile& Web Application development using Angular and Native Script

Advance Mobile& Web Application development using Angular and Native Script Advance Mobile& Web Application development using Angular and Native Script Objective:- As the popularity of Node.js continues to grow each day, it is highly likely that you will use it when you are building

More information

Full Stack boot camp

Full Stack boot camp Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building

More information

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary Course Summary Description This five-day instructor-led course is intended for developers who want to be able to create client-side applications with SharePoint Framework. In this course, students will

More information

Angular 2 and TypeScript Web Application Development

Angular 2 and TypeScript Web Application Development Angular 2 and TypeScript Web Application Development Course code: IJ -19 Course domain: Software Engineering Number of modules: 1 Duration of the course: 40 study 1 hours Sofia, 2016 Copyright 2003-2016

More information

Vue.js Framework. Internet Engineering. Spring Pooya Parsa Professor: Bahador Bakhshi CE & IT Department, Amirkabir University of Technology

Vue.js Framework. Internet Engineering. Spring Pooya Parsa Professor: Bahador Bakhshi CE & IT Department, Amirkabir University of Technology Vue.js Framework Internet Engineering Spring 2018 Pooya Parsa Professor: Bahador Bakhshi CE & IT Department, Amirkabir University of Technology Outline Introduction to Vue.js The Vue instance Declarative

More information

Front End. Presentation Layer. UI (User Interface) User <==> Data access layer

Front End. Presentation Layer. UI (User Interface) User <==> Data access layer Angular 2 S1ngS1ng Front End UI (User Interface) User Data access layer Presentation Layer Architecture Conventional VS SPA Angular 1 Framework! Framework! Framework! MVVM (MV*) Modulization Two-way

More information

Creating Content with iad JS

Creating Content with iad JS Creating Content with iad JS Part 2 The iad JS Framework Antoine Quint iad JS Software Engineer ios Apps and Frameworks 2 Agenda Motivations and Features of iad JS Core JavaScript Enhancements Working

More information

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx

CREATE SASSY WEB PARTS. Developer Guide to SASS usage in SPFx CREATE SASSY WEB PARTS Developer Guide to SASS usage in SPFx !!! WARNING!!! YOU WILL SEE SOURCE CODE!!! WARNING!!! OUR GOALS Sketch and develop web parts Create your own reusable CSS Handle external

More information

TypeScript. Types. CS144: Web Applications

TypeScript. Types. CS144: Web Applications TypeScript Superset of JavaScript (a.k.a. JavaScript++) to make it easier to program for largescale JavaScript projects New features: types, interfaces, decorators,... All additional TypeScript features

More information

55249: Developing with the SharePoint Framework Duration: 05 days

55249: Developing with the SharePoint Framework Duration: 05 days Let s Reach For Excellence! TAN DUC INFORMATION TECHNOLOGY SCHOOL JSC Address: 103 Pasteur, Dist.1, HCMC Tel: 08 38245819; 38239761 Email: traincert@tdt-tanduc.com Website: www.tdt-tanduc.com; www.tanducits.com

More information

Lesson: Web Programming(6) Omid Jafarinezhad Sharif University of Technology

Lesson: Web Programming(6) Omid Jafarinezhad Sharif University of Technology Lesson: Web Programming(6) Omid Jafarinezhad Sharif University of Technology React QUICK START QUICK START ADVANCED GUIDES React QUICK START Installation Hello World Introducing JSX Components and Props

More information

Lecture 8. ReactJS 1 / 24

Lecture 8. ReactJS 1 / 24 Lecture 8 ReactJS 1 / 24 Agenda 1. JSX 2. React 3. Redux 2 / 24 JSX 3 / 24 JavaScript + HTML = JSX JSX is a language extension that allows you to write HTML directly into your JavaScript files. Behind

More information

Accessible Web Mapping Apps. Kelly Hutchins Tao Zhang

Accessible Web Mapping Apps. Kelly Hutchins Tao Zhang Accessible Web Mapping Apps Kelly Hutchins Tao Zhang What is accessibility? Make content usable by as many people as possible About 15% of world population lives with some form of disability: 1 billion

More information

ArcGIS Runtime SDK for Qt: Building Apps. Koushik Hajra and Lucas Danzinger

ArcGIS Runtime SDK for Qt: Building Apps. Koushik Hajra and Lucas Danzinger ArcGIS Runtime SDK for Qt: Building Apps Koushik Hajra and Lucas Danzinger Cross-platform apps Agenda for today Intro to Qt Framework and ArcGIS Runtime SDK for Qt App design patterns with this SDK SDK

More information

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu GETTING STARTED WITH TYPESCRIPT Installing TypeScript Compiling the code Building a simple demo. UNDERSTANDING CLASSES Building a class Adding properties Demo of

More information

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 06 June p-issn:

International Research Journal of Engineering and Technology (IRJET) e-issn: Volume: 05 Issue: 06 June p-issn: Polymer JavaScript Shabnam Shaikh 1, Lavina Jadhav 2 1Student, Dept. of Institute of Computer Science, MET College, Maharashtra, India 2Professor, Dept. of Institute of Computer Science, MET College, Maharashtra,

More information

Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal. An Insight company

Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal. An Insight company Introduction to the SharePoint Framework Bob German Principal Architect - BlueMetal An Insight company Bob German Bob is a Principal Architect at BlueMetal, where he leads Office 365 and SharePoint development

More information

PHP WITH ANGULAR CURRICULUM. What you will Be Able to Achieve During This Course

PHP WITH ANGULAR CURRICULUM. What you will Be Able to Achieve During This Course PHP WITH ANGULAR CURRICULUM What you will Be Able to Achieve During This Course This course will enable you to build real-world, dynamic web sites. If you've built websites using plain HTML, you realize

More information

Templates and Databinding. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Templates and Databinding. SWE 432, Fall 2017 Design and Implementation of Software for the Web Templates and Databinding SWE 432, Fall 2017 Design and Implementation of Software for the Web Today What are templates? What are frontend components? How can I use these with React? 2 What s wrong with

More information

CSCE 156 Computer Science II

CSCE 156 Computer Science II CSCE 156 Computer Science II Lab 04 - Classes & Constructors Dr. Chris Bourke Prior to Lab 1. Review this laboratory handout prior to lab. 2. Read Object Creation tutorial: http://download.oracle.com/javase/tutorial/java/javaoo/objectcreation.

More information

ArcGIS Runtime SDK for.net: Building Xamarin Apps. Rich Zwaap Thad Tilton

ArcGIS Runtime SDK for.net: Building Xamarin Apps. Rich Zwaap Thad Tilton ArcGIS Runtime SDK for.net: Building Xamarin Apps Rich Zwaap Thad Tilton ArcGIS Runtime session tracks at DevSummit 2018 ArcGIS Runtime SDKs share a common core, architecture and design Functional sessions

More information

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella

ArcGIS Runtime SDK for.net Building Apps. Antti Kajanus David Cardella ArcGIS Runtime SDK for.net Building Apps Antti Kajanus akajanus@esri.com David Cardella dcardella@esri.com Thank You to Our Generous Sponsor SDK Highlights High-performance 2D and 3D mapping Integration

More information

JavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology

JavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology JavaScript: the language of browser interactions Claudia Hauff TI1506: Web and Database Technology ti1506-ewi@tudelft.nl Densest Web lecture of this course. Coding takes time. Be friendly with Codecademy

More information

04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio. Ben Riga

04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio. Ben Riga 04 Sharing Code Between Windows 8 and Windows Phone 8 in Visual Studio Ben Riga http://about.me/ben.riga Course Topics Building Apps for Both Windows 8 and Windows Phone 8 Jump Start 01 Comparing Windows

More information

Web Development for Dinosaurs An Introduction to Modern Web Development

Web Development for Dinosaurs An Introduction to Modern Web Development Web Development for Dinosaurs An Introduction to Modern Web Development 1 / 53 Who Am I? John Cleaver Development Team Lead at Factivity, Inc. An Introduction to Modern Web Development - PUG Challenge

More information

An Introduction to TypeScript. Personal Info

An Introduction to TypeScript. Personal Info An Introduction to TypeScript Jason Bock Practice Lead Magenic Level: Beginner/Intermediate Personal Info http://www.magenic.com http://www.jasonbock.net https://www.twitter.com/jasonbock https://www.github.com/jasonbock

More information

Angular 2 and TypeScript Web Application Development

Angular 2 and TypeScript Web Application Development Angular 2 and TypeScript Web Application Development Course code: IJ -23 Course domain: Software Engineering Number of modules: 1 Duration of the course: 42 study 1 (32 astr.) hours Sofia, 2016 Copyright

More information

Future Web App Technologies

Future Web App Technologies Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding

More information

Web AppBuilder Presented by

Web AppBuilder Presented by Web AppBuilder Presented by Agenda Product overview Web AppBuilder for ArcGIS tour What s new in the ArcGIS Online June 2016 update Customization Community and Resources Summary The ArcGIS Platform enables

More information

Front End Nanodegree Syllabus

Front End Nanodegree Syllabus Front End Nanodegree Syllabus Build Stunning User Experiences Before You Start You've taken the first step toward becoming a web developer by choosing the Front End Nanodegree program. In order to succeed,

More information

Modern and Responsive Mobile-enabled Web Applications

Modern and Responsive Mobile-enabled Web Applications Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive

More information

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen

ArcGIS Runtime: Building Cross-Platform Apps. Rex Hansen Mark Baird Michael Tims Morten Nielsen ArcGIS Runtime: Building Cross-Platform Apps Rex Hansen Mark Baird Michael Tims Morten Nielsen Agenda Cross-platform review ArcGIS Runtime cross-platform options - Java - Qt -.NET ArcGIS Runtime: Building

More information

ArcGIS Viewer for Flex Advanced Topics

ArcGIS Viewer for Flex Advanced Topics Esri International User Conference San Diego, California Technical Workshops July 27, 2012 ArcGIS Viewer for Flex Advanced Topics Lloyd Heberlie Björn Svensson Before we begin Who are we? - Bjorn Svensson

More information

Simple AngularJS thanks to Best Practices

Simple AngularJS thanks to Best Practices Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it

More information

One language to rule them all: TypeScript. Gil Fink CEO and Senior Consultant, sparxys

One language to rule them all: TypeScript. Gil Fink CEO and Senior Consultant, sparxys One language to rule them all: TypeScript Gil Fink CEO and Senior Consultant, sparxys About Me sparxys CEO and Senior consultant Microsoft MVP in the last 8 years Pro Single Page Application Development

More information

Front End Nanodegree Syllabus

Front End Nanodegree Syllabus Front End Nanodegree Syllabus Build Stunning User Experiences Before You Start You've taken the first step toward becoming a web developer by choosing the Front End Nanodegree program. In order to succeed,

More information

FRONT END WEB. {< Course Details >}

FRONT END WEB. {< Course Details >} FRONT END WEB {< Course Details >} centers@acadgild.com www.acadgild.com 90360 10796 css { } HTML JS { ; } centers@acadgild.com www.acadgild.com 90360 10796 Brief About the Course Our Front end development

More information

AngularJS Fundamentals

AngularJS Fundamentals AngularJS Fundamentals by Jeremy Zerr Blog: http://www.jeremyzerr.com LinkedIn: http://www.linkedin.com/in/jrzerr Twitter: http://www.twitter.com/jrzerr What is AngularJS Open Source Javascript MVC/MVVM

More information

Angular 2 Programming

Angular 2 Programming Course Overview Angular 2 is the next iteration of the AngularJS framework. It promises better performance. It uses TypeScript programming language for type safe programming. Overall you should see better

More information

SIX REASONS. You Should Use ArcGIS API 4.0 for JavaScript. By Julie Powell, Esri Product Management

SIX REASONS. You Should Use ArcGIS API 4.0 for JavaScript. By Julie Powell, Esri Product Management SIX REASONS You Should Use ArcGIS API 4.0 for JavaScript By Julie Powell, Esri Product Management Since 2008, developers have used ArcGIS API for JavaScript to build powerful web mapping applications.

More information

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery. HTML5/CSS3/JavaScript Programming Course Summary Description This class is designed for students that have experience with basic HTML concepts that wish to learn about HTML Version 5, Cascading Style Sheets

More information

Web AppBuilder for ArcGIS Dive Into Mobile Development. Yiwei Ma & Kevin Gao

Web AppBuilder for ArcGIS Dive Into Mobile Development. Yiwei Ma & Kevin Gao Web AppBuilder for ArcGIS Dive Into Mobile Development Yiwei Ma & Kevin Gao Yiwei Ma Software Developer Kevin Gao User Interface Engineer Theme A theme in WAB is a template framework representing the look

More information

Build Tizen HTML5 Apps w/ Sencha Architect & Sencha Touch

Build Tizen HTML5 Apps w/ Sencha Architect & Sencha Touch Build Tizen HTML5 Apps w/ Sencha Architect & Sencha Touch About me /** * About me */ Ext.create("Person", { firstname: "Stefan", lastname : "Stölzle", company : "Sencha, Inc.", //position : "Sr. Solutions

More information

Vue.js Developer friendly, Fast and Versatile

Vue.js Developer friendly, Fast and Versatile .consulting.solutions.partnership Vue.js Developer friendly, Fast and Versatile Alexander Schwartz, Principal IT Consultant Javaland 2018 Brühl (DE) March 2018 Vue.js developer friendly, fast and versatile

More information

JavaScript Rd2. -Kyle Simpson, You Don t Know JS

JavaScript Rd2. -Kyle Simpson, You Don t Know JS JavaScript Rd2 [JavaScript] is simultaneously a simple, easy-to-use language that has broad appeal, and a complex and nuanced collection of language mechanics which without careful study will elude the

More information

TypeScript. TypeScript. RxJS

TypeScript. TypeScript. RxJS Web 2017.08 About Me TypeScript TypeScript RxJS 2014 X 4 0 Mac/Windows Native UI Web Angular React JavaScript IM User DING Contact RPC Native Nw.js C++ Cef 2014 10 Web 11 nw.js Web App IM DING DING ->

More information

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe

ArcGIS Runtime: Building Cross-Platform Apps. Mike Branscomb Michael Tims Tyler Schiewe ArcGIS Runtime: Building Cross-Platform Apps Mike Branscomb Michael Tims Tyler Schiewe Agenda Cross-platform review ArcGIS Runtime cross-platform options - Java - Qt -.NET Native vs Web Native strategies

More information

THE GREAT CONSOLIDATION: ENTERTAINMENT WEEKLY MIGRATION CASE STUDY JON PECK, MATT GRILL, PRESTON SO

THE GREAT CONSOLIDATION: ENTERTAINMENT WEEKLY MIGRATION CASE STUDY JON PECK, MATT GRILL, PRESTON SO THE GREAT CONSOLIDATION: ENTERTAINMENT WEEKLY MIGRATION CASE STUDY JON PECK, MATT GRILL, PRESTON SO Slides: http://goo.gl/qji8kl WHO ARE WE? Jon Peck - drupal.org/u/fluxsauce Matt Grill - drupal.org/u/drpal

More information

DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE

DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE DECOUPLING PATTERNS, SERVICES AND CREATING AN ENTERPRISE LEVEL EDITORIAL EXPERIENCE Who we are and Why we are here? Saurabh Chugh Started Drupal journey in 2010 with Drupal 6, long journey with Drupal

More information

Welcome. Quick Introductions

Welcome. Quick Introductions AEK Introduction Welcome Quick Introductions "The AEK"? Application Extension Kit Technique for delivering cross-platform application screens via a webview A development framework that provides a responsive

More information

Writing your first Web Data Connector

Writing your first Web Data Connector Welcome # T C 1 8 Writing your first Web Data Connector Brett Taylor Staff Software Engineer Tableau Ashwin Sekar Software Engineer Tableau Enabling Integrations for Developers Embedded Analytics Integrations

More information

"Charting the Course... Comprehensive Angular. Course Summary

Charting the Course... Comprehensive Angular. Course Summary Description Course Summary Angular is a powerful client-side JavaScript framework from Google that supports simple, maintainable, responsive, and modular applications. It uses modern web platform capabilities

More information

"Charting the Course... Comprehensive Angular 6 Course Summary

Charting the Course... Comprehensive Angular 6 Course Summary Course Summary Description Build applications with the user experience of a desktop application and the ease of deployment of a web application using Angular. Start from scratch by learning the JavaScript

More information

(800) Toll Free (804) Fax Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days

(800) Toll Free (804) Fax   Introduction to Java and Enterprise Java using Eclipse IDE Duration: 5 days Course Description This course introduces the Java programming language and how to develop Java applications using Eclipse 3.0. Students learn the syntax of the Java programming language, object-oriented

More information

High Performance Single Page Application with Vue.js

High Performance Single Page Application with Vue.js High Performance Single Page Application with Vue.js Premise Static HTML and simple web-pages are already a history now. The novel web applications are advanced and do a lots of functionalities. Also,

More information

ArcGIS Pro SDK for.net: Advanced User Interfaces in Add-ins. Wolfgang Kaiser

ArcGIS Pro SDK for.net: Advanced User Interfaces in Add-ins. Wolfgang Kaiser ArcGIS Pro SDK for.net: Advanced User Interfaces in Add-ins Wolfgang Kaiser Framework Elements - Recap Any Framework Element is an extensibility point - Controls (Button, Tool, and variants) - Hosted on

More information

Code Editor. The Code Editor is made up of the following areas: Toolbar. Editable Area Output Panel Status Bar Outline. Toolbar

Code Editor. The Code Editor is made up of the following areas: Toolbar. Editable Area Output Panel Status Bar Outline. Toolbar Code Editor Wakanda s Code Editor is a powerful editor where you can write your JavaScript code for events and functions in datastore classes, attributes, Pages, widgets, and much more. Besides JavaScript,

More information

Course 1: Microsoft Professional Orientation: Front-End Web Developer

Course 1: Microsoft Professional Orientation: Front-End Web Developer Course 1: Microsoft Professional Orientation: Front-End Web Developer This orientation course is the first course in the Web Front-End Developer, Microsoft Professional Program curriculum. The orientation

More information

Front End Programming

Front End Programming Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page

More information

Implementing Subprograms

Implementing Subprograms Implementing Subprograms 1 Topics The General Semantics of Calls and Returns Implementing Simple Subprograms Implementing Subprograms with Stack-Dynamic Local Variables Nested Subprograms Blocks Implementing

More information

TypeScript coding JavaScript without the pain

TypeScript coding JavaScript without the pain TypeScript coding JavaScript without the pain @Sander_Mak Luminis Technologies INTRO @Sander_Mak: Senior Software Engineer at Author: Dutch Java Magazine blog @ branchandbound.net Speaker: AGENDA Why TypeScript?

More information

Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study

Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study Designing RIA Accessibility: A Yahoo UI (YUI) Menu Case Study Doug Geoffray & Todd Kloots 1 Capacity Building Institute Seattle, Washington 2006.11.30 What s Happening? 2 3 Web 1.0 vs. Web 2.0 Rich Internet

More information

ArcGIS API for JavaScript: Using Arcade with your Apps. Kristian Ekenes & David Bayer

ArcGIS API for JavaScript: Using Arcade with your Apps. Kristian Ekenes & David Bayer ArcGIS API for JavaScript: Using Arcade with your Apps Kristian Ekenes & David Bayer Session Goals Overview of Arcade What is Arcade Why use Arcade Arcade Language Variables, Functions, Loops, Conditional

More information

Angular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy

Angular 2 and Hexo. Static Meets Dynamic For the Best of Both Worlds! Copyright 2016 Code Career Academy Angular 2 and Hexo Static Meets Dynamic For the Best of Both Worlds! Who am I? Jeff Ammons Microsoft MVP Pluralsight Author CEO/Chief Instructor at Code Career Academy 25 Years Professional Experience

More information

React Not Just Hype!

React Not Just Hype! React Not Just Hype! @mjackson Thriller. @ReactJSTraining reactjs-training.com rackt github.com/rackt - 14 members - 5 teams (owners, routing, redux, a11y, docs) - Not exclusive! This is not a core team.

More information

Chapter 15: Object Oriented Programming

Chapter 15: Object Oriented Programming Chapter 15: Object Oriented Programming Think Java: How to Think Like a Computer Scientist 5.1.2 by Allen B. Downey How do Software Developers use OOP? Defining classes to create objects UML diagrams to

More information

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill ArcGIS Runtime SDK for Android: Building Apps Shelly Gill Agenda Getting started SDK Common patterns and Example Apps Android platform updates Kotlin Team goals for upcoming releases Other sessions ArcGIS

More information

ArcGIS Pro SDK for.net: Add-in Fundamentals and Development Patterns. Wolf Kaiser, Uma Harano

ArcGIS Pro SDK for.net: Add-in Fundamentals and Development Patterns. Wolf Kaiser, Uma Harano ArcGIS Pro SDK for.net: Add-in Fundamentals and Development Patterns Wolf Kaiser, Uma Harano Session Overview What is the ArcGIS Pro SDK? What is an ArcGIS Pro add-in? ArcGIS Pro Add-ins: - How to write

More information

JSX in Depth. Why JSX? The Transform. JSX is a JavaScript XML syntax transform recommended for use with React.

JSX in Depth. Why JSX? The Transform. JSX is a JavaScript XML syntax transform recommended for use with React. 1 of 7 QUICK START Getting Started Tutorial GUIDES Why? Displaying Data JSX in Depth JSX Gotchas Interactivity and Dynamic UIs Multiple Components Reusable Components Forms Working With the Browser More

More information

Cpt S 122 Data Structures. Introduction to C++ Part II

Cpt S 122 Data Structures. Introduction to C++ Part II Cpt S 122 Data Structures Introduction to C++ Part II Nirmalya Roy School of Electrical Engineering and Computer Science Washington State University Topics Objectives Defining class with a member function

More information

Bringing your Data to Life in the ArcGIS API for JavaScript: Vector Tiles. Craig Williams &

Bringing your Data to Life in the ArcGIS API for JavaScript: Vector Tiles. Craig Williams & Bringing your Data to Life in the ArcGIS API for JavaScript: Vector Tiles Craig Williams & Rene Rubalcava @williamscraigm @odoenet Overview Why vector tiles? Vector tiles in ArcGIS ArcGIS vector tile basemaps

More information

LEARN WITH INTRODUCTION TO TYPESCRIPT

LEARN WITH INTRODUCTION TO TYPESCRIPT LEARN WITH INTRODUCTION TO TYPESCRIPT By Jeffry Houser http://www.learn-with.com http://www.jeffryhouser.com https://www.dot-com-it.com Copyright 2017 by DotComIt, LLC Contents Title Page... 2 Introduction

More information

Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018

Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018 Developing Add-Ins for ArcGIS Pro (.NET) Toronto Esri Canada UC Presented by: Gandhar Wazalwar & Kern Ranjitsingh October 11, 2018 Esri Canada Professional Services Project services Implementation services

More information

Angular 4 Training Course Content

Angular 4 Training Course Content CHAPTER 1: INTRODUCTION TO ANGULAR 4 Angular 4 Training Course Content What is Angular 4? Central Features of the Angular Framework Why Angular? Scope and Goal of Angular Angular 4 vs Angular 2 vs. AngularJS

More information

Course 1: Microsoft Professional Orientation: Front-End Web Developer

Course 1: Microsoft Professional Orientation: Front-End Web Developer Course 1: Microsoft Professional Orientation: Front-End Web Developer This orientation course is the first course in the Web Front-End Developer, Microsoft Professional Program curriculum. The orientation

More information

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

P a g e 1. Danish Technological Institute. Scripting and Web Languages   Online Course k Scripting and Web Languages P a g e 1 Online Course k72853 Scripting and Web Languages P a g e 2 Title Estimated Duration (hrs) JsRender Fundamentals 2 Advanced JsRender Features 3 JavaScript SPA: Getting Started with SPA in Visual

More information

CSE 341, Autumn 2015, Ruby Introduction Summary

CSE 341, Autumn 2015, Ruby Introduction Summary CSE 341, Autumn 2015, Ruby Introduction Summary Disclaimer: This lecture summary is not necessarily a complete substitute for atting class, reading the associated code, etc. It is designed to be a useful

More information

Programming II (CS300)

Programming II (CS300) 1 Programming II (CS300) Chapter 02: Using Objects MOUNA KACEM mouna@cs.wisc.edu Fall 2018 Using Objects 2 Introduction to Object Oriented Programming Paradigm Objects and References Memory Management

More information

Integrating New Visualizations with Pentaho Using the Viz API

Integrating New Visualizations with Pentaho Using the Viz API Integrating New Visualizations with Pentaho Using the Viz API Nick Keune, Pentaho Embedded & Advanced Analytics SE, Hitachi Vantara Ben Hopkins Pentaho Senior Product Manager, Hitachi Vantara Agenda In

More information

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. 1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. ORACLE PRODUCT LOGO Oracle ADF Programming Best Practices Frank Nimphius Oracle Application Development Tools Product Management 2 Copyright

More information

CS304 Object Oriented Programming Final Term

CS304 Object Oriented Programming Final Term 1. Which of the following is the way to extract common behaviour and attributes from the given classes and make a separate class of those common behaviours and attributes? Generalization (pg 29) Sub-typing

More information

Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

Arjen de Blok. Senior Technical Consultant bij ICT Groep (  sinds 1995 Programmeren sinds 1990 Technologiën. Links Arjen de Blok Senior Technical Consultant bij ICT Groep (www.ict.eu) sinds 1995 Programmeren sinds 1990 Technologiën Links Visual C++ met Microsoft Foundation Classes.NET WinForms & WPF Silverlight ASP.NET

More information

ArcGIS Online: Three-and-a-Half Ways to Create Tile Layers. Eric Anderson & Adam Eversole Esri Support Services

ArcGIS Online: Three-and-a-Half Ways to Create Tile Layers. Eric Anderson & Adam Eversole Esri Support Services ArcGIS Online: Three-and-a-Half Ways to Create Tile Layers Eric Anderson & Adam Eversole Esri Support Services Agenda 1. Introduction 2. What is a tile layer 3. How a tile layer works 4. The 3 ½ ways to

More information

Down With JavaScript!

Down With JavaScript! Down With JavaScript! September 2018 training@instil.co Instil Software 2018 Develop Consult Train Where Things Were Better Did you know that the original 4GL s were designed to be an ideal coding environment

More information

DATABASE SYSTEMS. Introduction to web programming. Database Systems Course, 2016

DATABASE SYSTEMS. Introduction to web programming. Database Systems Course, 2016 DATABASE SYSTEMS Introduction to web programming Database Systems Course, 2016 AGENDA FOR TODAY Client side programming HTML CSS Javascript Server side programming: PHP Installing a local web-server Basic

More information

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren

McLab tools on the web. Deepanjan Roy Supervisor: Prof. Laurie Hendren McLab tools on the web Deepanjan Roy Supervisor: Prof. Laurie Hendren Brief overview of the McLab project LANGUAGES, COMPILERS, AND VIRTUAL MACHINES Dynamic Scientific Programming Languages (Especially

More information

Treating Framework Fatigue With JavaScript

Treating Framework Fatigue With JavaScript Treating Framework Fatigue With JavaScript Tim Doherty Software Architect /in/timdoherty timdoherty.net ??? Hey, this one looks cool! You May Suffer From Framework Fatigue Symptoms Confusion One-way reactive

More information

INF5750. Introduction to JavaScript and Node.js

INF5750. Introduction to JavaScript and Node.js INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting

More information