Xamarin Basics

155 visualizaciones

Publicado el

0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
155
En SlideShare
0
De insertados
0
Número de insertados
2
Acciones
Compartido
0
Descargas
2
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Xamarin Basics

  1. 1. Xamarin PUERTA ABIERTA A LA MULTIPLATAFORMA Sergio Gasca @SergioZgz
  2. 2. ¿Qué es Xamarin? • Implementacion libre de .Net • Android • Android < Mono < IL < CLR < C# • iOS • iOS < AOT < C# • Linux • Permite el uso del 100% de las APIs nativas, ya que son expuestas desde Xamarin (Xamarin.iOS / Xamarin.Android) para ser referenciadas desde c# • Desarrollo NATIVO
  3. 3. Trayectoria
  4. 4. ¿Qué aporta Xamarin? • Reutilización de código. • Minimizar tests. • Reducir mantenimiento. • Facilitar refactors. • Todo lo anterior se aplica en mayor o menor medida en función del “tipo” de desarrollo • S.O.L.I.D. es tu amigo • Para “exprimir” Xamarin es necesario pensar antes de actuar.
  5. 5. ¿Cuándo usar Xamarin? • No es una navaja suiza • Aplicaciones en las que gran parte de la lógica sea agnóstica de la plataforma (Hardware, Apis nativas, etc.) o que el uso de las mismas pueda abstraerse mediante interfaces • No tiene sentido en aplicaciones que solo usen cosas nativas, por ejemplo una aplicación que aplique efectos a la cámara en tiempo real. En este caso solo aportaría usar C# (Lo cual a un desarrollador de plataforma le traerá mas problemas que beneficios) • Quieres focalizar a cada desarrollador en su área, y tienes desarrolladores .Net que pueden trabajar en la parte común de ambas plataformas
  6. 6. ¿Cuándo utilizar Xamarin? • Resumiendo… cuando la relación código plataforma vs código compartido salga a cuenta. (Esta relación tiene trampa )
  7. 7. Adaptarse a Xamarin (General) • Sencillo, pero con puntualizaciones: • Hay que cambiar la forma de trabajar, delegar gran parte del trabajo en otros. • Hay que coordinar el trabajo. • Vas a echar de menos tu IDE favorito. • Bugs sin sentido (Cada X días encontraras uno sin sentido aparente) • Recuerda estás en .Net usa su poder (Linq le termina encantando a todo el mundo)
  8. 8. Adaptarse a Xamarin (Android) • El editor visual no es lo que esperas (Ha mejorado bastante en el último ciclo) • En VisualStudio con muchos layouts cambiar o añadir uno se vuelve desesperante (En teoría en el último ciclo esta solucionado) • Olvida las constantes, bienvenidos los enums • Hazte amigo de las interfaces pero … • TIP: Si al implementar una interfaz te pide que implementes un intptr, te has olvidado de heredar de Java.Lang.Object
  9. 9. Adaptarse a Xamarin (iOS) • El editor visual de storyboards no es lo que esperas.* • Vas a seguir usando Xcode para ciertas cosas • Muchos tutoriales se empeñan en hacer los layouts por código y no por storyboard • La gestión de assets da bastantes problemas (Parece haberse solucionado en el último ciclo) • Desplegar en dispositivo lleva bastante mas tiempo que lo que estáis acostumbrados
  10. 10. Forms vs No Forms • Forms, opinión personal, no esta maduro. Aun asi lo usaría en estos puntos: • Una prueba de concepto • Apps en la que el diseño no sea importante y el tiempo de desarrollo sea mínimo • Apps en la que el rendimiento no sea importante, ya que es bastante peor que en Xamarin Classic. • Apps que no requieran gran uso de funcionalidad nativa.
  11. 11. Xamarin en el mundo real • Xamarin es multiplataforma pero no es HTML Hibrido. • No esta pensado para hacer iOS y Android con el mismo estilo visual y misma navegación. • Requiere una arquitectura mas compleja que un desarrollo “normal” en cada plataforma. • Focalizamos esfuerzos por área de experiencia • Arquitectura pensando en las plataformas (Y a poder ser en MvvmCross). • Mas respeto a S.O.L.I.D. mas fácil será tu vida. • Es necesario alguien que coordine el trabajo entre los tipos de desarrolladores.*
  12. 12. Xamarin en el mundo real • Cualquier aplicación que pase de ser una PoC debería pensarse seriamente en hacerse con MvvmCross. • Necesario formación en el patrón Mvvm. • Necesario formación en el framework MvvmCross. • Cambiar la forma de pensar como hacer las cosas. • Sí, la próxima charla será sobre Xamarin con MvvmCross
  13. 13. Xamarin en el mundo real “Lo malo” • Bugs, Acostúmbrate a hacer Clean&Rebuild (AAPT…) • Problemas por desconocimiento. • Complicado conseguir perfiles. • HttpClient (HttpClientHandler nativo) • Portable Class Libraries (PCLs) • Agnósticas de plataforma • Complejo al principio • Los nuevos “mas buscados”. Lo cual puede ser bueno y malo.
  14. 14. Xamarin en el mundo real “Lo peor” • 1 desarrollador != 3 plataformas • Multiplataforma != 1/3 tiempo desarrollo. • No vais a compartir un 90% del codigo. Todo lo que sea visual (Animaciones, diseños, etc.) ha de hacerse en cada plataforma. • Bindings
  15. 15. Herramientas (IDEs) • Windows • VisualStudio, • Da algunos problemas de rendimiento en Android con muchos layouts. • Para trabajar con iOS es necesario tener un agente de compilación en un Mac • Permite trabajar con ReSharper    • XamarinStudio • Va ligeramente por detrás de XamarinStudio Mac. (Ej C#6.0) • Mac • XamarinStudio • Pequeños problemas con assets desde carpeta • Lentitud al desplegar en dispositivo • Problemas con los StoryBoards (sobre todo con las Constrain) • Necesario tener Xcode instalado en misma versión que XamarinStudio
  16. 16. Herramientas (Emuladores) • Windows • Xamarin Android Player (Cancelado) • Emuladores x86 Xamarin Studio • VisualStudio Android Emulators • Habilitar Hyper-V • Mac • Emuladores propios de Xcode. • TIP: Xamarin Profiler
  17. 17. Prueba de código
  18. 18. Muchas gracias por asistir Sergio Gasca @SergioZgz ¿Preguntas?

×