Provisioning Profiles Terror

Bueno, me he decidido a hacer este post para aclarar una serie de problemas y dudas que nos surgen a todo desarrollador que tiene que pegarse con el terrible sistema de Apple para certificar/aprovisionar/firmar/hacer magia arcana que permita hacer funcionar la aplicación que has desarrollado en cualquier iThing de Apple.

No vamos a entrar en detalles y solo vamos a dar unas cuantas claves para lograr lo que queremos sin tener que leernos las múltiples páginas de documentación que existen y tener que dedicarle tooooodo el día.

Generar JSON Postman Collection desde WebApi

Para aquellos que no conozcan Swagger o que no vean viable su utilización a estas alturas de su proyecto, aquí os dejo el código de un controlador que permite exportar tu WebApi a un JSON que podrás importar en Postman y te permitirá tener todas las operaciones ordenadas en una Colección. Es totalmente configurable, como podréis ver,  y pueden añadirse un sin fin de opciones; aquí solo está hecho lo básico, que os permitirá hacer las llamadas y obtener las respuestas de vuestras operaciones.

Carrusel para Xamarin Forms

Basándome en la implementación de https://github.com/chrisriesgo he adaptado su Carousel para mostrar imágenes usando Xaml.

carousel

El autor original ha desarrollado su ejemplo por código, lo que para algunos puede parecer un poco complicado; independientemente de que te guste más o menos Xaml, siempre es mas intuitivo ver como esta construida la página de esta manera que con código XD.

Object Bindable Picker para Xamarin Forms

He creado una lista desplegable que pueden ser bindada a una lista de objetos (en vez de string), o lo que es mas conocido un “ObjectBindable Picker”. Ademas puedes seleccionar la propiedad a mostrar en base al nombre de la propiedad.

object-bindable-picker

Este control forma parte de una recopilación de información a lo largo y ancho de internet; gracias a la colaboración de muchos desarrolladores.

Dynamic Load for a ListView para Xamarin Forms

He creado un ListView que carga dinamicamente los items según la BindableProperty “ItemsPerPage”.

dynamic-list-scrolling

Es una lista de tipos genéricos, por lo que a la hora de agregarla en xaml hay que especificar el tipo de la siguiente manera:

...

xmlns:myModel="clr-namespace:XamarinFormsDemo.Model;assembly=XamarinFormsDemo"
x:Class="XamarinFormsDemo.View.InfiniteScrollingPage"

...

<customControls:DynamicListView x:TypeArguments="myModel:MyColor"
     FullItemsSource="{Binding ColorsList}"
     ItemsPerPage="5"
     ItemTemplate="{....}">

 

La BindableProperty FullItemsSource es la encargada de guardar todos nuestros items, mientras que la propiedad ItemSource mostrará los items que se vayan cargando a medida que se vaya haciendo scroll.

Validaciones, terribles validaciones…

Una forma elegante de validar numerosas propiedades:

Queremos validar que ciertos campos del objeto Address estén rellenos:

public class Address : EntityBase
{
	public string City { get; set; }
	public string Country { get; set; }
	public string Name { get; set; }		
	public string PostalCode { get; set; }        
	public string Street { get; set; }
	public string StreetNumber { get; set; }
}

Visual Studio 2015 Android Emulator not working

Actualización: Primero…leámos esta página: Xamarin Developer

Si tu Visual Studio 2015 Android Emulator no funciona, arranca pero entra en un bucle infinito infernal de “starting SO…” y ahí se queda por los siglos de los siglos…

Si para arreglarlo lo has  desinstalado, lo has vuelto a instalar, has desinstalado Hyper-V, lo has vuelto a instalar;

Si has probado esto: Juanlu, elGuerre Blog

Y 1000 cosas más que no te han solucionado el problema,  aquí te traigo la solución que me ha funcionado a mí.

Fuente: Post StackOverflow

C# Singleton

Para el despistado:

 

public class MySingletonClass
{        
        private static MySingletonClass instance;

        public static readonly object Padlock = new object();

        public static MySingletonClass Instance
        {
            get
            {
                lock (Padlock)
                {
                    if (instance != null)
                    {
                        return instance;
                    }

                    instance = new MySingletonClass();
                    return instance;
                }
            }
        }
}

 


www.000webhost.com