ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development...

29
ArcGIS Runtime SDK for .NET Building Apps Antti Kajanus [email protected] David Cardella [email protected]

Transcript of ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development...

Page 1: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Runtime SDK for .NET Building Apps

Antti Kajanus [email protected]

David Cardella [email protected]

Page 2: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

Thank You to Our Generous Sponsor

Page 3: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

SDK Highlights

• High-performance 2D and 3D mapping

• Integration with Portal and ArcGIS Online

Load, edit, and save web maps

• Work offline with local data

Read mobile map packages (.mmpk) created with ArcGIS Pro

Take web maps offline

Feature service editing and sync

Geocode and Routing

• Work with device sensors

• Perform geometric operations locally

• Task-based asynchronous pattern

• MVVM friendly

Page 4: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

What’s new in 100.1

• Related tables

• Client-side labeling

• Enchanted network analysis (Service areas, Closest facilities) – Online

• Heatmap renderer

• Additonal layer types (Image services, OpenStreetMap, Bing…)

• SceneView camera controllers

• Support for StreetMap Premium

• OfflineMapTask – On-demand workflow

Page 5: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

What’s new in 100.2

• Enchanted network analysis (Service areas, Closest facilities) – Offline

• Scene analysis (Line of Sight, Viewshed)

• Additonal layer types (WMS, WMTS, ENC (S-57))

• GeoPackage

• ExportVectorTilesTask

• OfflineMapTask – On-demand workflow

Page 6: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

Overview

Page 7: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Online

ArcGIS Enterprise

Overview

App

ArcGIS Runtime .NET API

Device

ArcGIS

Runtime

Page 8: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Runtime SDK for .NET

• Software Development Kit is a set of tools for developers

• Visual Studio templates: For all supported platforms

• API NuGet packages: For each platform

• Documentation: Developers Guide, API reference, Samples

• Samples viewer: Source code in GitHub repository

• Toolkit: Open source GitHub repository

• GeoNet: Discussion, blogs

Guide

API Ref

Samples

Community

ArcGISRuntime

SDK

ArcGIS Runtime API

Runtime Core

Templates Toolkit

Page 9: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Runtime for .NET 100.1

Demo :

Samples application

Page 10: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

System requirements

Windows 7 SP1 Windows 8.1 Windows 10 macOS 10.12

IDE Visual Studio Visual Studio Visual Studio Visual Studio for Mac

WPF Yes Yes Yes No

UWP No No Yes No

Android Yes Yes Yes Yes

iOS Yes Yes Yes Yes

Forms No Android, iOS Android, iOS, UWP Android, iOS

• All iOS development requires a Mac computer to act as a build host• Xamarin development requires VS 2015 Update 3, VS 2017, or VS 2017 for Mac

Page 11: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• Real world apps based on use cases collected from users

• Complete working apps with detailed instructions for getting started

• Open sourced on GitHub (Apache 2.0 license)

• Supporting documentation (code, data creation, app workflows, customization)

• Current apps:

- .NET SDK: Indoor Routing for iOS (Xamarin), Offline Mapbook for Windows

• Future apps:

- Tree Survey, Maps App for iOS, Android, Windows (Xamarin) and Javascript, Situational Awareness for Qt

Runtime Example Apps

Page 12: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

https://developers.arcgis.com/example-apps/

Runtime Example Apps

Page 13: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

https://community.esri.com/groups/arcgis-example-apps

Runtime Example Apps

Page 14: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

Architecture

Page 15: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Runtime SDK for .NET & XamarinArchitecture Diagram

Win32Windows Runtime

iOS Android

ArcGIS Runtime Core (C++)

ArcGIS Runtime SDK for .NET (C#)

.NET Core.NET Framework

WPF UWP iOS Android

Internal

Public SDK

WPF UWP iOS Android Native UI

Common SDK

• Maps, scenes, layers, symbols,

feature data, geocoding, routing,

portal, rasters, offline/syncing,

geometry, geometry engine…

• MapView, SceneView

Common UI

Where all the magic happens

Mono / Xamarin

Interop

Xamarin Forms

OS

Page 16: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Runtime SDK for .NETA simpler view…

Operating System

ArcGIS Runtime SDK for .NET (C#)

WPF UWP iOS Android

Native UI

Common SDK

• Maps, scenes, layers, symbols,

feature data, geocoding, routing,

portal, rasters, offline/syncing,

geometry, geometry engine…

• MapView, SceneView

WPF UWP iOS Android

Xamarin Forms Common UI

.NET

Page 17: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• GeoView control: MapView and SceneView

- UI container for a single Map (2D) or Scene (3D)

- Manages a collection of GraphicsOverlays

- Events for user interaction

- Facilitates MVVM design

• Map / Scene

- Container for a collection of layers

• Layer

- Display base maps or geographic features

- Various types

Map

MapView

Layers

Scene

SceneView

Layers

ArcGIS Runtime 101: Display maps and layers

Page 18: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Runtime for .NET 100.1

Demo :

Building a mapping application for Universal Windows Platform

Page 19: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• Fully connected maps

- Authored and distributed through Portals

• Preplanned map areas

- Based on webmaps and areas authored throughArcGIS for Python API or Geoprocessing tools

- Downloaded using ArcGIS Runtime

• On-demand map areas

- Based on webmaps

- Areas taken offline on request basis

• Fully disconnected maps

- Authored using ArcGIS Desktop

- Side loaded to the devices

Maps workflows

NOTE

These are main workflows so mixing these are possible and practical.

Disconnected

Connected

Page 20: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

What is Xamarin

Page 21: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• Xamarin

Based on the Mono runtime*

Compiles into a native Android or iOS app

Exposes all Android and iOS APIs

• Xamarin is not a cross-platform SDK. It’s a cross-platform language (C#)

Most of .NET’s core libraries are shareable code

UI code is very platform specific

Device code not shareable (Bluetooth, GPS, sensors etc)

• Abstraction-libraries exist that simplifies this

Xamarin.Forms: Cross-platform UI framework which supports XAML

Lots of nuget-libraries

What is Xamarin

Page 22: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• One Common API surface

- Same API on Windows Desktop, UWP, iOS, and Android

- Same underlying code, same functionality

- Most code becomes shareable cross-platform

• Streamlined Development

- Changes inherently apply to all platforms

- All platforms remain in sync

• Tooling in Visual Studio

- Shared projects

The ArcGIS Runtime for XamarinWhy code-sharing works

Page 23: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• Xamarin Forms: lots of shared code, less control- Use XAML to define the UI

Rendered appropriately for each platform

‘Lowest common denominator’ UI elements

- Basic cross-platform functionality

• Xamarin Native: less shared code, more control- Customize UIs with platform-specific elements and designers

- More platform-specific control

- Native behavior for user interactions

Xamarin options

Page 24: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

Which one to pick?

Xamrin.Forms Xamarin.Native

• Apps that require little platform-specific functionality

• Apps where code sharing is more important than custom UI

• Time until delivery

• Apps that uses many platform-specific APIs

• Apps where custom UX is more important than code sharing

• Apps that require specialized interaction

Page 25: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

ArcGIS Runtime for .NET 100.1

Demo :

Cross-platform development using XamarinThe maps app

Page 26: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• Fully native iOS and Android apps

• Exposes all functionality of the iOS and Android APIs

• Ability to share the majority of an app’s code (60-100%)

• Performance: code is compiled to native binary, not interpreted

• Immediate updates to support iOS and Android releases

• Support for 3rd-party .NET libraries

•Visual Studio and C#

Why Xamarin is a good option?

Page 27: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

• November 2017

• ArcGIS Runtime SDK for .NET Xamarin

• Targeting high-end mobile devices

- Good framerate, high resolution, best chipsets, superior camera

• Need an active project that requires VR/AR solution

Announcing the Private Beta program

[email protected]

Page 28: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported

Please Take Our Survey!

Download the Esri Events app

and go to DevSummitSelect the session you attended

Scroll down to the

“Feedback” section

Complete Answers,

add a Comment,

and Select “Submit”

Page 29: ArcGIS Runtime SDK for .NET: Building Apps · ArcGIS Runtime SDK for .NET •Software Development Kit is a set of tools for developers •Visual Studio templates: For all supported