SlideShare a Scribd company logo
2012 ESRI Developer Summit:


Developing Online / Offline Mapping
Applications using Adobe AIR and
ArcGIS Server API for Flex.

Blue Raster                   Brendan Collins
@blueraster                   @brendancol
blueraster.com/blog           bcdcspatial.blogspot.com
Online    Desktop




Offline    Mobile
OFFLINE
                                    CONSIDERATIONS




• Which features to support…

• How to capture remote dependencies…

• How to store dependencies locally...

• How to extend application code function
  offline…
CAPTURING
                                   DEPENDENCIES



REMOTE
DEPENDENCIES
               • Any asset which is not
                 accessible locally on
                 the user’s machine
                 and is required for an
                 application feature.

               • Map Tiles
               • Geometry / Attributes
               • Non-geographic assets
CAPTURING
                                      DEPENDENCIES



IDENTIFYING
REMOTE
               • Monitor traffic using
DEPENDENCIES     HTTP Proxy
                 (e.g. Charles, Firebug)

               • Is the dependence
                 dynamically generated
                 or already sitting on
                 disk?
How do I store / retrieve
  these assets locally?
STORING
                                  DEPENDENCIES




General Strategy
 – Keep track of asset urls

 – Keep storage simple…

 – No normalization of response data
STORING
                                        DEPENDENCIES




Local File System
  – AIR File API

  – Easy to implement

  – Problematic as number of assets increase

  – Idea: Name files the MD5 of their URL
STORING
                                          DEPENDENCIES




SQLite
  – Scales better than File System

  – Power of SQL for attribute queries

  – Simple Data Model

  – IDEA: Store AMF directly as Base64 Encoded
    Text
STORING
                                        DEPENDENCIES




Tile Packages (10.1)
  – No need to “roll our own” tile storage
    strategy

  – Creation from within ArcGIS Desktop

  – IDEA: Check out TPKLayer for Flex API
    (Thank You Mansour!)
ArcGIS Server API for
     Python…?
Python / Django

 • Batteries Included!

 • Simple Wrapper for AGS REST-API

 • Django Management Commands

 • Django O.R.M. for SQLite
Am I Connected ?
(using URLMonitor)
Accessing Data in SQLite
ASYNC CONNECTION EXAMPLE
SYNC CONNECTION EXAMPLE
Retro-fit
Tiled Map Service Layer
EXTENDING
TILED MAP SERVICE LAYER
EXTENDING
TILED MAP SERVICE LAYER
EXTENDING
TILED MAP SERVICE LAYER
EXTENDING
TILED MAP SERVICE LAYER
AIR Deployment
    Options
• AIR Captive Runtime
  (Desktop)
   –Windows (.exe)
   –Mac (.dmg)
   –No need to install AIR
    Runtime separately
• Provide an AIR Installer (.air)
   –Cross platform installer
   –Encapsulates data
   –Requires separate AIR
    runtime installation
• Compile for Mobile
   –iOS (.ipa): App Store or
    register devices for limited-
    distribution

  –Android (.apk):Google Play
   (Android Market) or
   distribute yourself.
Thank You!
         visit blueraster.com/blog
        for additional information

Blue Raster            Brendan Collins
@blueraster            @brendancol
blueraster.com/blog    bcdcspatial.blogspot.com

More Related Content

What's hot

Exploring Opensource on Microsoft Azure
Exploring Opensource on Microsoft AzureExploring Opensource on Microsoft Azure
Exploring Opensource on Microsoft Azure
Abdul Rasheed Feroz Khan
 
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
Eric Shupps
 
Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13
Milind Waikul
 
HA and DR for Cloud Workloads
HA and DR for Cloud WorkloadsHA and DR for Cloud Workloads
HA and DR for Cloud Workloads
swamybabu
 
Technical Profile Keengroup
 Technical Profile Keengroup Technical Profile Keengroup
Technical Profile Keengroup
Tapas Shome
 
Android application development
Android application developmentAndroid application development
Android application developmentLinh Vi Tường
 
U.S. Census presentation at DC API Meetup 12/13/12 by Alec Permison
U.S. Census presentation at DC API Meetup 12/13/12 by Alec PermisonU.S. Census presentation at DC API Meetup 12/13/12 by Alec Permison
U.S. Census presentation at DC API Meetup 12/13/12 by Alec PermisonDC Web API User Group
 
Reversengineering
ReversengineeringReversengineering
Reversengineering
Prakruthi Sudanandappa
 
Dev day serverless from a devs perspective
Dev day   serverless from a devs perspectiveDev day   serverless from a devs perspective
Dev day serverless from a devs perspective
bartlannoeye
 

What's hot (10)

Exploring Opensource on Microsoft Azure
Exploring Opensource on Microsoft AzureExploring Opensource on Microsoft Azure
Exploring Opensource on Microsoft Azure
 
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
OSW06 - A Real World Guide to Building Highly Available Fault Tolerant ShareP...
 
Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13Running Siebel on AWS - Oracle Open World 13
Running Siebel on AWS - Oracle Open World 13
 
HA and DR for Cloud Workloads
HA and DR for Cloud WorkloadsHA and DR for Cloud Workloads
HA and DR for Cloud Workloads
 
Technical Profile Keengroup
 Technical Profile Keengroup Technical Profile Keengroup
Technical Profile Keengroup
 
Android application development
Android application developmentAndroid application development
Android application development
 
bassamResume
bassamResumebassamResume
bassamResume
 
U.S. Census presentation at DC API Meetup 12/13/12 by Alec Permison
U.S. Census presentation at DC API Meetup 12/13/12 by Alec PermisonU.S. Census presentation at DC API Meetup 12/13/12 by Alec Permison
U.S. Census presentation at DC API Meetup 12/13/12 by Alec Permison
 
Reversengineering
ReversengineeringReversengineering
Reversengineering
 
Dev day serverless from a devs perspective
Dev day   serverless from a devs perspectiveDev day   serverless from a devs perspective
Dev day serverless from a devs perspective
 

Viewers also liked

Geo-Enabling International Development - Blue Raster Esri UC 2011 Presentation
Geo-Enabling International Development - Blue Raster Esri UC 2011 PresentationGeo-Enabling International Development - Blue Raster Esri UC 2011 Presentation
Geo-Enabling International Development - Blue Raster Esri UC 2011 PresentationBlue Raster
 
Building a Custom UI Control with D3 - 2015 Esri Devoloper Summit
Building a Custom UI Control with D3 - 2015 Esri Devoloper SummitBuilding a Custom UI Control with D3 - 2015 Esri Devoloper Summit
Building a Custom UI Control with D3 - 2015 Esri Devoloper SummitBlue Raster
 
Copyretire
CopyretireCopyretire
September lancer lesson 9 12
September lancer lesson 9 12September lancer lesson 9 12
September lancer lesson 9 12
kelferg
 
Lifonearth2
Lifonearth2Lifonearth2
Lifonearth2
Lawrence University
 
A lifeon earth
A lifeon earthA lifeon earth
A lifeon earth
Lawrence University
 

Viewers also liked (8)

Geo-Enabling International Development - Blue Raster Esri UC 2011 Presentation
Geo-Enabling International Development - Blue Raster Esri UC 2011 PresentationGeo-Enabling International Development - Blue Raster Esri UC 2011 Presentation
Geo-Enabling International Development - Blue Raster Esri UC 2011 Presentation
 
Building a Custom UI Control with D3 - 2015 Esri Devoloper Summit
Building a Custom UI Control with D3 - 2015 Esri Devoloper SummitBuilding a Custom UI Control with D3 - 2015 Esri Devoloper Summit
Building a Custom UI Control with D3 - 2015 Esri Devoloper Summit
 
Copyretire
CopyretireCopyretire
Copyretire
 
Lifonearth2
Lifonearth2Lifonearth2
Lifonearth2
 
September lancer lesson 9 12
September lancer lesson 9 12September lancer lesson 9 12
September lancer lesson 9 12
 
Lifonearth2
Lifonearth2Lifonearth2
Lifonearth2
 
A lifeon earth
A lifeon earthA lifeon earth
A lifeon earth
 
Semesteratsea
SemesteratseaSemesteratsea
Semesteratsea
 

Similar to Developing Online / Offline Mapping Applications using Adobe AIR and ArcGIS Server API for Flex - Blue Raster Esri Developer Summit 2012 Presentation

Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Docker, Inc.
 
Cloud computing by prabhunath sharma
Cloud computing by prabhunath sharmaCloud computing by prabhunath sharma
Cloud computing by prabhunath sharmaPrabhunath Sharma
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
WaveMaker, Inc.
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
dianacheng
 
Getting started with Apache Spark
Getting started with Apache SparkGetting started with Apache Spark
Getting started with Apache Spark
Habib Ahmed Bhutto
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
QAware GmbH
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Josef Adersberger
 
Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)
Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)
Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)
RightScale
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
sbbabu
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
Simon Haslam
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
Josef Adersberger
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
QAware GmbH
 
Rightscale Webinar: Building Blocks for Private and Hybrid Clouds
Rightscale Webinar: Building Blocks for Private and Hybrid CloudsRightscale Webinar: Building Blocks for Private and Hybrid Clouds
Rightscale Webinar: Building Blocks for Private and Hybrid Clouds
RightScale
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB
 
Up and Running with firebase
Up and Running with firebaseUp and Running with firebase
Up and Running with firebase
Md. Sadhan Sarker
 
Building Blocks for Private and Hybrid Clouds
Building Blocks for Private and Hybrid CloudsBuilding Blocks for Private and Hybrid Clouds
Building Blocks for Private and Hybrid Clouds
RightScale
 
OSCON 2012 OpenStack Automation and DevOps Best Practices
OSCON 2012 OpenStack Automation and DevOps Best PracticesOSCON 2012 OpenStack Automation and DevOps Best Practices
OSCON 2012 OpenStack Automation and DevOps Best Practices
Matt Ray
 
Storage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on KubernetesStorage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on Kubernetes
DataWorks Summit
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Ryan Cuprak
 
Spark in the Maritime Domain
Spark in the Maritime DomainSpark in the Maritime Domain
Spark in the Maritime Domain
Demi Ben-Ari
 

Similar to Developing Online / Offline Mapping Applications using Adobe AIR and ArcGIS Server API for Flex - Blue Raster Esri Developer Summit 2012 Presentation (20)

Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
Back to the Future: Containerize Legacy Applications - Rob Tanner, Northern T...
 
Cloud computing by prabhunath sharma
Cloud computing by prabhunath sharmaCloud computing by prabhunath sharma
Cloud computing by prabhunath sharma
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conference
 
Getting started with Apache Spark
Getting started with Apache SparkGetting started with Apache Spark
Getting started with Apache Spark
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Patterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to KubernetesPatterns and Pains of Migrating Legacy Applications to Kubernetes
Patterns and Pains of Migrating Legacy Applications to Kubernetes
 
Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)
Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)
Rightscale Webinar: Designing Private & Hybrid Clouds (Hosted by Citrix)
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 
The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)The Kubernetes WebLogic revival (part 1)
The Kubernetes WebLogic revival (part 1)
 
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ... The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...
 
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...
 
Rightscale Webinar: Building Blocks for Private and Hybrid Clouds
Rightscale Webinar: Building Blocks for Private and Hybrid CloudsRightscale Webinar: Building Blocks for Private and Hybrid Clouds
Rightscale Webinar: Building Blocks for Private and Hybrid Clouds
 
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the CloudMongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
MongoDB World 2018: MongoDB and Cloud Foundry – A Match Made for the Cloud
 
Up and Running with firebase
Up and Running with firebaseUp and Running with firebase
Up and Running with firebase
 
Building Blocks for Private and Hybrid Clouds
Building Blocks for Private and Hybrid CloudsBuilding Blocks for Private and Hybrid Clouds
Building Blocks for Private and Hybrid Clouds
 
OSCON 2012 OpenStack Automation and DevOps Best Practices
OSCON 2012 OpenStack Automation and DevOps Best PracticesOSCON 2012 OpenStack Automation and DevOps Best Practices
OSCON 2012 OpenStack Automation and DevOps Best Practices
 
Storage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on KubernetesStorage Requirements and Options for Running Spark on Kubernetes
Storage Requirements and Options for Running Spark on Kubernetes
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Spark in the Maritime Domain
Spark in the Maritime DomainSpark in the Maritime Domain
Spark in the Maritime Domain
 

More from Blue Raster

ArcGIS Maps and Microsoft Integration: Power BI
ArcGIS Maps and Microsoft Integration: Power BIArcGIS Maps and Microsoft Integration: Power BI
ArcGIS Maps and Microsoft Integration: Power BI
Blue Raster
 
ArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can Too
ArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can TooArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can Too
ArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can Too
Blue Raster
 
Unless We Act Now: Impact of Climate Change on Children
Unless We Act Now: Impact of Climate Change on ChildrenUnless We Act Now: Impact of Climate Change on Children
Unless We Act Now: Impact of Climate Change on Children
Blue Raster
 
ESRI Federal Small Business Specialty 2017 Partner of the Year Award
ESRI Federal Small Business Specialty 2017 Partner of the Year AwardESRI Federal Small Business Specialty 2017 Partner of the Year Award
ESRI Federal Small Business Specialty 2017 Partner of the Year Award
Blue Raster
 
Emerging Hot Spot Analysis
Emerging Hot Spot AnalysisEmerging Hot Spot Analysis
Emerging Hot Spot Analysis
Blue Raster
 
Fighting Climate Change by Fighting Fires - Esri FedGIS 2016 Presentation
Fighting Climate Change by Fighting Fires - Esri FedGIS 2016 PresentationFighting Climate Change by Fighting Fires - Esri FedGIS 2016 Presentation
Fighting Climate Change by Fighting Fires - Esri FedGIS 2016 Presentation
Blue Raster
 
AppStudio for ArcGIS: The Basics - Esri FedGIS 2016
AppStudio for ArcGIS: The Basics - Esri FedGIS 2016AppStudio for ArcGIS: The Basics - Esri FedGIS 2016
AppStudio for ArcGIS: The Basics - Esri FedGIS 2016
Blue Raster
 
Blue Raster Natureserve Synergy Workshop Presentation
Blue Raster Natureserve Synergy Workshop PresentationBlue Raster Natureserve Synergy Workshop Presentation
Blue Raster Natureserve Synergy Workshop Presentation
Blue Raster
 
Blue Raster Presents on Emerging Hotspots of Global Tree Cover Loss
Blue Raster Presents on Emerging Hotspots of Global Tree Cover LossBlue Raster Presents on Emerging Hotspots of Global Tree Cover Loss
Blue Raster Presents on Emerging Hotspots of Global Tree Cover Loss
Blue Raster
 
Creating Apps with Maps in AppStudio - Esri User Conference 2015 Presentation
Creating Apps with Maps in AppStudio - Esri User Conference 2015 PresentationCreating Apps with Maps in AppStudio - Esri User Conference 2015 Presentation
Creating Apps with Maps in AppStudio - Esri User Conference 2015 Presentation
Blue Raster
 
U.S. National Arboretum - Esri User Conference 2015 Presentation
U.S. National Arboretum - Esri User Conference 2015 Presentation U.S. National Arboretum - Esri User Conference 2015 Presentation
U.S. National Arboretum - Esri User Conference 2015 Presentation
Blue Raster
 
The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...
The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...
The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...
Blue Raster
 
Best Practices for Story Maps
Best Practices for Story MapsBest Practices for Story Maps
Best Practices for Story Maps
Blue Raster
 
Kill those bugs with the ultimate tool - Chrome DevTools
Kill those bugs with the ultimate tool - Chrome DevToolsKill those bugs with the ultimate tool - Chrome DevTools
Kill those bugs with the ultimate tool - Chrome DevToolsBlue Raster
 
Make JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and CleanMake JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and CleanBlue Raster
 
Building a Custom UI control with D3
Building a Custom UI control with D3Building a Custom UI control with D3
Building a Custom UI control with D3Blue Raster
 
Great Story Maps - Blue Raster Esri User Conference 2014 Presentation
Great Story Maps - Blue Raster Esri User Conference 2014 PresentationGreat Story Maps - Blue Raster Esri User Conference 2014 Presentation
Great Story Maps - Blue Raster Esri User Conference 2014 Presentation
Blue Raster
 
Total Knockout: Start-to-Finish Development of Suitability Applications Using...
Total Knockout: Start-to-Finish Development of Suitability Applications Using...Total Knockout: Start-to-Finish Development of Suitability Applications Using...
Total Knockout: Start-to-Finish Development of Suitability Applications Using...
Blue Raster
 
Online Mapping Patterns in 2013 and Beyond
Online Mapping Patterns in 2013 and BeyondOnline Mapping Patterns in 2013 and Beyond
Online Mapping Patterns in 2013 and Beyond
Blue Raster
 
Harnessing Python
Harnessing PythonHarnessing Python
Harnessing Python
Blue Raster
 

More from Blue Raster (20)

ArcGIS Maps and Microsoft Integration: Power BI
ArcGIS Maps and Microsoft Integration: Power BIArcGIS Maps and Microsoft Integration: Power BI
ArcGIS Maps and Microsoft Integration: Power BI
 
ArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can Too
ArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can TooArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can Too
ArcGIS StoryMaps: Agencies Are Creating Great Story Maps; Here's How You Can Too
 
Unless We Act Now: Impact of Climate Change on Children
Unless We Act Now: Impact of Climate Change on ChildrenUnless We Act Now: Impact of Climate Change on Children
Unless We Act Now: Impact of Climate Change on Children
 
ESRI Federal Small Business Specialty 2017 Partner of the Year Award
ESRI Federal Small Business Specialty 2017 Partner of the Year AwardESRI Federal Small Business Specialty 2017 Partner of the Year Award
ESRI Federal Small Business Specialty 2017 Partner of the Year Award
 
Emerging Hot Spot Analysis
Emerging Hot Spot AnalysisEmerging Hot Spot Analysis
Emerging Hot Spot Analysis
 
Fighting Climate Change by Fighting Fires - Esri FedGIS 2016 Presentation
Fighting Climate Change by Fighting Fires - Esri FedGIS 2016 PresentationFighting Climate Change by Fighting Fires - Esri FedGIS 2016 Presentation
Fighting Climate Change by Fighting Fires - Esri FedGIS 2016 Presentation
 
AppStudio for ArcGIS: The Basics - Esri FedGIS 2016
AppStudio for ArcGIS: The Basics - Esri FedGIS 2016AppStudio for ArcGIS: The Basics - Esri FedGIS 2016
AppStudio for ArcGIS: The Basics - Esri FedGIS 2016
 
Blue Raster Natureserve Synergy Workshop Presentation
Blue Raster Natureserve Synergy Workshop PresentationBlue Raster Natureserve Synergy Workshop Presentation
Blue Raster Natureserve Synergy Workshop Presentation
 
Blue Raster Presents on Emerging Hotspots of Global Tree Cover Loss
Blue Raster Presents on Emerging Hotspots of Global Tree Cover LossBlue Raster Presents on Emerging Hotspots of Global Tree Cover Loss
Blue Raster Presents on Emerging Hotspots of Global Tree Cover Loss
 
Creating Apps with Maps in AppStudio - Esri User Conference 2015 Presentation
Creating Apps with Maps in AppStudio - Esri User Conference 2015 PresentationCreating Apps with Maps in AppStudio - Esri User Conference 2015 Presentation
Creating Apps with Maps in AppStudio - Esri User Conference 2015 Presentation
 
U.S. National Arboretum - Esri User Conference 2015 Presentation
U.S. National Arboretum - Esri User Conference 2015 Presentation U.S. National Arboretum - Esri User Conference 2015 Presentation
U.S. National Arboretum - Esri User Conference 2015 Presentation
 
The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...
The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...
The Power of Story Maps, Data Visualization, and Analysis: NetHope and Blue R...
 
Best Practices for Story Maps
Best Practices for Story MapsBest Practices for Story Maps
Best Practices for Story Maps
 
Kill those bugs with the ultimate tool - Chrome DevTools
Kill those bugs with the ultimate tool - Chrome DevToolsKill those bugs with the ultimate tool - Chrome DevTools
Kill those bugs with the ultimate tool - Chrome DevTools
 
Make JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and CleanMake JavaScript Lean, Mean, and Clean
Make JavaScript Lean, Mean, and Clean
 
Building a Custom UI control with D3
Building a Custom UI control with D3Building a Custom UI control with D3
Building a Custom UI control with D3
 
Great Story Maps - Blue Raster Esri User Conference 2014 Presentation
Great Story Maps - Blue Raster Esri User Conference 2014 PresentationGreat Story Maps - Blue Raster Esri User Conference 2014 Presentation
Great Story Maps - Blue Raster Esri User Conference 2014 Presentation
 
Total Knockout: Start-to-Finish Development of Suitability Applications Using...
Total Knockout: Start-to-Finish Development of Suitability Applications Using...Total Knockout: Start-to-Finish Development of Suitability Applications Using...
Total Knockout: Start-to-Finish Development of Suitability Applications Using...
 
Online Mapping Patterns in 2013 and Beyond
Online Mapping Patterns in 2013 and BeyondOnline Mapping Patterns in 2013 and Beyond
Online Mapping Patterns in 2013 and Beyond
 
Harnessing Python
Harnessing PythonHarnessing Python
Harnessing Python
 

Recently uploaded

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Jeffrey Haguewood
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 

Recently uploaded (20)

Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 

Developing Online / Offline Mapping Applications using Adobe AIR and ArcGIS Server API for Flex - Blue Raster Esri Developer Summit 2012 Presentation

  • 1. 2012 ESRI Developer Summit: Developing Online / Offline Mapping Applications using Adobe AIR and ArcGIS Server API for Flex. Blue Raster Brendan Collins @blueraster @brendancol blueraster.com/blog bcdcspatial.blogspot.com
  • 2.
  • 3.
  • 4.
  • 5. Online Desktop Offline Mobile
  • 6. OFFLINE CONSIDERATIONS • Which features to support… • How to capture remote dependencies… • How to store dependencies locally... • How to extend application code function offline…
  • 7. CAPTURING DEPENDENCIES REMOTE DEPENDENCIES • Any asset which is not accessible locally on the user’s machine and is required for an application feature. • Map Tiles • Geometry / Attributes • Non-geographic assets
  • 8. CAPTURING DEPENDENCIES IDENTIFYING REMOTE • Monitor traffic using DEPENDENCIES HTTP Proxy (e.g. Charles, Firebug) • Is the dependence dynamically generated or already sitting on disk?
  • 9. How do I store / retrieve these assets locally?
  • 10. STORING DEPENDENCIES General Strategy – Keep track of asset urls – Keep storage simple… – No normalization of response data
  • 11. STORING DEPENDENCIES Local File System – AIR File API – Easy to implement – Problematic as number of assets increase – Idea: Name files the MD5 of their URL
  • 12. STORING DEPENDENCIES SQLite – Scales better than File System – Power of SQL for attribute queries – Simple Data Model – IDEA: Store AMF directly as Base64 Encoded Text
  • 13. STORING DEPENDENCIES Tile Packages (10.1) – No need to “roll our own” tile storage strategy – Creation from within ArcGIS Desktop – IDEA: Check out TPKLayer for Flex API (Thank You Mansour!)
  • 14. ArcGIS Server API for Python…?
  • 15. Python / Django • Batteries Included! • Simple Wrapper for AGS REST-API • Django Management Commands • Django O.R.M. for SQLite
  • 16. Am I Connected ? (using URLMonitor)
  • 17.
  • 18.
  • 27. AIR Deployment Options
  • 28. • AIR Captive Runtime (Desktop) –Windows (.exe) –Mac (.dmg) –No need to install AIR Runtime separately
  • 29. • Provide an AIR Installer (.air) –Cross platform installer –Encapsulates data –Requires separate AIR runtime installation
  • 30. • Compile for Mobile –iOS (.ipa): App Store or register devices for limited- distribution –Android (.apk):Google Play (Android Market) or distribute yourself.
  • 31. Thank You! visit blueraster.com/blog for additional information Blue Raster Brendan Collins @blueraster @brendancol blueraster.com/blog bcdcspatial.blogspot.com

Editor's Notes

  1. TODO: Change Blue Raster Logo
  2. -Web version of application-highly configurable-straight forward data modelView detailed information on sawmills. -See the progress different logging concession have in developing and implementing required forest management plans.-View mining permits-View the national origin of primary investors in logging companies operating in the Republic.
  3. -Desktop version-
  4. We at Blue Raster helped WRI tell their story of Forest Management throughout Central Africa. But that story was still not able to reach staff and collaborators while in the field. Allowing the data to be accessed and explore offline brought this experience to important actors, those working and living in-country.
  5. ESRI Flex API works great. Easily take an existing flex application and convert it to function for desktop or mobile.
  6. Identify the key features of the application to bring offlineCapture all remote dependencies for those featuresDevelop a strategy of local data storageRetro-fit web api to function seamlessly offline-This is not a linear process, but rather an iterative process in which the answer to one consideration influences other. For example, if you are unable to locally store data required for a feature to function offline, then the you must re-evaluate which features of the online application will be available when disconnected.
  7. When converting an online application to function offline, you need to convert remote dependencies to LOCAL dependencies, or disable features with require them. Most likely you will favor making the assets accessible locally, but disabling features is sometimes inevitable depending on the scope, available-time and budget of the project. Example: Share with Facebook and Twitter. I’m not going to specifically discuss the process of disabling features within the application, but I will say that this is where having a loosely coupled architecture pays off. One way to Dependency injection is also very very important. I’m not talking about using a formal Dependency Injection Framework, but rather that you provide your classes and components the assets they require, instead of letting them go out and find them. In Model-View-Controller terms, a view should not be making URLRequests to access data, instead it should be given a model containing data to represent visually.
  8. For each of the dependencies you identify, you need to know where it’s feasible within the context of the project to store and access locally. One example of a dependency which I found too challenging to bring offline was a exportMap request from ArcGIS Server.
  9. Quick: MD5 is a cryptographic hash function which produces a unique hex-decimal string for any input. THIS IS A ONE WAY TICKET; No coming back; You can’t for example take the MD5 hash and convert it back to the original string value;
  10. Quick: MD5 is a cryptographic hash function which produces a unique hex-decimal string for any input. THIS IS A ONE WAY TICKET; No coming back; You can’t for example take the MD5 hash and convert it back to the original string value;
  11. Ok so now that we’ve identified the dependencies, we need to download..When implementing a strategy for storing content, I found it helpful to step away from AIR and use python. I think python is more productive for implementing data models even data models for storing content it can be very helpful to step away from AIR. AIR is robust by nature as technology for the mobile and desktop.
  12. Ok so now that we’ve identified the dependencies, we need to download..When implementing a strategy for storing content, I found it helpful to step away from AIR and use python. I think python is more productive for implementing data models even data models for storing content it can be very helpful to step away from AIR. AIR is robust by nature as technology for the mobile and desktop.
  13. Ok so now that we’ve identified the dependencies, we need to download..When implementing a strategy for storing content, I found it helpful to step away from AIR and use python. I think python is more productive for implementing data models even data models for storing content it can be very helpful to step away from AIR. AIR is robust by nature as technology for the mobile and desktop.
  14. Ok so now that we’ve identified the dependencies, we need to download..When implementing a strategy for storing content, I found it helpful to step away from AIR and use python. I think python is more productive for implementing data models even data models for storing content it can be very helpful to step away from AIR. AIR is robust by nature as technology for the mobile and desktop.
  15. Ok so now that we’ve identified the dependencies, we need to download..When implementing a strategy for storing content, I found it helpful to step away from AIR and use python. I think python is more productive for implementing data models even data models for storing content it can be very helpful to step away from AIR. AIR is robust by nature as technology for the mobile and desktop.
  16. Key Point: You need a windows environmentto compile an exe / mac environment to compile .dmg
  17. TODO: Get Blue Raster Logo