introduction to xamarin
TRANSCRIPT
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.
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
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?
Json.NET, con SerializeObject y DeserializeObject
permite una conversión sencilla entre JSON strings
y objetos .NET.
C# JSON => JSON.Dificultad = Dificultad.Facil;
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.
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
…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).
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
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.
.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.
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
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
Obtén información de los errores y excepciones para entender y
diagnosticar mejor lo que les está pasando a los usuarios.
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?