48
#PlainConceptsTechDay 20.12.2017 Plain Concepts Tech Day JAVIER SUÁREZ RUIZ Desarrollo de aplicaciones multiplataforma con Xamarin XAMARIN TEAM LEAD

Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin

Embed Size (px)

Citation preview

Page 1: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

#PlainConceptsTechDay

20.12.2017

Plain Concepts

Tech Day

JAVIER SUÁREZ RUIZ

Desarrollo de aplicaciones

multiplataforma con Xamarin

XAMARIN TEAM LEAD

Page 2: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

#PlainConceptsTechDay2

9:00 – 9:45 CSS Grid Layout - ¡Se acabaron los hacks, larga vida al CSS!

9:45 - 10:30 Desarrollo de aplicaciones multiplataforma utilizando Xamarin

10:30 - 11:15 Docker: de principante a pro

11:15 - 11:25 ¿Qué es la Fundación Theodora?

11:25 - 11:45 Break

11:45 - 12:30 Los autobuses de madrid en tiempo real con Azure Relay, .Net Core y una Raspberry Pi

12:30 - 13:15 Swagger Code Generation: Cuando front encontró a back

13:15 - 14:00 Entrega contínua con Visual Studio Team Services

Plain

Concepts

Tech Day

Page 3: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Qué veremos

#PlainConceptsTechDay 3

1. Introducción a Xamarin

2. ¿Cómo desarrollamos en Xamarin?

3. Próximas novedades

4. Tendencias

5. Preguntas y Respuestas

Page 4: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Visual Studio Technologies & Windows Platform Development MVP

Xamarin MVP

Software Developer at Plain Concepts

Javier Suárez

@plainconcepts

#PlainConceptsTechDay4

@jsuarezruiz

DEVELOPER

Page 5: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

#PlainConceptsTechDay 5

Introducción a Xamarin

Page 6: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Código nativo

iOS WindowsAndroid

Objective-C

Xcode

C#

Visual Studio

Java

Android Studio

No se comparte código • Diferentes lenguajes & entornos de desarrollo • Diferentes

equipos

Page 7: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Escribe una vez, corre en todos

App Generator

Lua

Javascript

Actionscript

HTML+CSS

Acceso limitado a APIs • Menos rendimiento • Experiencia de usuario más pobre

Page 8: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

El enfoque de Xamarin

Código común compartido • Acceso 100% a APIs nativas • Alto rendimiento

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Mobile

Page 9: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Xamarin + Xamarin.Forms

Enfoque tradicional Con Xamarin.Forms:Más código compartido, nativo

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Backend

Shared UI Code

Shared C# Backend

Page 10: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

El enfoque de Xamarin

Código común compartido • Acceso 100% a APIs nativas • Alto rendimiento

iOS C# UI Windows C# UIAndroid C# UI

Shared C# Mobile C# Server

Linux/Mono

CoreCLRAzure

Shared C# Client/Server

Page 11: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Rendimiento nativo

Xamarin.iOS usa la compilación Ahead Of Time

(AOT) para crear un binario ARM para la

Apple’s App Store.

Xamarin.Android toma ventaja de la

compilación Just In Time (JIT) en

dispositivos Android.

Page 12: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Open Source – open.xamarin.com

Page 13: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Windows APIs

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

Page 14: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

iOS – Acceso al 100% de las APIs

MapKit UIKit iBeacon CoreGraphics CoreMotion

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

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

Page 15: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Android – Acceso al 100%de las APIs

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

Page 16: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Cualquier cosa que puedas hacer con Objective-C, Swift, o Java

se puede hacer con C# y Visual Studio con Xamarin.

Page 17: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

La clave, compartir

código

Page 18: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

LIBRARIES

INFRASTRUCTURE

.NET STANDARD

NET Standard.NET Standard permite

compartir código, recursos y

otros elementos entre

clientes .NET (y servidores).

• .NET Standard facilita una

específicación para cada

plataforma para que la

implementación sea

similar.

• Todos los runtime .NET

creados por Microsoft

están implemenentando el

standard.

Page 19: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Pasamos a ver código, realizar pruebas, compilar, ejecutar, etc.

DEMO TIME

@plainconcepts

#PlainConceptsTechDay19

App Xamarin.Forms con NET Standard

Page 20: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

#PlainConceptsTechDay 20

¿Cómo desarrollamos en

Xamarin?

Page 21: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Xamarin Live Player

Page 22: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Xamarin Live Player

Page 23: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Xamarin Live Player App

Page 24: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Xamarin Live Player App

Page 25: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Emparejando un dispositivo

Page 26: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Vamos a ver como utilizar Live Player desde Visual Studio 2017.

A continuación, vamos a realizar cambios tanto de código XAML

como en la lógica de la aplicación para ver todos los cambios…al

vuelo!

DEMO TIME

@plainconcepts

#PlainConceptsTechDay26

Live Player

Page 27: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Visual Studio

App Center

appcenter.ms

Page 28: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Visual Studio App Center

Page 29: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Visual Studio App Center

Page 30: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

HockeyApp iOS, Android, UWP

Visual Studio App Center

Page 31: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Visual Studio App Center

Page 32: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Visual Studio App Center

Page 33: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Visual Studio App Center

Page 34: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Builds, pruebas de UI, analíticas y mucho más!

DEMO TIME

@plainconcepts

#PlainConceptsTechDay34

Visual Studio App Center

Page 35: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

#PlainConceptsTechDay 35

Próximas novedades

Page 36: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Xamarin.Forms: Nuevas plataformas

Page 37: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Aplicación Xamarin.Forms disponible para todos los backends

disponibles incluidos aquellos en modo Preview.

DEMO TIME

@plainconcepts

#PlainConceptsTechDay37

La misma App en Android, iOS, UWP, Windows, macOS y Linux!

Page 38: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Así es!. Vamos a ver una demo de Xamarin.Forms y el backend

Ooui utilizando ASP.net Core.

DEMO TIME

@plainconcepts

#PlainConceptsTechDay38

¿Xamarin.Forms y web?

Page 39: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

.NET Embedding en iOS + Android

Page 40: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Xamarin.Forms Native Forms

Page 41: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

XAML StandardActualización de Xamarin.Forms, se alinea con UWP

● Nuevos tipos

○ TextBox, Border, ComboBox, ProgressRing, StackPanel,

TextBlock, ToggleSwitch, UserControl

● Nuevas propiedades

○ Foreground, Background, BorderBrush, BorderThickness, Value,

FontStyle, FontWeights, Orientation, Stretch, TextWrapping

Preview disponible: aka.ms/xf-xamlstandard

Page 42: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

#PlainConceptsTechDay 42

Tendencias

Page 43: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

REALIDAD AUMENTADA, MACHINE LEARNING, ELEMENTOS 3D Y MUCHO MÁS!

43

• Aplicaciones nativas con interfaces atractivas y adaptadas a

cada plataforma.

• Rendimiento nativo.

• Machine Learning.

• Realidad aumentada.

¿Qué se esperará de las próximas grandes aplicaciones móviles?

TENDENCIAS

Page 44: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

Realidad aumentada

@plainconcepts

#PlainConceptsTechDay44

Xamarin da soporte tanto a

ARKit (iOS) como a ARCore

(Android).

Contamos con posibilidades

como seguimiento de

movimiento, detección de plano

y estimación de la luz.

Page 45: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

#PlainConceptsTechDay 45

¿Preguntas?

Page 46: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

¡Estamos

CONTRATANDO!

46

[email protected]

int ledPin = 13;

void setup()

{ pinMode(ledPin, OUTPUT);

}

void loop(){ digitalWrite(ledPin, HIGH);

delay(1000); digitalWrite(ledPin, LOW);

delay(1000);

}

@plainconcepts

#PlainConceptsTechDay

www.plainconcepts.com/careers

Page 47: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

¡GRACIAS!www.plainconcepts.com

@plainconcepts

Page 48: Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin

www.plainconcepts.com

MADRID

Paseo de la Castellana 163, 10º

28046 Madrid. España

T. (+34) 91 5346 836

BILBAO

Calle Ledesma 10-bis 3º

48001 Bilbao. España

T. (+34) 94 6073 371

BARCELONA

Carrer Compte d’Urgell 240 4º A

08036 Barcelona. España

T. (+34) 93 7978 566

SEVILLA

Avenida de la innovación s/n

Edificio Renta Sevilla, 3º A

41020 Sevilla. España

T. (+34) 600 58 75 43

DUBAI

Dubai Internet City. Building 1

73030 Dubai. EAU

T. (+971) 4 551 6653

LONDON

Impact Hub Kings Cross

24B York Way, N1 9AB

London. UK

SEATTLE

8201 164th Ave NE

Redmond, WA 98052

Washington

T. (+1) 206 708 1285