SlideShare una empresa de Scribd logo
1 de 31
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

Más contenido relacionado

La actualidad más candente

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 13Milind Waikul
 
HA and DR for Cloud Workloads
HA and DR for Cloud WorkloadsHA and DR for Cloud Workloads
HA and DR for Cloud Workloadsswamybabu
 
Technical Profile Keengroup
 Technical Profile Keengroup Technical Profile Keengroup
Technical Profile KeengroupTapas 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
 
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 perspectivebartlannoeye
 

La actualidad más candente (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
 

Destacado

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
 
September lancer lesson 9 12
September lancer lesson 9 12September lancer lesson 9 12
September lancer lesson 9 12kelferg
 

Destacado (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 a 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 2015WaveMaker, Inc.
 
Device APIs at TakeOff Conference
Device APIs at TakeOff ConferenceDevice APIs at TakeOff Conference
Device APIs at TakeOff Conferencedianacheng
 
Getting started with Apache Spark
Getting started with Apache SparkGetting started with Apache Spark
Getting started with Apache SparkHabib 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 KubernetesJosef Adersberger
 
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 KubernetesQAware GmbH
 
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 CloudsRightScale
 
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 CloudMongoDB
 
Up and Running with firebase
Up and Running with firebaseUp and Running with firebase
Up and Running with firebaseMd. 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 CloudsRightScale
 
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 PracticesMatt 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 KubernetesDataWorks 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 DomainDemi Ben-Ari
 

Similar a 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
 

Más de 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 BIBlue 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 TooBlue 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 ChildrenBlue 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 AwardBlue Raster
 
Emerging Hot Spot Analysis
Emerging Hot Spot AnalysisEmerging Hot Spot Analysis
Emerging Hot Spot AnalysisBlue 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 PresentationBlue 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 2016Blue Raster
 
Blue Raster Natureserve Synergy Workshop Presentation
Blue Raster Natureserve Synergy Workshop PresentationBlue Raster Natureserve Synergy Workshop Presentation
Blue Raster Natureserve Synergy Workshop PresentationBlue 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 LossBlue 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 PresentationBlue 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 MapsBlue 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 PresentationBlue 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 BeyondBlue Raster
 
Harnessing Python
Harnessing PythonHarnessing Python
Harnessing PythonBlue Raster
 

Más de 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
 

Último

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 

Último (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 

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

Notas del editor

  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