Xamarin Forms uno para todos !!!

Hace unos meses que estoy trabajando en un proyecto con Xamarin Forms y creo que es buen momento para empezar a hacer una serie de entradas sobre el tema y explicar mi experiencia utilizando esta plataforma.

Que es Xamarin

Xamarin es una plataforma que nos permite crear Apps nativas para iOS, Mac, Android, Windows Phone, Windows 8 y más. Además nos permite utilizar solo un lenguaje de programación “C#” y  reducir tanto los perfiles como la cantidad de equipos involucrados en el desarrollo.

Ventajas

  • Aplicaciones 100% nativas
    • Interfaces Nativas
    • Acceso a la API nativa del dispositivo
    • Rendimiento 100% nativo
  • Un solo lenguaje de programación C#
  • IDEs sencillos
    • Xamarin Studio: IDE propio
    • Visual Studio
  • Código compartido
    • el 100% de la lógica de negocio puede compartirse entre las plataformas
    • Técnicas para compartir el código:
      • Proyectos compartidos: podemos utilizar directivas de compilación #if para utilizar dependiendo de las necesidades específicas de la plataforma.
      • PCL “Portable Class Library”: librerías .NET compatibles con diferentes plataformas.
      • Xamarin.Forms: nos permite crear interfaces nativas con más de 40 controles compatibles.

Arquitectura Xamarin Clásica

La forma de plantear el diseño de la App tenía que ser parecido a este:

xamarin_old

  1. Core Library:  Xamarin nos proporciona la posibilidad de crear código compartido en C# para reutilizar en todas las plataformas, Este código podríamos tener  toda la lógica de negocio, la capa de acceso a datos y la capa de servicios. De esta manera solo tendremos una librería donde poner nuestra lógica y reducir el código repetido y facilitar el mantenimiento.
  2. Specific Platform layer: Aunque utilicemos código compartido siempre necesitaremos acceder a utilidades nativas de la plataforma y crear un interfaz de usuario específico para cada plataforma.

Xamarin Forms

Pero con la aparición de Xamarin.Forms ha cambiado mucho la forma de afrontar el diseño de la App y podemos tener una capa de interfaz común para diseñar nuestras interfaces multiplataforma. El resultado final son los controles nativos de la plataforma.

xamarin_Forms

  1. Core Library: Lógica compartida
  2. Shares UI Code: Interfaz de usuario compartido.
  3. Specific Platform layer: acceso a recursos específicos de la plataforma.

 

Controles en Xamarin.Forms

Pages

Las páginas son controles contenedores que representan un Activity en Android, un View Controller en iOS y una Página en Windows Phone.

pages

Layouts

Los layouts son contenedores de otros layouts o vistas. Lo utilizaremos para posicionar los controles dentro de las páginas.

Layouts

Views

Los controles o widgets más comunes que utilizamos normalmente en las aplicaciones.

  • BoxView: Control para pintar un rectángulo relleno de color.
  • Button: Control tipo botón.
  • DatePicker: Control para seleccionar fechas.
  • Entry: Control para editar texto en una sola línea.
  • Editor: Control para editar texto múltiples líneas.
  • Image: Control para mostrar imágenes.
  • Label: Control para mostrar texto de solo lectura.
  • ListView: Control para mostrar una lista.
  • OpenGLView: Control para mostrar contenido OpenGL.
  • Picker: Control para seleccionar un elemento de una lista.
  • ProgressBar: Control de barra de progreso.
  • ActivityIndicator : Control visual para avisar que algo está en curso sin informar el progreso.
  • SearchBar: Control de búsqueda.
  • Slider: Control visual para la captura de un valor lineal.
  • Stepper: Control para incrementar o reducir un valor numérico.
  • Switch: Control visual para la selección on-off.
  • TableView: Estructura contenedora de columnas y celdas.
  • TimePicker: Control visual para la entrada de horas y minutos.
  • WebView: Control contenedor de HTM

 Cells

Celdas predefinidas para facilitar el uso en listas y TableViews.

  • EntryCell: Celda especializada con un label para el título y un entry para la introcucción de datos.
  • SwitchCell: Celda especializada con un label para el título y un switch para seleccionar.
  • TextCell: Celda especializada con dos labels, no con el título y el otro par la descripción.
  • ImageCell: Celda especializada con una imagen y dos labels, uno para el título y otro para la descripción.

 

Otras utilidades

Otras utilidades que nos serán de gran ayuda en el desarrollo  y que veremos en otras entradas son:

  • CustomRenderers: nos permite personalizar la visualización y el comportamiento de los controles para cada una de las plataformas.
  • DependencyServices: nos permite acceder desde Xamarin.Forms a características nativas de cada plataforma, como podría ser el GPS, cámara, etc.
  • MessagingCenter: Nos permite publicar y suscribirse a mensajes para comunicar nuestros ViewModels o diferentes componentes.

 

Espero que esta introducción os parezca interesante y pueda publicar más entradas sobre el tema que me parece súper interesante.

Cross-Posting http://mrubino.net 

 

 

2 comentarios en “Xamarin Forms uno para todos !!!”

  1. Nos hemos tenido que pelear en muchas cosas, pero realmente es un avance importante para el desarrollo móvil. Estoy deseando seguir con esta serie de artículos ?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *