xamarin development overview - windows - microsoft · pdf filexamarin profiler a full-featured...

44

Upload: duongtuyen

Post on 11-Feb-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

App delivery

lifecycle

Complex ecosystem with

thousands of configurations

and settings

Businesses need to

rapidly appify with

high-quality apps

Mobile development – for

just one app – involves many

stages

Design & Develop

TestMonitor

100+ apps 1000+ devices

iOS WindowsAndroid

Objective-C

Xcode

C#

Visual Studio

Java

Android Studio

No shared code • Many languages & development environments • Multiple teams

Shared C# codebase • 100% native API access • High performance

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Mobile

Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices

System.Data System.Windows System.Numerics System.Core System.ServiceModel

System.Net System System.IO System.Linq System.Xml

MapKit UIKit iBeacon CoreGraphics CoreMotion

System.Data System.Windows System.Numerics System.Core System.ServiceModel

System.Net System System.IO System.Linq System.Xml

Text-to-speech ActionBar Printing Framework Renderscript NFC

System.Data System.Windows System.Numerics System.Core System.ServiceModel

System.Net System System.IO System.Linq System.Xml

Xamarin.iOS does full Ahead Of Time

(AOT) compilation to produce an ARM

binary for Apple’s App Store.

Xamarin.Android takes advantage of

Just In Time (JIT) compilation on the

Android device.

Create UI with drag & drop

simplicity

Target multiple screen sizes,

resolutions and Android

versions

Layouts saved in standard

Android XML files

Multi-Touch Enabled

Super Fast

Rotate, screenshots,

location changes, and

more!

http://bit.ly/hyperv-android

• Follows familiar Visual Studio

designer idioms

• Supports all UIKit elements

• Edit custom and 3rd party

components

• Live preview of changes to

properties

• Multi-Touch Enabled

• Pressure Sensitive

• Super Fast

• Rotate, screenshots,

location changes

• Never leave VS

Xamarin.iOS Xamarin.Android

Shared C# Backend

What if we didn’t have to write this code?

What if we could access it from shared code?

UI+APIs UI + APIsUI + APIs

Battery

GPS

Lights

Notifications

Settings

Text To Speech

Battery

GPS

Lights

Notifications

Settings

Text To Speech

Battery

GPS

Lights

Notifications

Settings

Text To Speech

TextToSpeech

Speak(“Hello World”);

AVSpeechSynthesizer SpeechSynthesizer

Common API

Traditional Xamarin Approach With Xamarin.Forms:

More code-sharing, all native

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Backend

Shared UI Code

Shared C# Backend

✓ 40+ Pages, layouts, and controls

(Build from code behind or XAML)

✓ Two-way data binding

✓ Navigation

✓ Animation API

✓ Dependency Service

✓ Messaging Center

Shared C# Backend

Shared UI Code

Layouts

Pages

Stack Absolute Relative Grid ContentView ScrollView Frame

Content MasterDetail Navigation Tabbed Carousel

Windows Xamarin.Forms

StackPanel StackLayout

TextBox Entry

ListBox ListView

CheckBox Switch

ProgressBar ActivityIndicator

Grid Grid

Label Label

Button Button

Image Image

Date/TimePicker Date/TimePicker

Windows Xamarin.Forms

DataContext BindingContext

{Binding Property} {Binding Property}

ItemsSource ItemsSource

ItemTemplate ItemTemplate

DataTemplate DataTemplate

<?xml version="1.0" encoding="UTF-8"?>

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"x:Class="MyApp.MainPage">

<TabbedPage.Children>

<ContentPage Title="Profile" Icon="Profile.png">

<StackLayout Spacing="20" Padding="20"

VerticalOptions="Center">

<Entry Placeholder="Username"

Text="{Binding Username}"/>

<Entry Placeholder="Password"

Text="{Binding Password}"

IsPassword="true"/>

<Button Text="Login" TextColor="White"

BackgroundColor="#77D065"

Command="{Binding LoginCommand}"/>

</StackLayout>

</ContentPage>

<ContentPage Title="Settings" Icon="Settings.png">

<!-- Settings -->

</ContentPage>

</TabbedPage.Children>

</TabbedPage>

Xamarin Live Inspector

Rapid Design Experimentation

Live Inspector and Workbooks allow developers to

programmatically interact with a running app in real-

time on devices and emulators.

Live Inspector enables rapid design experimentation

and iteration, without the need to compile, build and

deploy each time you make changes.

Xamarin Profiler

A Full-Featured Profiling Tool

Profiler is a profiling tool made specifically for Xamarin

apps, which helps developers quickly identify memory

and performance issues.

Unlike native SDK profilers that can only reveal problems

at a lower level, the Xamarin Profiler provides analysis

of code running in the Mono runtime, where Xamarin

app code lives and executes.

Xamarin Test Recorder

Effortlessly Create UI Test Scripts

Simply and quickly generate UI test scripts by running

your app and performing actions. You can execute UI

tests locally in the emulator or on thousands of devices

simultaneously with Xamarin Test Cloud.

A/B Testing

Live Update

Storage

Push Notifications

Crash Reporting

Remote Config.

Identity

Tables

Several tools, portals, SDKs!!!

HockeyApp Xamarin Test Cloud Xamarin Insights

Distribute • Crashes • Analytics Device Tests Crashes • Analytics

Azure Mobile Engagement Azure App Service CodePush

Analytics • Push Tables • Auth • Push Distribution

Visual Studio Mobile Center

https://www.xamarin.com/university

https://mva.ms