SlideShare a Scribd company logo
1 of 22
UX Design for Developers
    Frank Garofalo & Jayson Ward
       @fgarofalo   @defiantgoat




                                   #devsummit #esriux #virtualport
Today’s menu


 •   UX Design
 •   Virtual Port – demo
 •   Code
     -   JavaScript Architecture
     -   Sample Code




                                   #devsummit #esriux #virtualport
User Interface / User Experience Design




                                      #devsummit #esriux #virtualport
Agile Development & UX


 •   HTML proof-of-concepts


 •   Rapid prototyping
     1.   Build client-side (front-end)
          elements

     2.   Validate with client

     3.   Then wire-up the server-side
          (back-end) components




                                          #devsummit #esriux #virtualport
#devsummit #esriux #virtualport
DEMO




       #devsummit #esriux #virtualport
#devsummit #esriux #virtualport
Design consistency




                     #devsummit #esriux #virtualport
code
ArcGIS API for JavaScript

Dojo & jQuery




                            #devsummit #esriux #virtualport
JavaScript Architecture

                              Default.aspx

                        ArcGIS API for JavaScript



                        main.js          dojo.js




 module_advanced.js         module_news.js          module_reports.js


  module_infofeeds.js   module_notifications.js     module_vessels.js


    module_mjob.js        module_resources.js       module_videos.js


                                                       #devsummit #esriux #virtualport
Playing together in the sandbox                                             Default.aspx



<!-- jQuery & jQueryUI -->
<script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js“ type="text/javascript">
</script>
<script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.1/jquery-ui.min.js“ type="text/javascript"
> </script>


<!-- ArcGIS JavaScript API -->
<script type="text/javascript">var djConfig = { parseOnLoad: true };</script>
<script src="//serverapi.arcgisonline.com/jsapi/arcgis/?v=3.3" type="text/javascript" >
</script>


<script src="scripts/dojo.js" type="text/javascript" ></script>
<script src="scripts/main.js" type="text/javascript" ></script>



                                                                     #devsummit #esriux #virtualport
Playing together in the sandbox                                  main.js




$(document).ready( function () {
      // Once jQuery and Dojo are ready. Start code.


      // Initialize DoJo Functions
      dojo.addOnLoad(initDojo);


      // Initialize jQuery Functions
      initJQuery_mainfunctions();


      function initJQuery_mainfunctions() {
           //dostuff
      }
});

                                                       #devsummit #esriux #virtualport
Playing together in the sandbox                       dojo.js




dojo.require("esri.map");
dojo.require("dijit.dijit");
dojo.require("esri.arcgis.utils");


var mapObj;


function initDojo() {
      mapObj = new esri.Map("mapDiv", {
            basemap: "gray",
            center: geoCenter,
            displayGraphicsOnPan: false,
            fadeOnZoom: true
      });
}
                                           #devsummit #esriux #virtualport
Playing together in the sandbox

// Create a custom object under the jQuery namespace
jQuery.virtualport = {}; // declared within main.js


// namespace global variables
jQuery.virtualport.mapObj = mapObj;


// namespace functions
function setRightPanelSwitch (in_element, in_direction) {
     // do stuff
}
jQuery.virtualport.setRightPanelSwitch = function (in_element, in_direction) {
    setRightPanelSwitch (in_element, in_direction); // calls local function
}


                                                                     #devsummit #esriux #virtualport
…that’s a wrap


 •   UX Design
 •   Virtual Port – demo
 •   Code
     -   JavaScript Architecture
     -   Sample Code




                                   #devsummit #esriux #virtualport
Special Thanks to…


 •   Port of Long Beach


 •   Project Team
     -   Mourad Larif      -   Jayson Ward
     -   Eric Apple        -   Frank Garofalo
     -   Ed Carubis        -   Xiaomeng Zheng
     -   Brenda Ibold      -   Mike Nelson
     -   Selim Dissem
     -   Ross Wakefield
     -   Tanuka Bhowmick




                                                #devsummit #esriux #virtualport
UX Design for
Developers

Frank Garofalo             @fgarofalo
Jayson Ward              @defiantgoat


#esriux #devsummit #virtualport


Offering ID # 383
  Find us at the SpeedGeeking event!

                                        #devsummit #esriux #virtualport
#devsummit #esriux #virtualport
Playing together in the sandbox

function setRightPanelTabs() {
      // Changed to "on" event listener
      jQuery(".container_right_panel").on({
           click: function (e) {
                 var elem_tab_header = jQuery(this);
                 var elem_tab_container = elem_tab_header.parent().parent().attr("id");
                 var elem_tab_header_id = elem_tab_header.attr("id");
setRightPanelTabActive(elem_tab_container, elem_tab_header_id); // local function


                 e.preventDefault();
           }
      }, ".tab.tab_header");
  }


                                                                     #devsummit #esriux #virtualport
Playing together in the sandbox

// setRightPanelTabActive [Local]
function setRightPanelTabActive (parent_container, element) {
     var elems_tab_headers = jQuery("#" + parent_container + " .tab.tab_header");
     var elems_tab_contents = jQuery("#" + parent_container + " .tab.tab_content");
     var elem_tab_content = jQuery("#" + parent_container + " .tab.tab_content." +
element);


     // Tab Headers
     elems_tab_headers.removeClass("active");
     jQuery("#" + element).addClass("active");
     // Tab Contents
    elems_tab_contents.removeClass("active");
    elem_tab_content.addClass("active");
}

                                                                   #devsummit #esriux #virtualport
Virtual Port: App Structure




                              #devsummit #esriux #virtualport
Virtual Port: App Structure




                              #devsummit #esriux #virtualport

More Related Content

Viewers also liked

Ideation6 8-5 activity
Ideation6 8-5 activityIdeation6 8-5 activity
Ideation6 8-5 activityFrank Garofalo
 
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)Frank Garofalo
 
Pitch & Critique - Feedback
Pitch & Critique - FeedbackPitch & Critique - Feedback
Pitch & Critique - FeedbackFrank Garofalo
 
Storyboarding for the User Experience: It's like building a house
Storyboarding for the User Experience: It's like building a houseStoryboarding for the User Experience: It's like building a house
Storyboarding for the User Experience: It's like building a houseFrank Garofalo
 
Usability Testing: Understanding End-Users through Observation
Usability Testing: Understanding End-Users through ObservationUsability Testing: Understanding End-Users through Observation
Usability Testing: Understanding End-Users through ObservationFrank Garofalo
 
Ideation 6-8-5 activity
Ideation 6-8-5 activityIdeation 6-8-5 activity
Ideation 6-8-5 activityFrank Garofalo
 
How to "Do" Lean UX in 5 Easy Steps
How to "Do" Lean UX in 5 Easy StepsHow to "Do" Lean UX in 5 Easy Steps
How to "Do" Lean UX in 5 Easy StepsJeff Gothelf
 
Users' Story: UX Storyboarding
Users' Story: UX StoryboardingUsers' Story: UX Storyboarding
Users' Story: UX StoryboardingFrank Garofalo
 
Lean UX: Getting out of the deliverables business
Lean UX: Getting out of the deliverables businessLean UX: Getting out of the deliverables business
Lean UX: Getting out of the deliverables businessJeff Gothelf
 
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)Frank Garofalo
 
The Power of Layering Multiple Interactive Data Sets
The Power of Layering Multiple Interactive Data SetsThe Power of Layering Multiple Interactive Data Sets
The Power of Layering Multiple Interactive Data SetsFrank Garofalo
 
Design Matters: The modernization of Esri design
Design Matters: The modernization of Esri designDesign Matters: The modernization of Esri design
Design Matters: The modernization of Esri designFrank Garofalo
 
Esri User Conference 2016 - UX & UI activities
Esri User Conference 2016 - UX & UI activitiesEsri User Conference 2016 - UX & UI activities
Esri User Conference 2016 - UX & UI activitiesFrank Garofalo
 
No More Bacon Ipsum: High Content Fidelity Design
No More Bacon Ipsum: High Content Fidelity DesignNo More Bacon Ipsum: High Content Fidelity Design
No More Bacon Ipsum: High Content Fidelity DesignStan (Haozhe) Li
 
The Art of User Experience: Methodologies Around Designing Great Apps
The Art of User Experience: Methodologies Around Designing Great AppsThe Art of User Experience: Methodologies Around Designing Great Apps
The Art of User Experience: Methodologies Around Designing Great AppsFrank Garofalo
 

Viewers also liked (20)

Ideation6 8-5 activity
Ideation6 8-5 activityIdeation6 8-5 activity
Ideation6 8-5 activity
 
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 2 of 2)
 
Pitch & Critique - Feedback
Pitch & Critique - FeedbackPitch & Critique - Feedback
Pitch & Critique - Feedback
 
Storyboarding for the User Experience: It's like building a house
Storyboarding for the User Experience: It's like building a houseStoryboarding for the User Experience: It's like building a house
Storyboarding for the User Experience: It's like building a house
 
UX Strategy OneSheet
UX Strategy OneSheetUX Strategy OneSheet
UX Strategy OneSheet
 
Usability Testing: Understanding End-Users through Observation
Usability Testing: Understanding End-Users through ObservationUsability Testing: Understanding End-Users through Observation
Usability Testing: Understanding End-Users through Observation
 
Ideation 6-8-5 activity
Ideation 6-8-5 activityIdeation 6-8-5 activity
Ideation 6-8-5 activity
 
Storyboarding levels
Storyboarding levelsStoryboarding levels
Storyboarding levels
 
How to "Do" Lean UX in 5 Easy Steps
How to "Do" Lean UX in 5 Easy StepsHow to "Do" Lean UX in 5 Easy Steps
How to "Do" Lean UX in 5 Easy Steps
 
Users' Story: UX Storyboarding
Users' Story: UX StoryboardingUsers' Story: UX Storyboarding
Users' Story: UX Storyboarding
 
Lean UX: Getting out of the deliverables business
Lean UX: Getting out of the deliverables businessLean UX: Getting out of the deliverables business
Lean UX: Getting out of the deliverables business
 
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)
DevSummit 2016 PreSummit Workshop: Getting to Know Your Users (Part 1 of 2)
 
The Power of Layering Multiple Interactive Data Sets
The Power of Layering Multiple Interactive Data SetsThe Power of Layering Multiple Interactive Data Sets
The Power of Layering Multiple Interactive Data Sets
 
Design Matters: The modernization of Esri design
Design Matters: The modernization of Esri designDesign Matters: The modernization of Esri design
Design Matters: The modernization of Esri design
 
Esri User Conference 2016 - UX & UI activities
Esri User Conference 2016 - UX & UI activitiesEsri User Conference 2016 - UX & UI activities
Esri User Conference 2016 - UX & UI activities
 
No More Bacon Ipsum: High Content Fidelity Design
No More Bacon Ipsum: High Content Fidelity DesignNo More Bacon Ipsum: High Content Fidelity Design
No More Bacon Ipsum: High Content Fidelity Design
 
KIC Document 0001
KIC Document 0001KIC Document 0001
KIC Document 0001
 
Doggiestyle Site
Doggiestyle SiteDoggiestyle Site
Doggiestyle Site
 
The Art of User Experience: Methodologies Around Designing Great Apps
The Art of User Experience: Methodologies Around Designing Great AppsThe Art of User Experience: Methodologies Around Designing Great Apps
The Art of User Experience: Methodologies Around Designing Great Apps
 
Dizain studiya-visson
Dizain studiya-vissonDizain studiya-visson
Dizain studiya-visson
 

Similar to UX Design for Developers

BlackBerry DevCon 2011 - PhoneGap and WebWorks
BlackBerry DevCon 2011 - PhoneGap and WebWorksBlackBerry DevCon 2011 - PhoneGap and WebWorks
BlackBerry DevCon 2011 - PhoneGap and WebWorksmwbrooks
 
Firefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobileFirefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobileRobert Nyman
 
Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"
Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"
Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"Provectus
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVCAlive Kuo
 
Game jump: frontend introduction #1
Game jump: frontend introduction #1Game jump: frontend introduction #1
Game jump: frontend introduction #1Sebastian Pożoga
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureSimon Willison
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for youSimon Willison
 
(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of usStefan Adolf
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch
 
CodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложения
CodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложенияCodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложения
CodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложенияCodeFest
 
Training: Day Four - Struts, Tiles, Renders and Faces
Training: Day Four - Struts, Tiles, Renders and FacesTraining: Day Four - Struts, Tiles, Renders and Faces
Training: Day Four - Struts, Tiles, Renders and FacesArtur Ventura
 
Taking Web Apps Offline
Taking Web Apps OfflineTaking Web Apps Offline
Taking Web Apps OfflinePedro Morais
 
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication developmentGanesh Gembali
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing UpDavid Padbury
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
 
Webpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of usWebpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of usStefan Adolf
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applicationsTom Croucher
 

Similar to UX Design for Developers (20)

BlackBerry DevCon 2011 - PhoneGap and WebWorks
BlackBerry DevCon 2011 - PhoneGap and WebWorksBlackBerry DevCon 2011 - PhoneGap and WebWorks
BlackBerry DevCon 2011 - PhoneGap and WebWorks
 
Intro to HTML5
Intro to HTML5Intro to HTML5
Intro to HTML5
 
Firefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobileFirefox OS learnings & visions, WebAPIs - budapest.mobile
Firefox OS learnings & visions, WebAPIs - budapest.mobile
 
Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"
Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"
Василевский Илья (Fun-box): "автоматизация браузера при помощи PhantomJS"
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
Game jump: frontend introduction #1
Game jump: frontend introduction #1Game jump: frontend introduction #1
Game jump: frontend introduction #1
 
JavaScript Libraries: The Big Picture
JavaScript Libraries: The Big PictureJavaScript Libraries: The Big Picture
JavaScript Libraries: The Big Picture
 
How to make Ajax Libraries work for you
How to make Ajax Libraries work for youHow to make Ajax Libraries work for you
How to make Ajax Libraries work for you
 
Trimming The Cruft
Trimming The CruftTrimming The Cruft
Trimming The Cruft
 
(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us
 
DrupalCon jQuery
DrupalCon jQueryDrupalCon jQuery
DrupalCon jQuery
 
soft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.jssoft-shake.ch - Hands on Node.js
soft-shake.ch - Hands on Node.js
 
CodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложения
CodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложенияCodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложения
CodeFest 2014. Пухальский И. — Отзывчивые кроссплатформенные веб-приложения
 
Training: Day Four - Struts, Tiles, Renders and Faces
Training: Day Four - Struts, Tiles, Renders and FacesTraining: Day Four - Struts, Tiles, Renders and Faces
Training: Day Four - Struts, Tiles, Renders and Faces
 
Taking Web Apps Offline
Taking Web Apps OfflineTaking Web Apps Offline
Taking Web Apps Offline
 
Mobile webapplication development
Mobile webapplication developmentMobile webapplication development
Mobile webapplication development
 
JavaScript Growing Up
JavaScript Growing UpJavaScript Growing Up
JavaScript Growing Up
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
Webpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of usWebpack Encore - Asset Management for the rest of us
Webpack Encore - Asset Management for the rest of us
 
Writing robust Node.js applications
Writing robust Node.js applicationsWriting robust Node.js applications
Writing robust Node.js applications
 

More from Frank Garofalo

Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...
Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...
Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...Frank Garofalo
 
Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...
Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...
Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...Frank Garofalo
 
San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29
San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29
San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29Frank Garofalo
 
Pitch and Critique Method
Pitch and Critique MethodPitch and Critique Method
Pitch and Critique MethodFrank Garofalo
 
Idea Generation and Evaluation Workshop
Idea Generation and Evaluation WorkshopIdea Generation and Evaluation Workshop
Idea Generation and Evaluation WorkshopFrank Garofalo
 
Garofalo UX - Portfolio 2018
Garofalo UX - Portfolio 2018Garofalo UX - Portfolio 2018
Garofalo UX - Portfolio 2018Frank Garofalo
 
Startup San Diego - Volunteer Onboarding 2018 (v2)
Startup San Diego - Volunteer Onboarding 2018 (v2)Startup San Diego - Volunteer Onboarding 2018 (v2)
Startup San Diego - Volunteer Onboarding 2018 (v2)Frank Garofalo
 
The Business of UX - Being a Designer Is Not Enough
The Business of UX - Being a Designer Is Not EnoughThe Business of UX - Being a Designer Is Not Enough
The Business of UX - Being a Designer Is Not EnoughFrank Garofalo
 
Ideas, Human Experience, & ROI
Ideas, Human Experience, & ROIIdeas, Human Experience, & ROI
Ideas, Human Experience, & ROIFrank Garofalo
 
User Experience (UX) & User Interface (UI) Exchange 2016
User Experience (UX) & User Interface (UI) Exchange 2016User Experience (UX) & User Interface (UI) Exchange 2016
User Experience (UX) & User Interface (UI) Exchange 2016Frank Garofalo
 
Esri DevSummit 2016 - Journey Canvas:
Esri DevSummit 2016 - Journey Canvas: Esri DevSummit 2016 - Journey Canvas:
Esri DevSummit 2016 - Journey Canvas: Frank Garofalo
 
Purdue GIS Day 2015 Keynote - It's All About the Journey
Purdue GIS Day 2015 Keynote - It's All About the JourneyPurdue GIS Day 2015 Keynote - It's All About the Journey
Purdue GIS Day 2015 Keynote - It's All About the JourneyFrank Garofalo
 
Purdue GIS Day 2015 - Ideation Workshop
Purdue GIS Day 2015 - Ideation WorkshopPurdue GIS Day 2015 - Ideation Workshop
Purdue GIS Day 2015 - Ideation WorkshopFrank Garofalo
 
Brainstorming in an Agile World, present- Esri UC 2015
Brainstorming in an Agile World, present- Esri UC 2015Brainstorming in an Agile World, present- Esri UC 2015
Brainstorming in an Agile World, present- Esri UC 2015Frank Garofalo
 
Brainstorming in an Agile World (Esri DevSummit 2015)
Brainstorming in an Agile World (Esri DevSummit 2015)Brainstorming in an Agile World (Esri DevSummit 2015)
Brainstorming in an Agile World (Esri DevSummit 2015)Frank Garofalo
 
Demystifying User Experience & User Interface - Esri UC
Demystifying User Experience & User Interface - Esri UCDemystifying User Experience & User Interface - Esri UC
Demystifying User Experience & User Interface - Esri UCFrank Garofalo
 
Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...
Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...
Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...Frank Garofalo
 

More from Frank Garofalo (20)

Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...
Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...
Resident Engagement Focus to Increasing Productivity and Efficiency - ACUHO-I...
 
Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...
Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...
Toolkit Workshop: Learn Methods and Techniques for Understanding your Target ...
 
San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29
San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29
San Diego Startup Week 2019 Idea Track Lightning Talk Wed May 29
 
Garofalo UX: Training
Garofalo UX: TrainingGarofalo UX: Training
Garofalo UX: Training
 
Pitch and Critique Method
Pitch and Critique MethodPitch and Critique Method
Pitch and Critique Method
 
Idea Generation and Evaluation Workshop
Idea Generation and Evaluation WorkshopIdea Generation and Evaluation Workshop
Idea Generation and Evaluation Workshop
 
Garofalo UX - Portfolio 2018
Garofalo UX - Portfolio 2018Garofalo UX - Portfolio 2018
Garofalo UX - Portfolio 2018
 
Startup San Diego - Volunteer Onboarding 2018 (v2)
Startup San Diego - Volunteer Onboarding 2018 (v2)Startup San Diego - Volunteer Onboarding 2018 (v2)
Startup San Diego - Volunteer Onboarding 2018 (v2)
 
The Business of UX - Being a Designer Is Not Enough
The Business of UX - Being a Designer Is Not EnoughThe Business of UX - Being a Designer Is Not Enough
The Business of UX - Being a Designer Is Not Enough
 
Ideas, Human Experience, & ROI
Ideas, Human Experience, & ROIIdeas, Human Experience, & ROI
Ideas, Human Experience, & ROI
 
ROI + Brainstorming
ROI + BrainstormingROI + Brainstorming
ROI + Brainstorming
 
User Experience (UX) & User Interface (UI) Exchange 2016
User Experience (UX) & User Interface (UI) Exchange 2016User Experience (UX) & User Interface (UI) Exchange 2016
User Experience (UX) & User Interface (UI) Exchange 2016
 
Esri DevSummit 2016 - Journey Canvas:
Esri DevSummit 2016 - Journey Canvas: Esri DevSummit 2016 - Journey Canvas:
Esri DevSummit 2016 - Journey Canvas:
 
Purdue GIS Day 2015 Keynote - It's All About the Journey
Purdue GIS Day 2015 Keynote - It's All About the JourneyPurdue GIS Day 2015 Keynote - It's All About the Journey
Purdue GIS Day 2015 Keynote - It's All About the Journey
 
Purdue GIS Day 2015 - Ideation Workshop
Purdue GIS Day 2015 - Ideation WorkshopPurdue GIS Day 2015 - Ideation Workshop
Purdue GIS Day 2015 - Ideation Workshop
 
Brainstorming in an Agile World, present- Esri UC 2015
Brainstorming in an Agile World, present- Esri UC 2015Brainstorming in an Agile World, present- Esri UC 2015
Brainstorming in an Agile World, present- Esri UC 2015
 
UX & UI Exchange 2015
UX & UI Exchange 2015UX & UI Exchange 2015
UX & UI Exchange 2015
 
Brainstorming in an Agile World (Esri DevSummit 2015)
Brainstorming in an Agile World (Esri DevSummit 2015)Brainstorming in an Agile World (Esri DevSummit 2015)
Brainstorming in an Agile World (Esri DevSummit 2015)
 
Demystifying User Experience & User Interface - Esri UC
Demystifying User Experience & User Interface - Esri UCDemystifying User Experience & User Interface - Esri UC
Demystifying User Experience & User Interface - Esri UC
 
Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...
Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...
Kick-off for the User Experience (UX) & User Interface (UI) Summit: Developme...
 

UX Design for Developers

  • 1. UX Design for Developers Frank Garofalo & Jayson Ward @fgarofalo @defiantgoat #devsummit #esriux #virtualport
  • 2. Today’s menu • UX Design • Virtual Port – demo • Code - JavaScript Architecture - Sample Code #devsummit #esriux #virtualport
  • 3. User Interface / User Experience Design #devsummit #esriux #virtualport
  • 4. Agile Development & UX • HTML proof-of-concepts • Rapid prototyping 1. Build client-side (front-end) elements 2. Validate with client 3. Then wire-up the server-side (back-end) components #devsummit #esriux #virtualport
  • 6. DEMO #devsummit #esriux #virtualport
  • 8. Design consistency #devsummit #esriux #virtualport
  • 9. code ArcGIS API for JavaScript Dojo & jQuery #devsummit #esriux #virtualport
  • 10. JavaScript Architecture Default.aspx ArcGIS API for JavaScript main.js dojo.js module_advanced.js module_news.js module_reports.js module_infofeeds.js module_notifications.js module_vessels.js module_mjob.js module_resources.js module_videos.js #devsummit #esriux #virtualport
  • 11. Playing together in the sandbox Default.aspx <!-- jQuery & jQueryUI --> <script src="//ajax.aspnetcdn.com/ajax/jQuery/jquery-1.8.3.min.js“ type="text/javascript"> </script> <script src="//ajax.aspnetcdn.com/ajax/jquery.ui/1.10.1/jquery-ui.min.js“ type="text/javascript" > </script> <!-- ArcGIS JavaScript API --> <script type="text/javascript">var djConfig = { parseOnLoad: true };</script> <script src="//serverapi.arcgisonline.com/jsapi/arcgis/?v=3.3" type="text/javascript" > </script> <script src="scripts/dojo.js" type="text/javascript" ></script> <script src="scripts/main.js" type="text/javascript" ></script> #devsummit #esriux #virtualport
  • 12. Playing together in the sandbox main.js $(document).ready( function () { // Once jQuery and Dojo are ready. Start code. // Initialize DoJo Functions dojo.addOnLoad(initDojo); // Initialize jQuery Functions initJQuery_mainfunctions(); function initJQuery_mainfunctions() { //dostuff } }); #devsummit #esriux #virtualport
  • 13. Playing together in the sandbox dojo.js dojo.require("esri.map"); dojo.require("dijit.dijit"); dojo.require("esri.arcgis.utils"); var mapObj; function initDojo() { mapObj = new esri.Map("mapDiv", { basemap: "gray", center: geoCenter, displayGraphicsOnPan: false, fadeOnZoom: true }); } #devsummit #esriux #virtualport
  • 14. Playing together in the sandbox // Create a custom object under the jQuery namespace jQuery.virtualport = {}; // declared within main.js // namespace global variables jQuery.virtualport.mapObj = mapObj; // namespace functions function setRightPanelSwitch (in_element, in_direction) { // do stuff } jQuery.virtualport.setRightPanelSwitch = function (in_element, in_direction) { setRightPanelSwitch (in_element, in_direction); // calls local function } #devsummit #esriux #virtualport
  • 15. …that’s a wrap • UX Design • Virtual Port – demo • Code - JavaScript Architecture - Sample Code #devsummit #esriux #virtualport
  • 16. Special Thanks to… • Port of Long Beach • Project Team - Mourad Larif - Jayson Ward - Eric Apple - Frank Garofalo - Ed Carubis - Xiaomeng Zheng - Brenda Ibold - Mike Nelson - Selim Dissem - Ross Wakefield - Tanuka Bhowmick #devsummit #esriux #virtualport
  • 17. UX Design for Developers Frank Garofalo @fgarofalo Jayson Ward @defiantgoat #esriux #devsummit #virtualport Offering ID # 383 Find us at the SpeedGeeking event! #devsummit #esriux #virtualport
  • 19. Playing together in the sandbox function setRightPanelTabs() { // Changed to "on" event listener jQuery(".container_right_panel").on({ click: function (e) { var elem_tab_header = jQuery(this); var elem_tab_container = elem_tab_header.parent().parent().attr("id"); var elem_tab_header_id = elem_tab_header.attr("id"); setRightPanelTabActive(elem_tab_container, elem_tab_header_id); // local function e.preventDefault(); } }, ".tab.tab_header"); } #devsummit #esriux #virtualport
  • 20. Playing together in the sandbox // setRightPanelTabActive [Local] function setRightPanelTabActive (parent_container, element) { var elems_tab_headers = jQuery("#" + parent_container + " .tab.tab_header"); var elems_tab_contents = jQuery("#" + parent_container + " .tab.tab_content"); var elem_tab_content = jQuery("#" + parent_container + " .tab.tab_content." + element); // Tab Headers elems_tab_headers.removeClass("active"); jQuery("#" + element).addClass("active"); // Tab Contents elems_tab_contents.removeClass("active"); elem_tab_content.addClass("active"); } #devsummit #esriux #virtualport
  • 21. Virtual Port: App Structure #devsummit #esriux #virtualport
  • 22. Virtual Port: App Structure #devsummit #esriux #virtualport

Editor's Notes

  1. Rapid Design – From whiteboard sketches from a brainstorm session to fully rendered design comps within a few days.Goals:Application should be flexible / responsive so that it would work across multiple devices.Buttons and actions should take cues from mobile devices and tablets since users are becoming more accustomed to those types of user interactions.Large buttons – Easy to use with touch or mousePanels slide in and out Reviewed by client and then rapidly moved to build an html prototype.
  2. Re-used elements:AccordionsTabsButtonsDialogs / ModalsTouch-friendly