Novedades en Xamarin.Forms 3.4
Con está versión de Xamarin.Forms ya me pongo al día. Han sido bastantes versiones en poco tiempo y con bastantes cambios en las anteriores. Esta última versión principalmente nos trae una vista o control muy interesante, el ImageButton, siendo completamente independiente del botón que ya conocemos Button. ImageButton
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<ImageButton Source="logo.png" BackgroundColor="Transparent" WidthRequest="300" HeightRequest="300" FlexLayout.AlignSelf="Center" FlexLayout.Grow="1" Clicked="ImageButton_Clicked" Aspect="AspectFit"> <VisualStateManager.VisualStateGroups> <VisualStateGroup x:Name="Estados"> <VisualState x:Name="Normal"> <VisualState.Setters> <Setter Property="Scale" Value="1"/> </VisualState.Setters> </VisualState> <VisualState x:Name="Pulsado"> <VisualState.Setters> <Setter Property="Scale" Value="0.8"/> </VisualState.Setters> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> </ImageButton> |
En el ejemplo anterior, se […]
Novedades en Xamarin.Forms 3.3
Hoy de vuelta con las últimas novedades. Está vez la versión 3.3 de Xamarin.Forms. En esta version vuelvén a añadir interesantes propiedades a los controles habituales que nos ayudan a una programación más rápida y sencilla. Además veremos que es Glidex y como nos ayuda a mejorar el rendimiento en nuestras aplicaciones de Android. Label […]
Novedades en Xamarin.Forms 3.2
Aunque hace ya algún tiempo que se publico Xamarin.Forms 3.2. Hoy voy a comentar cuales fueron las novedades más importantes de esta versión, siempre es importante saber que fue y a partir de qué versión empezaron esas novedades. Sobre todo sí tenemos proyectos viejos que nos puede interesar más o menos invertir tiempo en llevarlos […]
Trucos para optimizar el rendimiento de nuestra app
En Xamarin.Forms, hay muchas formas de realizar el diseño pero sin saberlo sacrificamos el rendimiento de nuestra aplicación. Usamos componentes de formas poco adecuadas o para funcionalidades que no son las correctas. Optimizar siempre es bueno Xamarin.Forms 2 hizo especial incapie en la mejora del moto de diseño optimizando al máximo posible el coste de […]
OnPlatform, cambios en Xamarin.Forms 3.2
Seguro que a muchos, cuando habeis actualizado Xamarin.Forms a la version 3.2 o superior os habeis encontrado que que el vuestro código XAML aparece la advertencia “The property ‘Default’ is set more than once”. Esto se debe a que en la version 3.2 han optimizado el comando OnPlatform creando así un código mucho mas limpio […]
Xaml x:Reference, descubre su poder
Qué es x:Reference Es una de las mejores características que se pueden usar cuando usamos XAML. usando x:Reference se pueden enlazar propiedades de dos vistas en la misma pagina. Hay un montón de casos en los que podemos usar esta característica. Aquí vamos con unos cuantos ejemplos: 1- Sí estamos usando un ListView sabemos que […]
Actualiza a .netStandard tu proyecto Xamarin
Hace ya tiempo que el framework .NetStandard va cogiendo fuerza, así que yo también me he decidido a actualizar mis proyectos con estas nuevas librerías. Entendiendo las PCLs Sin entrar en demasiados detalles, ya sabemos que el mayor problema de una librería PCL es qué es estática en el tiempo para la plataforma que se […]
Adaptate al iPhone X con SafeArea
iOS 11 ha introducido unas pocas mejoras visuales de las que podemos sacar partido, incluyendo las guías de capa de área segura y títulos grandes. Para los desarrolladores de Xamarin.iOS pueden leer el articulo especifico, Guía para actualizar tu aplicación Xamarin.iOS a iOS11. Dado que Xamarin.Forms es una capa corriendo por encima de Xamarin.iOS, todas […]
Xamarin Android Device Manager
Desde la llegada de la versión 26 de Android SDK Build Tools, el Android Virtual Device Manager dejó de funcionar. Para solucionar esta catástrofe, la gente de Xamarin nos han proporcionado la herramienta Xamarin Android Device Manager, qué además nos ofrece otras ventajas. Sin embargo, no siempre todo es sencillo. Yo personalmente me he encontrado […]
FileLoadException en UWP
System.IO.FileloadException en Sqlite-net-pcl Descubre como solucionar el error de compilación System.IO.FileLoadException en UWP
Xamarin.iOS tareas de fondo o background (II)
Este artículo va en continuación al artículo Xamarin.iOS tareas de fondo o background en el cual explicaba el funcionamiento de las tareas en background en iOS. También vimos que hay que tener mucho cuidado con los tiempo de ejecución, si excedemos cualquiera de los limites preestablecidos por el sistema operativo, se nos cerrará la aplicación. Aquí vamos a […]
Xamarin.iOS tareas de fondo o background
Aprende como funcionan las tareas de segundo plano en iOS En este articulo voy a hacer un pequeño articulo para explicar como funcionan las tareas de fondo (background a partir de ahora). Vamos a conocer que actua el sistema operativo de Apple cuando salimos de la aplicación y cuando volvemos a ella.
Titulos grandes con iOS 11 en Xamarin.Forms
Con la llegada de iOS 11, Apple ha añadido varios nuevos diseños de elementos en su plataforma movil. Uno de estos cambios son los titulos grandes en la parte superior de la barra de navegación y que ahora pueden ser desplazados si necesitan más espacio. Esta nueva opción puede ser a función aun no está […]
Interfaces adaptables con Xamarin.Forms
Adapta tu aplicación para todos los tipos de dispositivos Xamarin.Forms ha soportado durante un largo tiempo, iOS, Android y Windows. Se han añadido nuevas plataformas para mantenerse al día frente a Tizen, macOS, Linux y Widnows WPF. Estas plataformas corren en infinidad de dispositivos diferentes como teléfonos tables, ordenadores y TVs. Esto presenta un enorme reto […]
Notificaciones Push en iOS con Azure
Las notificaciones push se han convertido prácticamente obligatorias en las aplicaciones móviles desde que aparecieron por primera vez. Una de las mayores ventajas de las notificaciones Push es la posibilidad de enviar información relacionada sin tener que entrar en la aplicación y verificar las novedades de forma manual con el servidor. Esto, además de cómodo […]
Imagenes que se desvanecen
La animaciones son operaciones costosas de las cuales no hay que abusar. Además podría decir que un efecto esta bien usado cuando ocurre de forma casi natural y el usuario no llega a percatar la animación de forma clara. En este artículo tenemos un nuevo un control que hereda de ImageView que se llama FadeImageView. […]
Trucos de xaml con labels (etiquetas)
Descubre unos interesantes trucos para usar los elementos Label de forma mas eficiente y divertida. Label con salto de línea Fondos con colores personalizados Añade emoticonos en los textos Formatos de cadena StringFormat 1- Label con salto de línea: En código ajeno, en foros e incluso en otros tutoriales y webs me he encontrado […]
Deadlock, una muerte silenciosa
Voy a dedicar unos minutos a explicar un error que a mí me ha pasado varias veces y recuerdo que la primera vez me dió muchos quebraderos de cabeza. El problema está en el uso de tareas asyncronas de forma sincrona al crear una pagina en Xamarin o en el constructor de un objeto. Así leído parece […]
Vistas o Views (XF.B-27)
Qué son y como usarlas Xamarin.Forms usa la palabra View para referirse a objetos visuales tales como botones, etiquetas, entradas de texto, etc. los cuales normalmente son llamados controles.
Platfom-Specifics, Usando acciones especificas de plataforma en Xamarin.Forms
Platform-Specifics requiere tener instalado mínimo la versión estable de Xamarin.Forms 2.3.3, con la que podemos hacer uso de las novedades de iOS 10 y Android Nougat en las aplicaciones moviles.
Conociendo la clase XAML (XF.B-26)
Al añadir un archivo Forms ContentPage Xaml en un proyecto el archivo que se añade por defecto tiene el siguiente contenido en su extension xaml.
1 2 3 4 5 |
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="XamlSamples.HelloXamlPage"> </ContentPage> |
Los primeros dos espacios de nombre (xmlns) a los que se hace referencia son, la primera una web de Xamarin y la segunda se refiere a una web de […]
La clase Application (XF.B-25)
Como referencia a continuación se muestra una implementación de la clase Application.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
public class App : Xamarin.Forms.Application { public App () { MainPage = new ContentPage { Title = "Ejemplo de ciclo de application" }; } protected override void OnStart() { // Se ejecuta al iniciar la aplicación Debug.WriteLine ("OnStart"); } protected override void OnSleep() { //Se ejecuta cuando la aplicación entra en reposo Debug.WriteLine ("OnSleep"); } protected override void OnResume() { // Se ejecuta al recuperar el estado Debug.WriteLine ("OnResume"); } } |
Esta clase es instanciada para cada una de las plataformas del proyecto y se le pasa el método LoadApplication el cual es donde se carga y se visualiza el MainPage al usuario. El código de cada plataforma se muestra en las siguientes ejemplos. Las soluciones […]
La clase App (XF.B-24)
Vamos a analizar la clase App de nuestro proyecto PCL. Esta clase puede ir en codigo C# o XAML. La clase base Application ofrece las siguientes caracteristicas: La propiedad MainPage, es la cual establece la pagina inicial de la aplicación. Propiedades globales de diccionario (Dictionary) para almacenar valores a lo largo de los cambios de […]
RelativeLayout y AbsoluteLayout (XF.B-23)
Terminamos con las capas haciendo referencia a estos dos tipos de capas, tal vez de uso menos frecuente pero en muchas ocasiones resultan imprescindibles para la maquetación de la página.
ScrollView, contenido sin limite (XF.B-22)
La definición rápida de Scrollview es qué es un elemento con la capacidad de poder desplazarse por su contenido cuando este excede el tamaño de la pantalla.
Como usar un Grid (XF.B-21)
Como definicion rápida diremos que un Grid es una capa que ordena vistas en lineas y columnas. El código XAML permite ver de una forma mas limpia la estructura y definición de un Grid. Este objeto definimos las lineas (Rows) y las columnas (Columns)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="20*"/> <ColumnDefinition Width="20*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="30" /> <RowDefinition Height="30" /> <RowDefinition Height="30" /> </Grid.RowDefinitions> </Grid> |
De esta manera queda definido el Grid con una estructura de cuatro columnas y tres […]
StackLayout, uso básico (XF.B-20)
La capa StackLayout omite los limites de sus elementos hijo, es por esto que el desarrollador no debe establecer los limites en estos elementos. El siguiente ejemplo muestra como crear una nueva capa StackLayout con elementos subyacentes que exploran algunos de los comportamientos de la capa StackLayout.
Tipos de Capas (XF.B-19)
La clase Layout en Xamarin.Forms es un subtipo de vista especializada, la cual actúa como un contenedor para otras vistas o capas. Normalmente contiene información para establecer la posición y el tamaño de los elementos hijos.
Crar una pantalla de carga en Android (XA.B-1)
Este ejemplo es para Xamarin.Android pero se puede usar completamente en Xamarin.Forms, la razón por la que esta en esta categoría es que las plataformas iOS y WindowsPhone pueden establecer la pantalla de carga(Splashscreen) en las propiedades del proyecto. Ahora bien, para poder tener este mismo funcionamiento en Android debemos seguir los siguientes pasos:
CarouselPage, páginas con desplazamiento horizontal (XF.B-18)
Las páginas CarouselPage son páginas que el usuario puede desplazar de lado a lado horizontalmente para mostrar contenido de otras páginas. El CarouselPage proporciona una experiencia de navegación que nos puede puede transmitir una sensación natural y familiar a los usuarios de Windows Phone. Usando Device.OnPlatform los desarrolladores de aplicaciones pueden proporcionar una navegación personalizada por plataforma. Por […]
TabbedPage, página con pestañas (XF.B-17)
La interfaz de usuario de una pagina con pestañas consiste en una lista de pestañas y un área mas grande para el contenido de la página. En iOS la lista de pestañas aparece en la parte inferior de la pantalla y el área de detalle en la parte superior. En Android y Windows ocurre al […]
NavigationPage (XF.B-16)
La clase Xamarin.Forms.NavigationPage administra la navegación y la experiencia de usuario en la pila con otras páginas. En la plataforma Android las operaciones de INavigation no generan notificaciones en el ciclo de vida de la aplicación. Por cada página Page que colocamos (push) o retiramos (pop) de la pila, la implementación en Android de NavigationPage simplemente añade o retira […]
MasterDetailPage (XF.B-15)
El siguiente código de ejemplo que vamos a ver crea una MasterDetailPage que permite al usuario ver información detallada sobre el color que ha elegido a partir de una lista. Atención, la clase NamedColorPage, definida como una subclase de ContentPage en otro fichero de la aplicación simplemente muestra la información RGB, el color de fondo de un BoxView cambiará con el […]
Páginas, cual elegir. (XF.B-14)
La clase Page es un elemento visual que ocupa la mayor parte de la pantalla y contiene un unico hijo. Xamarin.Forms.Page representa un controlador de vista en iOS o una página en Windows Phone. En Android cada pagina hace uso de la pantalla como una actividad (Activity) pero la clase Page de Xamarin.Forms no son actividades. A continuación una […]
Tipos de navegación (y II), Navegación modal (XF.B-13)
Navegación modal Xamarin.Forms tiene soporte para páginas modales. Una página modal permite a los usuarios completar tareas contenidas en la pagina desde la cual no se puede navegar hasta que la tarea es completada o cancelada. Una página modal puede ser de cualquier tipo Page soportado por Xamarin.Forms. Para mostrar una página modal, la aplicación la […]
Tipos de navegación (I), Navegación jerarquica (XF.B-12)
Xamarin.Forms ofrece varios tipos de experiencias de navegación entre páginas, dependiendo del tipo de página que se ha usado. Para instancias de ContentPage hay dos tipos de navegación diferentes: Navegación de jerarquía Navegación modal Las clases CarouselPage, MasterDetailPage y TabbedPage proporcionan experiencias alternativas de navegación. Navegacion de jerarquía La clase NavigationPage proporciona una experiencia de navegación jerárquica […]
INotifyPropertyChanged (XF.B-11)
El método SetBinding necesita dos parámetros. El primer parámetro especifica la información acerca del tipo de enlace. El segundo parámetro es usado para proporcionar información acerca de que enlazar y como hacerlo. El segundo parámetro es, en la mayoría de los casos, únicamente una cadena de texto (string) que contenga el nombre de la propiedad en […]
Enlazando datos (Data Binding) (XF.B-10)
El enlace de datos conecta dos objetos llamados source (origen) y target (destino). El objeto source proporciona los datos y el objeto target es el que los consumirá y a menudo los visualizará desde el objeto source. Por ejemplo una etiqueta (Label) es un target y normalmente se enlaza con la propiedad Text a una […]
Celdas personalizadas con XAML (XF.B-9)
Para conseguir el mismo resultado que en articulo Personalizar la apariencia de las celdas del ListView pero usando codigo XAML tendremos que hacer lo siguiente:
Primeros pasos con XAML en Xamarin.Forms (XF.B-8)
Continuando con el ejemplo de Usando listas con Xamarin.Forms (XF.B-6) ahora vamos a ver el código equivalente para realizar la misma personalización de la lista usando XAML.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MiPrimerXAML.HomePage"> <StackLayout VerticalOptions="CenterAndExpand"> <ListView x:Name ="listView"> <ListView.ItemTemplate> <DataTemplate> <ViewCell> <ViewCell.View> <Label Text="{Binding Name}" /> </ViewCell.View> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> </StackLayout> </ContentPage> |
Este código define una ContentPage (pagina de contenido) que contiene el ListView. La fuente de datos del ListView es establecida a través del attributo ItemsSource. La capa de cada linea en ItemsSource es […]
Personalizar la apariencia de las celdas del ListView (XF.B-7)
La apariencia de una celda puede ser personalizada haciendo una subclase de la clase ListView y después estableciendo el tipo de esta clase a la propiedad ItemTemplate del ListView. A continuación vamos a realizar el ejemplo de como mostrar una imagen con dos lineas de texto como se muestra en la imagen. Para crear esta capa personalizada tenemos que […]
Usando Listas en Xamarin.Forms (XF.B-6)
El control ListView es el responsable de mostrar una colección de objetos en la pantalla. Cada objeto del ListView estará contenido en una única celda. Por defecto un ListView usará la plantilla de un texto de celda (TextCell) para renderizar una simple linea de texto. En el siguiente código se muestra un pequeño ejemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
var listView = new ListView { RowHeight = 40 }; listView.ItemsSource = new string [] { "Buy pears", "Buy oranges", "Buy mangos", "Buy apples", "Buy bananas" }; Content = new StackLayout { VerticalOptions = LayoutOptions.FillAndExpand, Children = { listView } }; |
Enlazando clases personalizadas con listas El […]
Views and Layouts (Vistas y Capas) (XF.B-5)
Hay cuatro grupos de controles que se usan para crear la interfaz de usuario de una aplicación Xamarin.Forms. 1- Pages (Paginas): Las Paginas de Xamarin.Forms representan la pantalla en las aplicaciones de multi-plataforma (cross-platform). Mas adelante profundizaremos en este tema. 2- Layouts (Capas): Las capas se puedes considerar como contenedores que se usan para componer vistas […]
Mi primera applicacion Xamarin.Forms (XF.B-4)
En Xamarin Studio y Visual Studio, la plantilla por defecto de Xamarin.Forms crea la solucion mas simple posible, la cual muestra un texto al usuario. No podias ser de otro modo que mediante un Hello Forms! Cada pantalla de la imagen corresponde a una pagina en Xamarin.Forms. Una pagina representa un Activity en Android, una […]
Primer contacto con Xamarin.Forms (XF.B-3)
Xamarin.Forms es un framework que permite a los desarrolladores rapidamente crear interfaces de usuario para todas las plataformas.Proporciona su propia abstracción para a interfaz de usuario que sera renderizada usando controles nativos en iOS, Android, Windows o Windows Phone. Esto significa que las aplicaciones puedes compartir una gran cantidad del código de la interfaz de […]
Como funciona Xamarin? (XF.B-2)
Xamarin ofrece dos productos comerciales: Xamarin.iOS y Xamarin.Android, ambos estan construidos sobre Mono, un framework .NET de codigo abierto que cumple los estandares ECMA. Mono abarca practicamente todo el framework .NET y se puede ejecutar en practicamente todas las plataformas, inlucyendo Linux, Unix, FreeBSD y Mac OS X. En iOS Xamarin compila con Xamarin.iOS aplicaciones […]
Introducción a Xamarin (XF.B-1)
Xamarin es la única plataforma que con un único lenguaje como es C#, se puede escribir código que funcione en las tres plataformas móviles de iOS, Android y Windows Phone (en este último C# es su lenguaje nativo) además de que compila la aplicación en código nativo propio de cada plataforma. Cada una de estas […]