Introducción al desarrollo de aplicaciones Xamarin

Post on 15-Apr-2017

2.000 views 1 download

Transcript of Introducción al desarrollo de aplicaciones Xamarin

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

Javier Suárez Ruiz

Javier Suárez RuizDeveloper at Plain Concepts

Microsoft MVP

• Blog: http://geeks.ms/blogs/jsuarez• Email: javiersuarezruiz@hotmail.com• Twitter: @jsuarezruiz

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

¿Qué es Xamarin?

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

Develop Testear Build Distribuir Monitorear

Código nativoiOS WindowsAndroid

Objective-CXcode

C#Visual Studio

JavaAndroid Studio

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

Escribe una vez, corre en todos

App Generator

LuaJavascript

ActionscriptHTML+CSS

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

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

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

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

Demo Primeras AppsHola Mundo!

¿Y por qué Xamarin?

Xamarin ahora gratis e incluido en

Visual Studio

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.

Open Source – open.xamarin.com

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

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

C# mola

Y lo sabes!

C# molaLINQ

XML

Gestión de eventos y delegados

Async/Await

Código más simple, mantenimiento

Android ItemClick, ¿ves diferencias? C# con XamarinJava

C# & Async con Xamarin

¿Cómo funciona es 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

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

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

La clave, compartir código

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

Portable Class Libraries

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%

Demo Compartir códigoMVVM y uso de servicios

La comunidad

Plugins

Shared C# Backend

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

TextToSpeech

Speak(“Hello World”);

AVSpeechSynthesizer SpeechSynthesizer

PluginsXamarin

Common API

github.com/xamarin/plugins

Crear y consumir pluginsAccediendo a la plataforma

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

Q&A

Braulio DíezFreelancer formacion.lemoncode.net

Javier SuárezPlain Concepts

Carlos Fernández

Plain Concepts