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

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

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

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

ArcGIS for Developers: An Introduction. Moey Min Ken

ArcGIS Runtime SDK for.net Building Apps. Rex Hansen

Developing Cross-Platform Native Apps with AppStudio for ArcGIS. Jo Fraley Erwin Soekianto

ArcGIS Runtime SDK for.net Getting Started. Jo Fraley

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

ArcGIS Runtime SDK for Java: A Beginner s Guide. Mark Baird JC Malott

ArcGIS Runtime SDK for Java: Building Apps. Mark Baird

ArcGIS App Strategies Ben

Kick Start your Embedded Development with Qt

Getting Started with ArcGIS Runtime SDK for the Microsoft.NET Framework. Morten Nielsen Mike Branscomb Antti Kajanus Rex Hansen

ArcGIS Runtime SDK for WPF

Developing Qt Apps with the Runtime SDK

Qt for Device Creation

ArcGIS Runtime SDKs: Building a Routing Application. Frank Kish Konstantin Kutsner

An introduction to ArcGIS Runtime

Introduction to Mobile Development

Getting Started with the ArcGIS Runtime SDKs. Dave, Will, Euan

ArcGIS Runtime SDK for Java: Building Apps. Tyler Schiewe

An Introduction to GIS for developers

ArcGIS Runtime: Building 3D Apps. Rex Hansen Adrien Meriaux

Getting Started with ArcGIS Runtime. Jeff Shaner David Cardella

Deploying ios Apps. Al Pascual

Interactive webmaps with ArcGIS. Kristel Meikas, AlphaGIS

Developing Mobile Apps with the ArcGIS Runtime SDK for.net

Esri Developer Summit in Europe Building Applications with ArcGIS Runtime SDK for Java

Building Apps with the ArcGIS Runtime SDK for ios

ArcGIS for Mobile An Introduction. Bonnie Stayer

Sharing Web Layers and Services in the ArcGIS Platform. Melanie Summers and Ty Fitzpatrick

Building Applications with the ArcGIS Runtime SDK for WPF

ArcGIS Apps: An Overview

Building Applications with ArcGIS Runtime SDK for ios - Part I. Divesh Goyal Mark Dostal

HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN

Mobile Development Updates From #MSBuild 2017 &.NET Standard (& What It Means For You) Andrew Birch

Web AppBuilder Presented by

Dynamic Situational Awareness. Through Developer Applications

ArcGIS GeoEvent Server: Making 3D Scenes Come Alive with Real-Time Data

Designing for the Mobile Web Lesson 4: Native Apps

Best Development Practices and Patterns Using ArcGIS Runtime SDK for Android. Xueming Wu Puneet Prakash

Mobile Technologies. Types of Apps

ArcGIS Runtime SDK for ios and macos: Building Apps. Suganya Baskaran, Gagandeep Singh

ArcGIS Enterprise: Sharing Imagery. Zikang Zhou Imagery and Raster team

Index. Alessandro Del Sole 2017 A. Del Sole, Beginning Visual Studio for Mac,

ArcGIS Enterprise Extending Services. Bill Major

Introduction to Xamarin Cross Platform Mobile App Development

Xamarin. MS (IT), 4 th Sem. HOD, Dept. Of IT, HOW DOES XAMARIN WORKS?

Creating outstanding digital cockpits with Qt Automotive Suite

The Road to Runtime. Mark Cederholm UniSource Energy Services Flagstaff, Arizona

Tom Brenneman. Good morning and welcome, introductions and thank you for being here.

Advances in GIS help create Smarter Communities

Building Java Apps with ArcGIS Runtime SDK

In the Driver s Seat

Mitchell Bosecke, Greg Burlet, David Dietrich, Peter Lorimer, Robin Miller

Demystifying.NET Standard and.net Core. Presented by Steve Ives

Connect and Transform Your Digital Business with IBM

ArcGIS for Mobile Devices: An Overview. Jeff Shaner Bonnie Stayer

Vb Net Tutorial For Beginners Visual Studio 2010 Express Windows Service Template

Modern App Architecture

Mobile Programming. Two Scenarios Web sites, like Tuubi where you read/write/download/ upload material

Windows 8. Rainer Stropek. System Architecture. System Architecture re of Windows Store Apps. Saves the day. software architects gmbh

Extending ArcGIS for Server. Jon Satchwell, Esri Switzerland Cédric Despierre Corporon, Esri France

Introduction to Web AppBuilder for ArcGIS: JavaScript Apps Made Easy

Copyright

Exploring Cross-platform Tools For Mobile Development: Lessons Learned. mlearning: Tips and Techniques for Development and Implementation

Mobile Application Strategy

ArcGIS Online: Best Practices for High-Demand Web Applications. Kelly Gerrow-Wilcox Bonnie Stayer Beth Romero

3D in the ArcGIS Platform. Chris Andrews

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

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

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

Working with Feature Layers. Russell Brennan Gary MacDougall

Tizen.NET. Transition of Tizen Developer Environment. Samsung Electronics S/W Center Sung-Jae Lee, Seungkeun Lee

<Insert Picture Here> JavaFX 2.0

ArcGIS Enterprise: Portal Administration BILL MAJOR CRAIG CLEVELAND

Getting Started with ArcGIS Runtime SDK for Qt. Thomas Dunn & Nandini Rao

Nokia for developers. Alexey Kokin. Developer Relations

Multi-platform Mobile App. Development with Apache Cordova

Mobile Development A Whirlwind Tour!

Manual Visual Studio 2010 Web Developer Tools Offline

What Mobile Development Model is Right for You?

ArcGIS Runtime SDKs Building Offline Apps. Nick Furness

DAQRI ARToolKit 6/Open Source. Mobile development. ios and Android. Oxford Brookes University

Mobile Web Appplications Development with HTML5

Building WPF Apps with the new ArcGIS Runtime SDK for.net. Antti Kajanus Mike Branscomb

Take Your Team Mobile with Xamarin

Supported Devices, OS, and Browsers

User Guide. Android x86 Modified System. Sponsor: Huan Ren. Compiled by: Zachary Bair, Taronish Daruwalla, Joshua Duong, and Anthony Nguyen

Transitioning to the ArcGIS Runtime SDK for.net. Antti Kajanus & Mike Branscomb

ArcGIS Runtime: Styling Maps. Ralf Gottschalk, Daniel Lee, Lucas Danzinger

Oracle Mobile Application Framework

STU SDK Redistribution

Windows 8 Release Preview. Product Guide for Developers. preview.windows.com

Xamarin Mobile Development For Android Cookbook

Integrating Mobile Applications - Contrasting the Browser with Native OS Apps. Cary FitzGerald

Windows Presentation Foundation (WPF)

Android Sdk Tutorial For Windows 7 64 Bit Full Version

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

ArcGIS Runtime SDK for Android: Building Apps. Shelly Gill

Transcription:

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

Agenda Cross-platform review ArcGIS Runtime cross-platform options - Java - Qt -.NET ArcGIS Runtime: Building Cross-Platform Apps

Native vs Web Native strategies offer the best device integration and the most out-of-the-box functionality for connected and offline workflows, but they require native development skills. You can use ArcGIS Runtime SDKs to create native apps. Web strategies use HTML, JavaScript, and CSS hosted on a web server and delivered to the user's device or desktop using a web browser. This strategy is best for connected workflows if you don't know the devices your users have and you need to reach a wide audience. You can use the ArcGIS API for JavaScript to create web client solutions.

Cross-platform native application considerations Benefits - Share application code - Enforces good design patterns - Makes your app available to more users Challenges - User experience of your app may vary - Handling platform idiosyncrasies (security, bugs, etc) - More testing - Development cost

Building Native Apps on Multiple Platforms Which One is Right for Me? - Understand expectations of your users - Educate yourself and your team - Be prepared to learn something new Multiple players in the market - Java - Qt Company - Microsoft

ArcGIS Runtime cross-platform options All Runtime APIs built on common Runtime core Android Java ios macos Qt / QML.NET / Xamarin C++ runtime core Windows Android Linux ios macos UWP x86 x64 ARM DirectX OpenGL

Java Mark Baird Qt/QML Michael Tims.NET/Xamarin Morten Nielsen

Java Mark Baird

Cross platform Java Development Java is everywhere! Write applications for multiple platforms 100.2.1 Release supports Windows, Mac and Linux Java Runtime is aimed at desktop platforms (JavaFX based) Familiar architecture where applications run in a JVM Sits on the ArcGIS Runtime architecture

Java Runtime development and deployment Deploy Windows Linux Mac OS X JAR file JRE JRE JRE Compile IDE JAR file JAR file JAR file Runtime Core Runtime Core Runtime Core.dll file.so file.dylib file Development environment Cross platform deployments

Considerations for writing cross platform in Java Generally it just works! JavaFX is consistent in behaviour on all platforms File systems need special consideration: - Windows compared to Mac and Linux: - C:\Users\Mark\Projects\MyData.geodatabase - /Users/Mark/Projects/MyData.geodatabase - If possible use relative path locations from your executable JAR - Use / as it works on Windows too. - But to be sure : System.getProperty("file.separator"); - Environment variables might help too.

An App for Windows, Linux and a Mac Mark Baird

Summary (development for desktop platforms) Pros - IDE and JRE is free - Deployments can be identical for ALL platforms - JavaFX apps style for the platform Cons - Apps will not work if JRE not present - Enterprise deployments of Java are easy - Self contained application packaging - Not for mobile applications

Qt/QML Michael Tims

Qt The Qt Company www.qt.io What do you get with Qt? - A complete cross-platform software framework - Ready-made UI elements, C++ libraries, and tooling Over 1 million developers (indie, corporate) worldwide Open-source community Code less, create more, deploy everywhere

Platform Support ArcGIS Runtime SDK for Qt Windows x86, x64 Linux x64 macos x64 Android armv7, x86 ios armv7, arm64, sim Universal Windows Platform (UWP)? Linux Embedded arm?

2 APIs ArcGIS Runtime SDK for Qt C++ API - Qt Widgets for UI - Qt Quick (QML) for UI - Modern C++ language C++ 11 - Fast performance direct binding to the Runtime Core (C++) QML API - Qt Quick (QML) for UI - Declarative language - Imperative JavaScript business logic code - AppStudio (Survery 123)

QML API Example QML API code Highly readable JSON/CSSlike syntax ArcGIS Runtime Declarative UI elements Imperative JavaScript Code to handle events Dynamic property binding

Qt SDK System setup Set up your build environments Compiler, SDK dependencies - ios: Xcode compiler - Windows: Visual Studio compiler, debugging tools - Linux: GCC compiler - Android: Android NDK and SDK Setup once, same cross-platform code IDE: Qt Creator - Cross-platform IDE - Design, develop, test, deploy from one tool

Qt SDK Demo - Getting started

Qt Quick Controls Ready-made UI elements macos Android Nexus 5

Qt Quick Controls 2 More ready-made UI elements Material Universal Default Fusion Imagine style Available Styles - Default style - Material style - Google s guidelines - Universal style - Microsoft s guidelines - Fusion style - Desktop-oriented look and feel - Imagine style - Based on image assets

Qt Quick Controls Demo

Qt/QML Limitations Cross-platform hurdles Missing APIs - Manual implementation of Qt abstraction APIs - No push notification API - No access to Android photo gallery - No inter-app communication APIs - QML is designed for UI - C++ only APIs, i.e. networking, file IO, and text-to-speech - ArcGIS Extras and AppStudio Framework wrappers UI Limitations - Inconsistencies with native look and feel

Qt SDK framework licensing Open Source or Commercial Use Qt for Application Development license model Dual-licensed under commercial and open source licenses - Commercial - Full rights to create and distribute software - Open Source - Qt 5.6.x - LGPLv2.1 - Qt 5.7.x and up - GPL and LGPLv3 More information - http://www.qt.io/download

Qt SDK Pros and Cons ArcGIS Runtime SDK for Qt Pros - Same modules - Same code - Same workflow - Same look and feel - Access to device sensors - Open-source community Cons - Incomplete native APIs - Common abstraction API for iphone and Android SDKs - Look and feel of the native platform - Qt framework can increase apps size

.NET/Xamarin Morten Nielsen

What is Xamarin? 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 ArcGIS Runtime SDK for.net Supports: - WPF - Windows Universal app (UWP) - Xamarin Android - Xamarin ios - Xamarin.Forms (Android, ios, UWP) Exact same business logic code for all platforms. - Use native platform UI framework - Or use Xamarin.Forms abstraction to share UI logic as well

ArcGIS Runtime SDK for.net & Xamarin Architecture Diagram WPF UWP ios Android Public SDK Xamarin Forms Common UI WPF UWP ios Android Native UI ArcGIS Runtime SDK for.net (C#) Common SDK.NET Framework.NET Core Mono / Xamarin Interop MapView, SceneView Maps, scenes, layers, symbols, feature data, geocoding, routing, portal, rasters, offline/syncing, geometry, geometry engine Internal ArcGIS Runtime Core (C++) Where all the magic happens OS Win32 Windows Runtime ios Android

ArcGIS Runtime SDK for.net & Xamarin A simpler view WPF UWP ios Android WPF Xamarin Forms Native UI MapView, SceneView ArcGIS Runtime SDK for.net (C#).NET Common SDK Maps, scenes, layers, symbols, feature data, geocoding, routing, portal, rasters, offline/syncing, geometry, geometry engine Operating System

Xamarin Demo Source: http://esriurl.com/xamarinrouting

Pros and Cons Pros: - Xamarin is free and Open Source - Note: Visual Studio isn t free for most commercial uses though - Target all platforms in a single IDE (Visual Studio), on a single OS* - Full access to all native platform APIs Cons: - Not 100% abstraction of all platform code - Xamarin Tooling (while greatly improving) can be a little buggy - *You need a Mac for ios deployment

Questions? developers.arcgis.com/arcgis-runtime

Please take our Survey Your feedback allows us to help maintain high standards and to help presenters Find your event in the Esri Events App Find the session you want to review Scroll down to the bottom of the session Answer survey questions and submit