Resumen del Evento: GDC Madrid – Cordova + Ionic + Angular JS

Hola monstruos del código,

Recientemente hemos asistido al evento de la GDC Madrid que rezaba sobre 1 de los frameworks mas reconocidos para el desarrollo de aplicaciones móviles hibridas (multiplataforma), el famoso y reconocido Cordova, y otros dos frameworks adicionales para conseguir un aspecto y uso lo más parecido posible a una aplicación móvil nativa.

Voy a intentar resumir el evento en sus tres grandes partes, las cuales a ver serán Cordova, Ionic + Angular JS y temas interesantes que desconocía y me parece interesante destacar.

Pues bien empezamos con Cordova, donde no cabe destacar nada adicional que no conociera previamente de mi experiencia con PhoneGap (que emplea Cordova); en este punto, cabe destacar que el ponente Rubén Aguilera, en este caso introdujo muy bien la tecnología, y nos dejo un muy buen tutorial para empezar a trabajar con el framework, para los mas noveles en la materia, queda considerado de gran interés…

Para los que no sepáis que es Cordova, voy a intentar contarlo de forma sencilla; digamos que estamos hablando de un framework que nos permite desarrollar aplicaciones utilizando HTML + CSS + Javascript y al mismo tiempo acceder a determinados elementos del hardware de nuestro dispositivo móvil (GPS, Cámara, Acelerómetro…) , pero la cosa no queda ahí dado que este framework compatibiliza (al estar hecha con HTML, CSS y JS), 1 solo desarrollo con las actuales plataformas móviles (android, iOS, Windows phone y firefoxOS), compilando una misma aplicación (1 solo desarrollo, lo remarco porque es lo interesante), para los distintos markets disponibles, quitando las particularidades muy necesarias para compilar en cada caso.

Respecto a Ionic + Angular JS, la puesta en perspectiva de este concreto en la charla no fue demasiado especial,  solo destacar un buen Tutorial para empezar a trabajar con ellos. Para los que desconozcáis estos frameworks y lo que podemos conseguir con ellos, quedaros con la idea de que nos servirán para dar a nuestra aplicación un aspecto y uso lo mas nativo posible (ver bootstrap).

En cuanto a las cosas interesantes que puedo destacar de la charla digamos que la presentación de una buena MV android (Genymotion) con un gran rendimiento, y la certeza absoluta de que aun seguimos necesitando de las distintas plataformas (Mac, Windows) para compilar las aplicaciones antes de subirlas a los respectivos markets.

Link al evento: https://plus.google.com/events/cmhq6l8p7q03tfqo3pnc8bgpeoo?utm_source=chrome_ntp_icon&utm_medium=chrome_app&utm_campaign=chrome

Android / iOS Image Resizer

Hola monstruos del código!

Aquí traigo la solución a las roturas cerebrales de muchos compañeros programadores / diseñadores que tienen que dedicar horas de trabajo a generar los recursos gráficos necesarios para la dolorosa fragmentación de dispositivos móviles que existe hoy en día.

Esta utilidad simplemente parte de los recursos gráficos generados con calidad 320dpi y máximo tamaño, y los reduce en tamaño y dpi para ajustarlos a las principales densidades de pantalla existentes en el mercado según la guía android (ldpi/mdpi/hdpi/xhdpi) y las de los dispositivos iOS (Retina y no Retina).

Como bien se ve en la imagen es tan sencillo como seleccionar la carpeta origen donde se encuentran los recursos en alta calidad, después seleccionamos las calidades y tamaños resultantes, y especificamos finalmente la carpeta de destino donde queremos que vuelque las imágenes con la preciosa y magnifica estructura de android e iOS. Y después de esto pulsamos ZUMBAR!!!, y el programa nos generara la estructura en un periquete.

Podéis bajarlo desde la siguiente URL: https://drive.google.com/file/d/0B07QD84p_9jfMjBORFFpMzFEYlE/edit?usp=sharing

Y os preguntareis, ¿donde esta la chicha de esto? y ¿por que no perdemos calidad de imagen?, pues bien esto es debido principalmente a las siguientes lineas:

graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
graphics.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceCopy;
graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

using (ImageAttributes wrapMode = new ImageAttributes())
{
	wrapMode.SetWrapMode(System.Drawing.Drawing2D.WrapMode.TileFlipXY);
	graphics.DrawImage(img, new Rectangle(0, 0, newWidth, newHeight), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, wrapMode);
}

Para concretar mas estamos ajustando la calidad para la composición de la nueva imagen, así como el modo de composición como copia del origen. Así como también definir el modo de interpolación y difuminado a la mayor calidad posible.

Pero con esto no termina la cosa, ya que, es muy importante y decisivo definir el como el framework de .NET va a hacer la reducción de la imagen, pues bien esto se lo estamos indicando con el WRAPMODE, donde en nuestro caso le estamos indicando que haga la reducción proporcional de los ejes X y Y.

Espero lo hayáis entendido monstruos del código!!

Un saludete.