60
Go Mobile with C# and Xamarin BCN Mobile .NET Developers Group Softmachine

Introduction to xamarin

Embed Size (px)

Citation preview

Go Mobile with C#

and Xamarin

BCN Mobile

.NET

Developers

Group

Softmachine

Borja García Cueto@borjagarciacMobile & Core Developer en International Softmachine Systems SL

José Antonio Reyes Guerrero @jareyesguerreroArquitecto de Software en International Softmachine Systems SL

Barcelona Mobile .NET Developers Group @bcnmobilegroupBlog: http://bcnmobilegroup.azurewebsites.net/

(*) Consumición válida tras la finalización de la charla.

Patrocinadores - Es de bien nacido…ser agradecido

Dougall’s 942Cerveza Pale Ale

Alcohol: 4,2%

Ingredientes:

Maltas: Maris Otter y Caragold

Lúpulos: Cascade y Simcoe.

Levadura: ALE

Dougall’s KAJUNCerveza Moonshiner IPA

Alcohol: 7,0%

Ingredientes:

Maltas: Maris Otter y Biscuit

Lúpulos: Mosaic, Citra, Centennial,

Chinook y Cascade.

Levadura: ALE

Agua

Formación, material, comida, …

¡Estar atentos! al final de la charla sortearemos algún regalo

de Xamarin.

Formación, tiempo, recursos, apoyo …

Softmachine

Y para los cerveceros*…

Sala de reunión, material …

¡Y COMIDA!

Patrocinadores - Softmachine

Empresa especializada en el desarrollo e implantación de sistemas de Gestión Horaria,

Control de Accesos, Información Corporativa y Movilidad.

Ayudando a gestionar personas.

Conciliación

Familiar

Empleados

Contentos

Aumento

Productividad

Patrocinadores - Softmachine,

SolucionesGestión horaria, Control de accesos, Planificación horaria, Gestión del comedor,

Control de Externos, Portal del empleado, Productividad, Tempo Mobile, …

Tempo MobileAplicación de movilidad integrada

con la suite Tempo y disponible

para iPhone y Android.

• Marcajes (inicio/pausa/fin).

• Control zona geográfica

permitida.

• Modo compartido.

• Modificación de datos personales.

Enfoque del

desarrollo móvil

Desarrollo móvil - Enfoque clásico

Nativo, desarrollando 3 Apps

‘iguales’

• Varios equipos especializados.

• Mucho código repetido.

• Diferentes herramientas.

• …

Enfoque: escribe una vez, ejecuta en todos los sitios

• Mínimo común denominador.

• Fragmentación del navegador.

• Rendimiento no nativo.

• Desarrollas y diseñas una única vez, pero…

HTML5 + CSS3 + Javascript

• ¿Rendimiento?

• ¿Experiencia de usuario?

• ¿Calidad del código?

Enfoque Xamarin (Clásico)

• Interface de usuario nativa.

• Rendimiento nativo.

• Código compartido.

• C# & .NET Framework

• Cobertura total de APIs.

Con Xamarin.Forms:

mas código compartido (controles nativos)Enfoque tradicional de Xamarin

Shared UI Code

Enfoque Xamarin.Forms

¿Por qué Xamarin?

First

release of

Xamarin.Mac

Launch

Partner

Program

200,000

Developers

Xamarin

Founded

First release of

Xamarin.Android

Xamarin.iOS launches

(originally known as

MonoTouch)

Ximian

Founded

No es flor de un día…

2001 2003 2009 2011 2012 2013

Mono

Launches

Ximian Acquired

by Novell

Xamarin 2.0

Component Store

Xamarin Test Cloud

Evolve 2013

Microsoft Partnership

500,000

Developers

100+ Partners

100+ Components

2014

//

Xamarin 3

2000

SAP Partnership

Fire TV Support

Salesforce partnership

Visionary in Gartner

Magic Quadrant

Google Glass Support

Visual Studio Partner

of the Year

Android Wear Support

Xamarin Evolve 2014

800,000

Developers

200+ Partners

200+ Components

2015…

Barcelona, 26-31 de Octubre 2014

Cloud First Mobile First+

+

Microsoft apuesta

por Xamarin! ¿Y para los amantes del HTML?

C# => productividad = true;

• Soporte para LINQ

• XDocument: XML fácil.

• Eventos y delegados.

Soporte Async / Await

Objective-C

Simplificando los métodos nativos con Async/Await

C# con Xamarin

Objective-C

Observa las diferencias – Clases y Métodos

C# => menos código + legible

MANTENIBILIDAD

Json.NET, con SerializeObject y DeserializeObject

permite una conversión sencilla entre JSON strings

y objetos .NET.

C# JSON => JSON.Dificultad = Dificultad.Facil;

NuGet

Xamarin.iOS utiliza la compilación

Ahead Of Time (AOT) para producir un

binario ARM de Apple’s App Store.

Rendimiento nativo

Xamarin.Android se aprovecha de

la compilación JIT (Just in Time) en

los dispositivos Android.

Xamarin - Siempre actualizado

Xamarin ofrece soporte inmediato tras

cada publicación de actualización:iOS 8 liberado el 17 de Septiembre del 2014.

Compatibilidad Xamarin con iOS 8: 18 de Septiembre.

Watch Kit (Preview)

Distribuye en todas las tiendas de Apps

Compartiendo código: desarrollo acelerado.

Estadísticas de iCircuit

Más del 90% del código compartido.

Nuget: Reutilización de librerías ya existentes.

iOS Android Windows Phone

Tempo MobileAprovechando nuestros conocimientos de POO, C# y .NET

para un desarrollo ágil:

• Mantenibilidad —> SOLID, patrones, …

• Uso de genéricos.

• Inyección de Dependencias —> Unity.

• Pruebas unitarias —> Unit, RhinoMocks.

• Expresiones Lambda.

• LINQ.

• Web API

Plataforma

Xamarin

Xamarin es la mejor forma de…

Desarrollar Testear Monitorizar

…y además Xamarin Profiler (Preview) - Mac y PC

Dos instrumentos

Tracking Memoria (allocations)

Tracking Rendimiento (time profiler)

Arbol de llamadas

Navega por las funciones en el orden

que han sido llamadas.

Muestreo

Revisa donde esta gastando más tiempo

tu aplicación.

Snapshots de memoria

Obtén información de la memoria

utilizada en diferentes tiempos.

Otra alternativa:

(https://www.genymotion.com/)

…y además Xamarin Android Player (Preview) - Mac y PC

Emulador android rápidoDisponible para Mac y PC.

Ejecución “side-by-side” con el emulador de WP.

Gratuito (https://xamarin.com/android-player).

¿Cómo

trabaja

Xamarin?

.NET + Windows APIs

.NET + iOS APIs | 100% Cobertura

.NET Android APIs | 100% Cobertura

Todo lo que puedes hacer con Objective-C,

Swift o Java puedes hacerlo con C# en

Xamarin Studio ó Visual Studio.

• 1 Ensamblado

• Multiples plataformas

• Incluyendo:

• Xamarin.Android

• Xamarin.iOS

Portable Class Libraries

Shared Projects- VS 2013 Update 2

Xamarin Studio

PC o Mac

VS Plugin

(+2010)

Entornos de desarrollo

Integración con Visual Studio

Una única solución para:

• iOS

• Android

• Windows Phone

• Windows Store

Disponibilidad de todo el

ecosistema de Microsoft:• ReSharper

• Team Foundation Server

• …

Debug en:

• Emuladores

• Dispositivos

Integrando en el toolbar• Estado

• Logs

• Lista de servicios

Integración con Visual Studio

Xamarin Studio

• Optimizado para el desarrollo móvil

multiplataforma.

• Explora las APIs nativas con ‘code

completion’

• Diseñadores Android e iOS

• Depuración en emuladores o

dispositivos.

Diseñador Android

• Disponible en:

• Xamarin Studio

• Visual Studio

• Crear la UI con drag & drop.

• Multiples tamaño de pantalla,

resoluciones y versiones de Android.

• Layouts guardados en ficheros XML

standards de Android.

Diseñador iOS.

• Disponible en Xamarin Studio

y Visual Studio.

• Similiar a los diseñadores de

Visual Studio.

• Soporta todos los elementos

de UIKit.

• Crea y edita componentes

personalizadas o de 3rd.

• Soporte Storyboards.

Xamarin Component Store

.NET Mobility Scanner

Mide el grado de compatibilidad de código existente:

• http://scan.xamarin.com

• Escanea .exe o .dll para determinar la compatibilidad

• Genera un informe completo.

Xamarin.Forms

Con Xamarin.Forms:

mas código compartido (controles nativos)Enfoque tradicional de Xamarin

Shared UI Code

Enfoque Xamarin.Forms

+40 Pages, Layouts, y Controls

Desarrollo desde C# ó XAML

Data Binding bidireccional (MVVM)

Navegación

API animación

Dependency Service

Messaging Center

Shared UI Code

Que incluye

Content MasterDetail Navigation Tabbed Carousel

5 Pages

Stack Absolute Relative Grid ContentView ScrollView Frame

7 Layouts

ActivityIndicator BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView EntryCell

ImageCell SwitchCell TextCell ViewCell

24 Controls

Xamarin.Forms Example

En tiempo de ejecución, las páginas y controles

de Xamarin.Forms son convertidos a elementos

nativos de interface de usuario de cada

plataforma.

Inserta vistas personalizadas

Utiliza vistas construidas mediante

Xamarin.iOS y Xamarin.Android

dentro de páginas de

Xamarin.Forms.

Utiliza APIs de cada plataforma.

¿Necesitas servicios específicos de

cada plataforma (acelerometro,

cámara, …) dentro de una página de

Xamarin.Forms? Xamarin incluye

servicios de acceso rápido y sencillo

APIs de específicas de cada

plataforma.

Extensibilidad

Prueba automáticamente tu aplicación en

miles de dispositivos reales en la nube.

Obtén información de los errores y excepciones para entender y

diagnosticar mejor lo que les está pasando a los usuarios.

DemoPre-built T-Shirt Store

(Xamarin.iOS - Xamarin.Android)

Live Demo

Xamarin.Forms

Resumen

Resumen

• Xamarin permite crear aplicaciones nativas en iOS, Android, Mac y Windows mediante

.NET y aprovechando toda la potencia de C#.

• Las aplicaciones implementadas mediante Xamarin tienen un Look&Feel nativo porque

son nativas. Ofrece un 100% de cobertura en las APIs de desarrollo de cada plataforma,

estando siempre al día en cuanto a actualizaciones se refiere.

• Posibilidad de desarrollar en Mac o Windows mediante Xamarin Studio, o instalando el

plugin de Xamarin para Visual Studio.

• Mejora los tiempos de desarrollo y los costes mediante la compartición de una gran

cantidad de código.

• Prueba de forma automática tu APP en miles de dispositivos reales mediante Xamarin

Test Cloud.

• Obtén información de los dispositivos de los usuarios mediante Xamarin Insights.

¡Regalos….REGALOS…!

• A parte del framework de desarrollo, ¿Qué otras “patas” componen la plataforma

Xamarin?

• ¿De cuantos Layouts dispone Xamarin.Forms?

• ¿En qué año nació el embrión del actual Xamarin y como se llamaba?

¡Gracias!

+

BCN Mobile

.NET

Developers

Group

Softmachine

+