Uwp + Xamarin : Du nouveau en terre du milieu

Post on 08-Jan-2017

146 views 5 download

Transcript of Uwp + Xamarin : Du nouveau en terre du milieu

Android Studiojava

Xcode

swiftobjective-c

Visual Studio

.netjavascript

Appl

icatio

ns N

ativ

esHy

brid

eshtml

javascripthtml

javascripthtml

javascript

C++Visual C++ Compiler

C++GCC - Clang/LLVM

C++Clang/LLVM

C# C# C#

javascript javascript javascript

Visual Studio C++ Cross-Platform Mobile

React Native NativeScript

Un code C# pour les unir, et par le framework .net les lier.

UWP on Xbox OneWindows Inking (InkToolbar)Cortana Insights/Actions

Windows.UI.CompositionDesktop Bridge (Centennial)UWP Community Toolkit

What’s new ?

DirectX Family

Windows.UI.Composition

Windows.UI.XamlFramework Layer

VisualLayer

Universal Windows Application

Graphics Layer

Controls, layout, markup, accessibility, data binding

Text rasterization, shapes & vector rasterization, ink rendering, meshes, shaders etc.

Visuals, Animations & Expressions, Effects, Input Routing & Manipulations

Visual LayerWindows.UI.Composition

Content Visuals

• SpriteVisual• Solid color content• Image content• D2D/D3D content

• XAML interop

Animation system

• KeyFrame Animations• Expression Animations• Implicit Animations

Effects system

• Shadows• Scene Lightning• Blur• Exposure, Hint,

Temperature• Grayscale• Blend …

N° 15

Why ?

N° 17

Incomplete Uninstalls

Registry Bloat and “PC Rot”

Untrustworthy Installers

DLL HellDistribution visibility and

trust

No access to most new UWP

APIs(no app identity)

Developer Workflow

N° 18

Setup

Desktop App ConverterConverts existing desktop installerCreates packaged app with UWP manifest

Test, Update, and EvolveMake compatible code changes that go into both MSI and app packageEvolve app package to take advantage of the Universal Windows Platform

AppX

Publish and DistributeDistribute the app package via sideloading, MDM or the Windows Store (coming soon)

Support new and existing customers

• Clean install/uninstall• Virtualized key IO• User Safety

• Untouched

.appxWindows 10

.msiWindows 7

Classic Windows Appwin32 | wpf | winforms | vb6 | delphi |

more

desktop app converter

existing installer build

process

Keep the user safety / privacy promise

Your AppWindows 10

Your AppWindows 7

Virtualized HKCU

Registry.dat

Full WindowsRegistry

UWP AppData

folder

Windows AppData

folder

Virtualization is free: no code changes required!

Use Windows 10 features

Your Classic Windows App,

in UWP app package,

with Identity

Windows 10 Cortana

Live Tiles

Store

Camera and Devices

more

N° 22

Plateforme Xamarin

Storyboard/XIB

XAML/HTML

XML

Code C# Partagé

* F# également supporté

C# APIs iOS

C# APIs Windows

C# APIs Android

Partage de codeRéutilisation de compétencesVisual Studio

Xamarin

N° 25

C# partout

PerformanceExpérience utilisateur100% des fonctionnalités

Apps natives

iOS, AndroidAndroid Wear/TVApple Watch/TVmacOS

Toujours à jour

Open sourceInclus avec Visual Studio

Mature

Xamarin

N° 26

TOUT ce qui est possible en

Objective-C, Swift ou Java est possible en

C# avec Xamarin

Xamarin

N° 27

• LINQ• Event handlers• HttpClient• Json.NET• Async/Await

Compétences .NETC#

N° 28

• Portable Class Library• Shared Project• NuGet

Compétences .NETPartage de code

N° 29

• Intellisense• Refactoring• Déploiement• Debugging

Visual Studio

N° 30

Développement iOSSous Windows !

N° 31

• Connexion à un Mac obligatoire• Simulateur iOS à distance • Transfert de port USB

Démo !Xamarin natif

N° 33

N° 34

N° 35

Xamarin vs Xamarin.Forms

Approche traditionnelle(ou native)

Approche Xamarin.Forms

iOS C#

Windows C#Android C#

C# Commun

UI (C# / XAML)

C# Commun

Xamarin vs Xamarin.Forms

Approche traditionnelle(ou native)

Approche Xamarin.Forms

iOS C# UI Windows C#

UIAndroid C# UI

C# Commun

UI (C# / XAML)

C# Commun~40-70% Partage de Code

~90-98% Partage de Code

Xamarin.FormsXAML

N° 38

<?xml version="1.0" encoding="utf-8" ?><ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XamlSamples.XamlPlusCodePage" Title="XAML + Code Page"> <StackLayout> <Slider VerticalOptions="CenterAndExpand" /> <Label Text="A simple Label" Font="Large" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" /> <Button Text="Click Me!" HorizontalOptions="Center" VerticalOptions="CenterAndExpand" /> </StackLayout></ContentPage>

Pages + Layout

Stack Absolute Relative Grid ContentView

ScrollView

Frame

Content MasterDetail

Navigation

Tabbed Carousel

ActivityIndicator BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView EntryCell

ImageCell SwitchCell TextCell ViewCell

Contrôles

Partage de code importantExpérience utilisateur moins importante

Application peu complexeInterface unifiée et simple, peu de fonctionnalités natives

Peu d’exigences en performancesLe prix à payer pour une couche d’abstraction

App B2B (ou POC)Priorité au fonctionnel, avant la forme

Compétences XAMLRéutilisation des connaissances XAML, moins exigeant en connaissances natives

Quand choisir Xamarin.Forms ?

N° 41

Démo !Xamarin.Forms

Tests UI automatisés

Test Recorder2000+ devices

RapportsScreenshots, métriques

Xamarin Test Cloud

Rapports de crashDistributionMétriques + Evènements

Feedback utilisateur

HockeyApp

Contrôle de version

TFS/GitOutils AgileIntégration

continueBuild, Test, Deploy

Visual Studio Team Services

Cours en ligne70+ classes

PrésentationsCertification

Partie du contenu disponible via

MSDN

Xamarin University

Evénements

N° 47

Meetup Xamarin

Xamarin Dev Days

Ce soir 19h !Microsoft Experiences

26 novembreMicrosoft Accelerator Paris

N° 48

@microsoftfrance @Technet_France @msdev_fr

N° 49

N° 50