viernes, 19 de agosto de 2016

Nueva aplicación: Dress my phone

Hola de nuevo a todos,

hace ya mucho tiempo que no entro por aquí, y lo hago después de mucho para mostraros una aplicación que lleva algún tiempo en el mercado. La aplicación está disponible para Android y la he desarrollado utilizando sólo software libre. A continuación explicaré qué es y para que sirve Dress My Phone.

Dress My Phone permite cambiar el fondo de pantalla del móvil de manera fácil a partir de los colores de tu ropa. Si quieres llevar a juego tu ropa con tu móvil esta es tu aplicación (dress my phone).


De manera general esto es lo que hace Dress My Phone, ahora vamos a verlo un poco más de cerca y de manera más técnica.

¿Cómo puede hacer una aplicación que el fondo de tu teléfono sea parecido a la ropa que llevas?

La aplicación básicamente se basa en sacar una foto de tu ropa y elegir una serie de imágenes de muestra que te ofrece. Parece fácil, pero surgen muchos interrogantes a la hora de implementar un algoritmo para hacer que salgan los resultados más óptimos según los colores. Problemas como la semejanza de colores en un ordenador comparados con la semejanza de colores del ojo humano, cómo realizar complejos cálculos sin que el servidor se resienta o cómo monetizar la aplicación, son algunos de los retos a los que me he tenido que enfrentar.


¿Que problema existe con la semejanza de colores?

Actualmente existen numerosos algoritmos para indicar que un color se parece a otro https://en.wikipedia.org/wiki/Color_difference. Estos algoritmos en la mayoría de los casos tienen unos resultados que no se asemejan a la realidad puesto que la apreciación del ojo humano de los colores no es muy correcta (vemos muchos más tonos verdes que de otro tipo de color). Utilizar uno de estos algoritmos es lo que se decidió para la base de la aplicación. Pero surgieron otros problemas, un algoritmo de estos mide la diferencia de un color con otro, pero una imagen tiene muchos más colores. ¿Cómo comparar unos con otros? Decidí modificar el algoritmo CIE para adaptarlo a que comprobase todos los colores de la imagen (previamente simplificados) con todos los demás de la muestra. Para dar más importancia, se hace una mediana y se utilizan pesos para decidir el orden de prioridad y pesos de cada color en la imagen. Como resultado cada color se comprueba con cada color de las imágenes de muestra que están en el servidor previamente procesadas. Cada comprobación da un valor que servirá para ordenar los resultados y pedirlos al servidor de imágenes.
Sencillo ¿verdad?.



¿ El servidor entonces realiza muchos cálculos?

 El servidor sólo tiene que devolver las muestras procesadas (sin las imágenes) y es el móvil quien hace todos los cálculos para luego pedir los resultados. Estas imágenes quedan cacheadas por el servidor y no se necesita casi nada de cómputo. Además se realiza un filtrado previo en la aplicación para pedir un número de muestras determinado o un filtro por textura. El smartphone se encargará de todo el proceso de comparación. Como ya he dicho, el algoritmo es libre y no hay problema por ponerlo en la aplicación. Es por ello que con un servidor pequeño y haciendo uso de Amazon S3 para almacenar las imágenes se obtiene una respuesta muy buena en la aplicación.



¿Toda aplicación necesita un mantenimiento, cómo monetizar esto?

La aplicación no busca en ningún momento ser un superventas pero para amortizar los costes del pequeño servidor se ha decidido crear una aplicación de pago, y poner publicidad en la versión libre.




Espero que les sorprenda la aplicación y vean que detrás de cualquier aplicación hay mucho trabajo y muchas horas de pensar. Espero que les guste la aplicación.

Dress My Phone Pro: enlace

Dress My Phone Free: 
enlace

No hay comentarios:

Publicar un comentario