Quick viewing(Text Mode)

Argis Runtime SDK for .NET: Building Xamarin Apps

Argis Runtime SDK for .NET: Building Xamarin Apps

ArcGIS Runtime SDK for .NET: Building Apps Nathan Castle | Thad Tilton Agenda • Xamarin Overview - What it is and why you would use it - Xamarin and ArcGIS Runtime • Getting started - System requirements - Resources and tools • Develop apps with Xamarin - Forms - Native • Recommended patterns • Tips and tricks Xamarin Overview What it is and why you would use it

“If you’re interested in mobile development and have .NET background, you’re basically already 80% there. All the architecture, libraries and so on—all of that will be available and familiar to you [in Xamarin].”

--James Montemagno, Principal Program Manager, Mobile Developer Tools () What is it?

• Software suite for cross-platform .NET development • Libraries for iOS and Android - – open-source .NET implementation for non-Windows platforms - Platform bindings – iOS and Android APIs to # - Xamarin Forms – cross-platform UI library • Development tools - Integrated with Visual Studio - Windows or Mac What can you do with it?

• Build .NET apps for iOS, Android, Windows • Write code using C# - Share code across platforms - Leverage platform-specific capabilities as needed • Write UI markup with Xamarin Forms XAML - Share markup across iOS, Android, and UWP • Write platform-specific (native) UI - AXML for Android - Storyboards for iOS - XAML for UWP Why would I use it? Visual Studio and C# Extensive developer community Rapid development Code re-use (cross-platform)

UI components render with native look and feel

All platform capabilities available

Rapid updates Two approaches for Xamarin development …

1. Xamarin Forms: a lot of shared code, less control

• UI is defined with a Xamarin flavor of XAML • Subset of UI elements • Rendered as native controls for each platform • Basic cross-platform functionality

2. Xamarin Native: less shared code, more control • Each UI is created using platform-specific controls • *.axml (Android), *.storyboard (iOS), *.xaml (UWP) • User experience is true to the platform • More platform-specific control Getting started Requirements and resources Xamarin with ArcGIS Runtime SDK for .NET

• APIs for … - iOS - Android - Forms (supports iOS, Android, UWP)

• One common .NET API surface • High-performance 2D and 3D mapping • Take data and functionality offline • Utilize device sensors ArcGIS Runtime SDK for .NET

• NuGet packages from NuGet.org within Visual Studio - APIs: WPF, UWP, Android, iOS, Forms (Android, iOS, UWP) - Toolkit

• Visual Studio extension (VSIX) - Visual Studio Extensions manager or developers.arcgis.com/downloads - Project templates for each platform - Local NuGet packages - Not available for Visual Studio for macOS ArcGIS Runtime SDK for .NET

• Samples: https://github.com/Esri/arcgis-runtime-samples-dotnet • Toolkit (source): https://github.com/Esri/arcgis-toolkit-dotnet • apps: https://developers.arcgis.com/example-apps/

• Documentation - Developers Guide, API reference, Samples - https://developers.arcgis.com/net/ - Tutorials - https://developers.arcgis.com/labs/ • Community and support: https://developers.arcgis.com/net/support/ Xamarin IDE options Windows or Mac

Mac OS X Windows Visual Studio for Mac Visual Studio Xamarin Native iOS Requires Mac build host Android macOS * Xamarin Forms iOS Requires Mac build host Android UWP * Not available for ArcGIS Runtime for .NET apps More info at https://visualstudio.microsoft.com/vs/mac/#vs_mac_table Code sharing options

• NET Standard library - Defines a set of .NET APIs that can be shared across multiple platforms - Available functionality depends on the .NET Standard version - Code is compiled into an that can be easily shared

• Shared projects - Code is compiled into each referencing project - Can use compiler directives (#if) to add platform-specific logic

• Portable Class Library (deprecated) - Common API surface that uses interfaces for platform-specific logic • . Demo: Resources developers.arcgis.com Demo: Create a cross-platform Xamarin app Demo Summary What did we see?

IDE Productivity - Use Visual Studio for Mac for iOS Android HTTP performance and TLS 1.2 support - Use AndroidClientHandler Toolkit components - Scaleline, Compass, Time Slider Open Source Apps - Lots of app logic at your disposal .NET Standard - Build cross-platform libraries Share your getting started experiences!

• How can we make the SDK better for you? - Documentation and samples improvements? • What was hard when you got started? - …and what was easy? • What was great? (so we can do more of it) • What did you wish you knew when you first started? • What would have saved you a lot of time?