Introducción al desarrollo de aplicaciones Xamarin

37
Xamarin Introducción al Desarrollo móvil Cross Platform con Xamarin Javier Suárez Ruiz

Transcript of Introducción al desarrollo de aplicaciones Xamarin

Page 1: Introducción al desarrollo de aplicaciones Xamarin

XamarinIntroducción al Desarrollo móvil Cross Platform con Xamarin

Javier Suárez Ruiz

Page 2: Introducción al desarrollo de aplicaciones Xamarin

Javier Suárez RuizDeveloper at Plain Concepts

Microsoft MVP

• Blog: http://geeks.ms/blogs/jsuarez• Email: [email protected]• Twitter: @jsuarezruiz

Page 3: Introducción al desarrollo de aplicaciones Xamarin

Agenda• ¿Qué es Xamarin?• ¿Y por qué Xamarin?• ¿Cómo funciona?• Plugins• Preguntas y Respuestas

Page 4: Introducción al desarrollo de aplicaciones Xamarin

¿Qué es Xamarin?

Page 5: Introducción al desarrollo de aplicaciones Xamarin

Xamarin – Solución completa para el Desarrollo móvil

Develop Testear Build Distribuir Monitorear

Page 6: Introducción al desarrollo de aplicaciones Xamarin

Código nativoiOS WindowsAndroid

Objective-CXcode

C#Visual Studio

JavaAndroid Studio

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

Page 7: Introducción al desarrollo de aplicaciones Xamarin

Escribe una vez, corre en todos

App Generator

LuaJavascript

ActionscriptHTML+CSS

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

Page 8: Introducción al desarrollo de aplicaciones 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: Introducción al desarrollo de aplicaciones 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: Introducción al desarrollo de aplicaciones 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/MonoCoreCLRAzure

Shared C# Client/Server

Page 11: Introducción al desarrollo de aplicaciones Xamarin

Demo Primeras AppsHola Mundo!

Page 12: Introducción al desarrollo de aplicaciones Xamarin

¿Y por qué Xamarin?

Page 13: Introducción al desarrollo de aplicaciones Xamarin

Xamarin ahora gratis e incluido en

Visual Studio

Page 14: Introducción al desarrollo de aplicaciones 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 15: Introducción al desarrollo de aplicaciones Xamarin

Open Source – open.xamarin.com

Page 16: Introducción al desarrollo de aplicaciones Xamarin

Open Source• Xamarin.iOS• Xamarin.Mac• Xamarin.Android• Xamarin.Forms• Bindings & Plugins

• Cómo arrancar• Guías de contribución

Page 17: Introducción al desarrollo de aplicaciones Xamarin

C# mola

Y lo sabes!

Page 18: Introducción al desarrollo de aplicaciones Xamarin

C# molaLINQ

XML

Gestión de eventos y delegados

Page 19: Introducción al desarrollo de aplicaciones Xamarin

Async/Await

Código más simple, mantenimiento

Page 20: Introducción al desarrollo de aplicaciones Xamarin

Android ItemClick, ¿ves diferencias? C# con XamarinJava

C# & Async con Xamarin

Page 21: Introducción al desarrollo de aplicaciones Xamarin

¿Cómo funciona es Xamarin?

Page 22: Introducción al desarrollo de aplicaciones Xamarin

Windows APIsMicrosoft.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 23: Introducción al desarrollo de aplicaciones 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 24: Introducción al desarrollo de aplicaciones 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 25: Introducción al desarrollo de aplicaciones Xamarin

La clave, compartir código

Page 26: Introducción al desarrollo de aplicaciones Xamarin

1 libreríaMúltiples PlatformasIncluidas:Xamarin.iOS y Xamarin.Android

Portable Class Libraries

Page 27: Introducción al desarrollo de aplicaciones Xamarin

Estadísticas de código compartido

Mac

iOS

Android

Windows Phone

iCircuit Touch Draw

86%

14%

72%

28%

70%

30%

61%

39%

88%

12%

76%

24%

90%

10%

Page 28: Introducción al desarrollo de aplicaciones Xamarin

Demo Compartir códigoMVVM y uso de servicios

Page 29: Introducción al desarrollo de aplicaciones Xamarin

La comunidad

Plugins

Page 30: Introducción al desarrollo de aplicaciones Xamarin

Shared C# Backend

Page 31: Introducción al desarrollo de aplicaciones Xamarin

Código específico de plataforma¿Qué ocurre si necesitamos accede a características específicas de la plataforma?

UI+APIs UI + APIsUI + APIs

BateríaGPSLámparaNotificationesSettingsText To Speech

BateríaGPSLámparaNotificationesSettingsText To Speech

BateríaGPSLámparaNotificationesSettingsText To Speech

Page 32: Introducción al desarrollo de aplicaciones Xamarin

TextToSpeech

Speak(“Hello World”);

AVSpeechSynthesizer SpeechSynthesizer

Page 33: Introducción al desarrollo de aplicaciones Xamarin

PluginsXamarin

Common API

github.com/xamarin/plugins

Page 34: Introducción al desarrollo de aplicaciones Xamarin

Crear y consumir pluginsAccediendo a la plataforma

Page 35: Introducción al desarrollo de aplicaciones Xamarin

App “real”Mapas, cámara, navegación, diálogos, servicio web, ¿suena bien?

Page 36: Introducción al desarrollo de aplicaciones Xamarin

Q&A

Page 37: Introducción al desarrollo de aplicaciones Xamarin

Braulio DíezFreelancer formacion.lemoncode.net

Javier SuárezPlain Concepts

Carlos Fernández

Plain Concepts