Episode

La opción Xamarin.Forms

Important

This content is not available in English. The original version can be found in Spanish here.

Xamarin.Forms soporta 5 plataformas de aplicaciones distintas:

  1. iOS para programas que se ejecutan sobre iPhone, iPad y iPod Touch.
  2. Android para programas que se ejecutan sobre teléfonos y tabletas Android.
  3. Plataformas Microsoft Windows o Windows Phone:
  4. La Plataforma Universal de Windows (UWP) para aplicaciones que se ejecutan sobre dispositivos Windows 10 o Windows 10 Mobile.
  5. La API Windows Runtime para dispositivos Windows 8.1.
  6. La API Windows Runtime para dispositivos Windows Phone 8.1.

De manera general, una aplicación Xamarin.Forms en Visual Studio consiste de 5 proyectos independientes para cada una de las 5 plataformas más un sexto proyecto conteniendo el código común. Los 5 proyectos de las plataformas por lo general son muy pequeños, a menudo contienen simplemente un poco de código de inicio repetitivo. Los proyectos SAP o PCL contienen el resto de la aplicación, incluyendo el código de la interfaz de usuario.

El diagrama en el video muestra únicamente las plataformas iOS, Android y UWP. Las otras 2 plataformas Windows son similares a UWP.

Las bibliotecas Xamarin.Forms.Core y Xamarin.Forms.Xaml implementan la API Xamarin.Forms. Dependiendo de la plataforma, Xamarin.Forms.Core hace uso de una de las bibliotecas Xamarin.Forms.Platform. Estas librerías son en su mayoría una colección de clases llamadas Renderizadores (Renderers) que transforman los objetos de la interfaz de usuario Xamarin.Forms en la interfaz de usuario especifica de la plataforma.

Por ejemplo, supongamos que necesitamos un objeto de interfaz de usuario que permita al usuario seleccionar un valor booleano. Cuando programamos para Xamarin.Forms, el objeto que utilizamos se llama Switch, y una clase llamada Switch es implementada en la biblioteca Xamarin.Forms.Core. En los renderizadores individuales de las 3 plataformas, este objeto Switch es mapeado a un UISwitch en el iPhone, un Switch en Android y un ToggleSwitch en Windows Phone.

Xamarin.Forms.Core también contiene una clase llamada Slider para mostrar una barra horizontal que el usuario manipula para seleccionar un valor numérico. Los renderizadores en las bibliotecas específicas de cada plataforma mapean esta clase en un UISlider en iPhone, un SeekBar en Android y un Slider en Windows Phone.

Esto significa que cuando escribimos un programa Xamarin.Forms que utilice un Switch o un Slider, lo que finalmente se muestra es el objeto correspondiente implementado en cada plataforma.

Es probable que cada objeto de interfaz de usuario tenga una apariencia distinta dependiendo de cómo sea renderizado por el renderizador de cada plataforma. Incluso, objetos como barras de herramientas pueden ser renderizados en posiciones físicas distintas en cada plataforma. Por ejemplo, el objeto ToolBarItem es renderizado en iPhone como un objeto UIBarButtonItem en la parte superior de la página, en Android como elemento de un ActionBar en la parte superior de la página y en Windows 10 Mobile como elemento de un CommandBar en la parte inferior de la página.

El ActionBar de Android tiene elipsis vertical y el CommandBar de la Plataforma Universal de Windows tiene elipsis horizontal.

Aunque originalmente Xamarin.Forms fue concebido como una API para dispositivos móviles independiente de la plataforma, Xamarin.Forms no está limitado a teléfonos. Una aplicación Xamarin.Forms puede ser ejecutada en tabletas o en equipos de escritorio como en Windows 10 Desktop.

Las distintas implementaciones de la barra de herramientas revelan que Xamarin.Forms es una API que virtualiza no solo los elementos de la interfaz de usuario de cada plataforma, sino también los paradigmas de la interfaz de usuario.

Xamarin
C#