Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

47

Transcript of Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Page 1: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 2: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Visual Studio Technologies & Windows Platform Development MVP

Xamarin MVP

Xamarin Team Lead at Plain Concepts

• Blog: http://geeks.ms/blogs/jsuarez

• Email: [email protected]

• Twitter: @jsuarezruiz

Page 3: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 4: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Apps de calidad

Page 5: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

La media de apps que un usuario instala en su

teléfono es de 36 apps.

Page 6: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Sólo 1/4 son usadas diariamente:

Page 7: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

1/4 de las apps nunca son usadas!

Page 8: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 9: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

¿Siempre conectados?

Page 10: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

http://opensignal.com/coverage-maps

Page 11: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 12: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 13: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

OPCIONES

Page 14: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

AZURE

Page 15: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Código base C# • 100% acceso a APIs nativas • Rendimiento alto

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Mobile C# Server

Linux/Mono

CoreCLRAzure

Shared C# Client/Server

+ servicios de Backend

Page 16: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Web Apps

MobileApps

APIManagement

APIApps

LogicApps

NotificationHubs

Content DeliveryNetwork (CDN)

MediaServices

HDInsight MachineLearning

StreamAnalytics

DataFactory

EventHubs

MobileEngagement

BiztalkServices

HybridConnections

ServiceBus

StorageQueues

Backup

StorSimple

SiteRecovery

Import/Export

SQLDatabase

DocumentDB

RedisCache

Search

Tables

SQL DataWarehouse

Azure AD Connect Health

AD PrivilegedIdentity Mngt

OperationalInsights

CloudServices

Batch Remote App

ServiceFabric Visual Studio

ApplicationInsights

Azure SDK

Team Project

ActiveDirectory

Multi-FactorAuthentication

Automation

Portal

Key Vault

Store /Marketplace

VM Image Gallery& VM Depot

SEGURIDAD & GESTIÓN SERVICIOS DE PLATAFORMA

OPERACIONES HÍBRIDAS

Page 17: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Azure Mobile Apps

Page 18: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

REST A

PI

Offline sync

Facebook Twitter Microsoft Google Azure Active Directory

AZURE MOBILE APPS

WindowsAndroidChrome

iOS OSX

In-AppKindle

Backend

SQL MongoTables O365 API Apps

Offline Sync

Page 19: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Crear un Mobile Service

MobileService = new MobileServiceClient(

"https://myapp.azurewebsites.net");

Page 20: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Crear TablasIMobileServiceSyncTable<Store> table;

public async Task Init()

{

const string path = "syncstore.db";

var db = new MobileServiceSQLiteStore(path);

db.DefineTable<Store>();

}

var handler = new MobileServiceSyncHandler();

await MobileService.SyncContext.InitializeAsync(db, h);

table = MobileService.GetSyncTable<Store>();

Page 21: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Obtener y modificar los datospublic async Task<IEnumerable<Store>> GetStoresAsync()

{

await table.PullAsync("allStores", table.CreateQuery());

return await table.ToEnumerableAsync();

}

public async Task<Store> AddStoreAsync (Store store){

await table.InsertAsync (store);await table.PullAsync("allStores", table.CreateQuery());await MobileService.SyncContext.PushAsync();return store;

}

Page 22: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Vamos a añadir un backend!

Page 23: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 24: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

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

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Mobile C# Server

Linux/Mono

CoreCLRAzure

Shared C# Client/Server

+ SERVER

Page 25: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Autenticación

Page 26: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

AUTENTICACIÓN EN AZURE

Azure utiliza OAuth para identificar usuarios móviles. Oauth

define como interactuán entre sí tres participantes para llevar

a cabo el proceso de autenticación:

• Cliente (App Xamarin)

• Azure

• Proveedor de identidad (Idp)

Page 27: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

PROVEEDORES DE IDENTIDAD DE TERCEROSAzure soporta la autenticación utilizando diferentes

proveedores de identidad de terceros.

Page 28: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

PROVEEDORES DE IDENTIDAD

Azure también soporta utilizar Azure Active Directory.

Podemos utilizar esta opción para realizar autenticación

empresarial.

También es posible utilizar Azure Active Directory B2C que

permite utilizar usuario/contraseña en un almacenamiento

Azure.

Page 29: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

PROVEEDORES DE IDENTIDAD

También se puede realizar la integración con proveedores de

identidad personalizdos.

Page 30: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

EL FLUJO DE AUTENTICACIÓN

1. El cliente utiliza un WebView para mostrar la página

de Login

2. Azure redirecciona a la página de Login correcta para

cada IdP (Twitter, Facebook, etc.)

3. El usuario se autentica con sus credenciales en el IdP.

4. El IdP redirecciona con un Token.

5. Se valida el Token con Azure y finalmente llega al

cliente.

Page 31: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 32: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Notificaciones Push

Page 33: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

NOTIFICACIONES PUSH

• Las notificaciones Push nos ofrecen

una vía de comunicación directa con

los clientes de aplicaciones móviles

incluso cuando no esten con la

aplicación abierta.

• Las notificaciones Push se envían

utilizando estructuras específicas de

cada plataforma llamadas Platform

Notification Systems (PNS).

Back-

end

PN

S

Device

1

2

3

4

Comunicación con PNS

Gestión de PNS

Envía notificación

Enviar al dispositivo

Page 34: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

NOTIFICACIONES PUSH

• Gestión de

usuarios

• Dependencia con

plataforma

• Escalabilidad

• Monitorización

• Telemetría

Page 35: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

AZURE NOTIFICATIONS HUB

Las claves:

• Fácil de utilizar, multiplataforma, infraestructura

escalable

• Envía notificaciones push a cada plataforma

utilizando platform notification services (PNS)

Page 36: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

AZURE NOTIFICATIONS HUB

Soporte a gran variedad de PNS

Windows Notification Service

Microsoft Push Notification Service

Apple Push Notification Service

Firebase Cloud Messaging

Google Cloud Messaging

Baidu Cloud Push

Amazon Device Messaging

Se soporta una gran variedad de

dispositivos

Windows Phones, Tablets & PCs con Windows 8

o 10

iOS

Chrome Apps

Android

Amazon Kindles

Page 37: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

AZURE NOTIFICATIONS HUB

Android

IPhone

Notification

HubsGCM

Windows PhoneWNS

APNS

Your Application

Page 38: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 39: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Sync ficheros

Page 41: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 42: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

One more thing…

Page 43: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Sync Offline

Page 44: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Online vs Offline

Los dispositivos móviles a menudo pasan por diferentes

estados y condiciones que afectan a las aplicaciones. Entre el

cambio de estado más habitual se encuentra la falta de

acceso a internet.

Como desarrolladores, debemos decider si nuestra aplicación

deja de funcionar offline (no permite el acceso a apartados,

etc.) o bien si se añade una cache offline que permita seguir

trabajando.

Page 45: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

Sincronización Offline

Azure permite la sincronización offline de los datos con

pocas líneas de código.

Los beneficios:

• Permite el acceso a la información sin red.

• Sincronización automática de datos con cache local.

• Control sobre cuándo se realiza la sincronización.

Page 46: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Page 47: Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure

A comer!

Javier

Suárez Ruiz

[email protected] https://javiersuarezruiz.wordpress.com @jsuarezruiz