lunes, 30 de enero de 2012

No apto para expertos: Windows Phone y yo

Desde fines del año pasado he tenido como meta iniciar una serie de post a través de los cuales enseñar a alguien que recien empieza a desarrollar para Windows Phone. Quien me conozca un poco, sabe que tengo la manía por tratar de explicar las cosas simples y que mi tipo de público no es experto, es más ese tipo de personas que saben poco y tienen prisa y para quien todo está demasiado avanzado para ser comprensible por que apenas y cuentan con nociones básicas de programación. Ni mucho menos espero ayudar con la prisa, pero si motivarlos a darse pausa y aprender.

Hoy día muchos desarrolladores experimentados (cabe aclarar que no lo soy) dan por sentado que muchos conceptos son de manejo general para la gente que empieza a programar, por tanto muchos promulgan lo fácil que es desarrollar para muchas tecnologías solo por que hoy las herramientas lo hacen más fácil, olvidando que ellos casi han crecido y evolucionado con las herramientas y por eso les resulta tan natural y comprensible, pues bien, eso es cierto, muchos además de ellos, pueden desarrollar y hacer cosas bastante avanzadas, pero entre esos "duros de la programación" muchos practican el arte de la imitación y copiar pegar y no tienen claros los conceptos detras de lo que hacen, cosa que a mi particularmente no me resulta agradable, que funcione no significa que está bien.

Por eso es este inicio, probablemente lento y pausado de acuerdo al tiempo que tendré disponible, pero si estas empezando, trataremos de ir bastante despacio, aclarando al menos un poco los conceptos asociados o al menos dejando la inquietud y los mejores recursos relacionados que pueda encontrarme por ahí. 

Pretendo seguir una buena idea que me dió @Warnov ¿Por qué no empezar a enseñar programación con Windows Phone? Sería una buena forma de capturar la atención de los que están empezando y aprender nuevas tecnologías al tiempo, sin embargo practicar esto en mi salón de clases no me parecio adecuado con la universidad en que trabajo, así que intentaré hacerlo en mi blog.

Por favor ten en cuenta que no pretendo enseñar a programar, la algoritmia y la lógica de programación (al menos estructurada) son bases que debes tener, ir tan atrás sería pretencioso de mi parte, de hecho la idea no es muy diferente a lo que otros hacen en la red, solo quiero ir dando ideas de lo que conozco y pues ya ustedes me ayudarán pidiendo explicaciones de cosas que deje en el aire o por qué no corrigiendome, yo también aprendo cada día.

Mis post no serán aptos para expertos, pero llevarán toda la buena vibra para quienes deseen aprender, como se lo decía a un amigo alguna vez no encuentro mejor forma de saber si yo misma entiendo, que tratar de explicarlo, si no puedo explicarlo, no lo entiendo, es así de sencillo. ;). 

Todo esto nació de intentar explicar el patrón MVVM usado por defecto en las plantillas de Windows Phone, explicar el uso de un patrón es un tema que unos hacen mejor que otros, entender las razones por las que deben aplicarse es algo que toma tiempo y tiene un trasfondo importante. De hecho soy partidaria de que si no entiendes el uso de patrones, sencillamente no los utilices, todo podría volverse un caos. Usa buenas prácticas de programación y construye tu código de forma ordenada antes que hacer cosas que no entiendes.

Para empezar les mencionaré algunos temas en los que evaluarse y preguntar cuanto los entendemos y de esa manera sabremos que tanto esfuerzo debemos colocar en aprender:

Comprensión de conceptos relacionados con orientación a objetos además de los típicos objetos, clases, encapsulamiento, herencia y polimorfismo, entender las raices de todo eso a través de los principios modularidad, reutilización, alta cohesión, bajo acoplamiento, un tanto de programación por capas y mucho más del concepto de frameworks y patrones en especial el patrón observer y de ahí adelante, MVP, MVC y MVVM. Además y obviamente programación básica con C# (Generics, herencia, eventos, delegados, interfaces...),  además Silverlight, XML, XAML, Web Services, ahmmm... y mucho más 

¿Todo un reto no? Viéndolo así no parece tan simple, pero ya verán que lo logramos ;)

Nos vemos en mi primer post ;)

domingo, 29 de enero de 2012

Marketplace Test Kit


Como todos sabemos enviar una aplicación al Marketplace tiene un proceso a través del cual nuestra aplicación es certificada por Microsoft como apta y alineada con sus políticas.

Además de cumplir con temas básicos y obvios como alinearse al estilo Metro, la seguridad de los datos de los usuarios y no tener código malicioso, debemos tener en cuenta consideraciones más detalladas que nos sería difícil de recordar, por lo que en el SDK 7.1 fue incluido el Marketplace Test Kit.

Esta herramienta nos ayudará a realizar 3 tipos de test y además nos proveerá una lista de comprobación con 50 puntos que debemos comprobar en nuestras aplicaciones para tener mayor probabilidad de que nuestra aplicación pase el proceso de certificación la primera vez que la enviemos al Marketplace.

Para acceder al Marketplace Test Kit se abre la solución de la aplicación en Visual Studio seleccionando el proyecto a probar y abriendo el Marketplace Test Kit a través del menú contextual del proyecto.

El Marketplace Test Kit se actualizará cuando al ejecutarlo, si los requisitos de certificación del Marketplace cambian y es necesario ejecutarlo por cada proyecto que sea necesario para que tu aplicación funcione correctamente en el teléfono, en caso de tener varios proyectos.

Para usar el Market Test Kit es necesario compilar en modo release, para compilar en modo release o liberar es necesario ir a la barra de herramientas Estándar, y seleccionar Depurar o Liberar (Debug or Release) en el cuadro de lista Configuraciones de soluciones. Esta barra de herramientas no está disponible en Visual Basic Express o Visual C# Express, por lo que es necesario en el Explorador de soluciones, seleccionar el proyecto, en el menú Ver, hacer clic en Páginas de propiedades, luego en la pestaña Compilación o Depurar (Compile or Debug) y en la lista desplegable Configuración en Debug o Release.

Entre las pruebas tenemos las comprobaciones de las características de la iconografía o imagenes asociadas a la aplicación o como es llamado el Application Artwork. Para este punto recuerden que existe una herramienta dentro del emulador para capturar las imágenes que serán la vista premilinar de tu aplicación, el Emulator Screenshot Tool.

Otra de las pruebas consiste en la verificación de las capacidades configuradas en el WMAppManifest.xml, es importante recordar que allí solo deben estar las capacidades del teléfono que a las que tu aplicación necesite para funcionar. Para determinar cuales son con precisión se puede usar el Capability Detection Tool.

Otras de las verificaciones básicas son el tamaño del archivo XAP (Paquete compilado de la aplicación) y el uso correcto del botón de retroceso y que la navegación entre las funciones no sea complicada, además de no caer en la navegación circular, para lo cual ya existe una posible solución publicada por el equipo de Windows Phone.

También se validan temas más avanzados como que haya un control adecuado de los errores de la aplicación que no hagan que esta termine abruptamente, y que el desempeño de nuestra aplicación y el uso de recursos no afecte el funcionamiento de teléfono. De la misma forma que la aplicación no utilice las API que no están permitidos en el teléfono y si es un agente en segundo plano que no use las API que no son permitidas para este tipo de aplicaciones.

Los 4 grupos de pruebas que incluye el Marketplace Test Kit son: Detalles de aplicación, Pruebas automatizadas, Pruebas monitoreadas y Pruebas manuales (Lista de comprobación). La descripción y el uso de cada una de ellas se encuentra explicado en forma detallada en MSDN y traducida a español en La liga silverlight.

Ëxito con sus aplicaciones y hasta la próxima.

Sorey

sábado, 28 de enero de 2012

¿Qué son las aplicaciones Estilo Metro?

Desde que ha iniciado la difusión del Estilo Metro, muchos se han interesado por entender lo que significa. Al empezar a consultar sobre Metro es común encontrarse con un conjunto de principios "no técnicos" si no más bien conceptuales sobre lo que debería generar la experiencia de usuario en una aplicación con personalidad Metro.

Esto para un diseñador probablemente sea más fácil de asimilar, sin embargo algunas personas técnicas, equivocadamente han caído en pensar que aplicar metro es una lista de chequeo que siguen las aplicaciones que construyen. Tengo la pena de comunicarles que eso no es totalmente cierto y me atrevería a decir que ni siquiera es la idea principal.

Aunque hay detalles técnicos puntuales que ofrece Microsoft para la construcción de aplicaciones Metro, el nacimiento de Metro y su pretención es más un real impacto y cambio sobre la forma en que las personas interactúan actualmente con los sistemas, un camino que evidentemente apalanca e intenta iniciar la evolución de los usuarios y sus experiencias con el software, a las ideas de nuevas aplicaciones que tanto hemos visto en los videos de futuristas de Microsoft (por cierto de un futuro no tan lejano).

Metro sin embargo no se reduce a ceñirse a la propuesta de Microsoft, si no que establece un conjunto de ideas alrededor de las cuales muchas aplicaciones y sitios web pueden ser construidos, no necesariamente usando los mismos elementos, pero seguramente si bajo la misma intención.

Aunque temas como la tipografía evidentemente darán una linea característica a este tipo de aplicaciones, hay una absoluta libertad, mientras conserve y se alinee a los principios que sigue la propuesta. De hecho en la mayoría de sitios de Microsoft hoy, podemos ver detalles de sutiles a fuertes con respecto a la alineación con Metro, y quien mejor que los que lo proponen para darnos diferentes y hermosos estilos de aplicación, como el portal de Zune o el de Azure, donde se aplica el estilo Metro sin necesidad de alinearse al uso de los cuadros tan característico en las propuestas para Windows Phone y Windows 8.

Aquí una implementación bastante bonita del sitio de DreamSpark


Personalmente siento que muchos han confundido Metro con una linea monótona de hacer aplicaciones con cuadros y una tipografía fija, también sobre colocar o no colocar demasiados elementos en las interfaces, pero Metro no se reduce a eso, por soñador que parezca Metro habla de tocar al usuario al interactuar con nuestra aplicación, de producir sensaciones, de usar la disposición y estilos de los textos, las animaciones de elementos, las respuesta a los gestos táctiles, todo esto en su sana proporción, sin exceso, y obviamente sin olvidarse que lo principal es llevar al usuario a ejecutar tareas concretas en la menor cantidad de pasos que esto sea posible y comprensible.

La aplicaciones de estilo Metro son aplicaciones adaptadas a las necesidades de sus usuarios, adaptadas al dispositivo que se ejecutan y optimizadas para para la interacción táctil. Ser liviano y minimalista está muy lejos de creer que Metro es para tomárselo a la ligera, y temas como inmersión, movimiento e impacto emocional no son solo conceptos accesorios, lo son todo.

Obviamente hablar de forma tal elevada de estos conceptos hace que muchos además de desinteresarse no sepan como aplicarlos, espero poder darles algunos tips extraídos de la mucha lectura sobre Metro sobre como darle esa personalidad a sus aplicaciones:
  • Metro habla de atracción, si tal cual, de ser atractivo y vivo, esto además de relacionarse con la estética de nuestra aplicación, márgenes, el buen uso de las escalas de colores y la tipografía, tiene que ver con lograr que tu usuario quiera ver tu aplicación siempre. ¿Qué eso como se logra? La propuesta puntual de Windows Phone y Windows 8 son los Live Tiles o los cuadros dinámicos, que deberíamos usar desechando la idea de que es solo un acceso directo. Estos cuadros son una oportunidad para definir visualmente la marca para sus usuarios, además los cuadros tanto en Windows Phone como en Windows 8 son una manera de comunicarnos con ellos y atraerlos con la información que les interesa y la gente que les importa y llevándolos así a usar la aplicación. Usar los cuadros como acceso directo solo es un desperdicio de estrategia. debería trabajarse por que los usuarios volvieran de forma recurrente a los cuadros dinámicos en busca de actualizaciones.
  • Metro también es experiencia, el movimiento y la atracción distan de interferir con la concentración de los usuarios para que puedan hacer las cosas que quieren hacer, además de poder compartir contenido con sus círculos sociales y enviar contenido a los dispositivos que están conectados. Además es importante tener en cuenta que a los usuarios les encanta hacer más de una cosa a la vez, conocer el espacio que tenemos disponible y como usarlo, además de el ciclo de vida de las aplicaciones y como lograr usarlo de forma que permita realizar otras tareas de forma y retornar de forma cómoda volviendo al punto donde se encontraba trabajando, son detalles que conciernen directamente a los desarrolladores y que no deben olvidar. La experiencia en Metro es vital, hasta la instalación fácil hace parte del concepto.
  • Hablando de interacción en el tema de los gestos, no seguir algunas consideraciones serían razones por las q nos rechazarían las aplicaciones en el Marketplace de no seguirlas. Conocer los gestos que maneja el dispositivo en el cual corre nuestra aplicación es importante, como desarrolladores trasladarnos al mundo táctil y salir del entorno donde clic, clic derecho y doble clic eran lo más importante es imprescindible, y para ello debemos reconocer con que gestos funcionan los controles y los contenedores de dichos controles, puntualmente me refiero a los pivots y panoramas, cuyo gesto base de deslizamiento horizontal podría entrar en conflicto con el comportamiento de otro control y generar una mala experiencia de usuario. Estos no son los únicos casos, cualquier otro contenedor al que le asociemos un comportamiento, olvidando que luego podemos colocar controles dentro de el podría generar esta misma situación. También en este punto debemos tener en cuenta la distancia entre los elementos, al ser una experiencia táctil la precisión se reduce, por lo que guardar una distancia mínima adecuada (además de estética) entre los elemento es importante.
  • Cuando nos referimos al movimiento podemos hablar del uso de animaciones, y aquí tengo que decir que tener Expression Blend para facilitar este trabajo es excelente. El movimiento sin embargo no se reduce a animaciones de adorno, de hecho debemos ser mesurados con el tema y no abusar. El movimiento podríamos asociarlo mucho a la experiencia de usuario, cosas tan simples como presionar un elemento en la pantalla y que el usuario se de cuenta con un movimiento, cambio de estado o de colores que ha realizado un gesto sobre el son detalles bastante importantes, y que si bien los usuario no lo agradecerán por que lo considerarán obvio, si lo odiarán si no lo hacemos.

Para finalizar les recomiendo el blog de Arturo, definitivamente mucho que aprender desde el día 1, tiene excelentes post para ver puntualmente como aplicar el estilo Metro a nuestras aplicaciones. Espero que les haya gustado un poco mi muy personal análisis y hasta la próxima ;)

Sorey

sábado, 21 de enero de 2012

Windows Phone 7 Emulator Skin Switcher

Es de todo mi gusto compartirles herramientas de esas que nos eviten cosas manuales como comandos de consola y renombrar archivos aquí y allá, por lo que quiero compartirles esta vez Windows Phone 7 Emulator Skin Switcher, una herramienta útil y simple que les permitirá cambiar con un solo clic la apriencia de su emulador.


El Windows Phone 7 Emulator Skin Switcher soporta mi skin favorito el Nokia Lumia 710 White Pink del cual les comparto como se ve, y otros 24 skins más disponibles a la fecha: 

Fujitsu IS12T Green, Fujitsu IS12T Black, Generic unbranded skin, HTC Arrive (7pro), HTC HD7, HTC Mozart, HTC Radar Silver, HTC Titan, HTC Trophy, Nokia Lumia 710 Black Blue, Nokia Lumia 710 Black Yellow, Nokia Lumia 710 White Black, Nokia Lumia 710 White Blue, Nokia Lumia 800 Black, Nokia Lumia 800 Blue, Nokia Lumia 800 Pink, Nokia Lumia 800 White, Samsung Focus, Samsung Focus S,  Samsung Omnia 7, Samsung Omnia W, ZTE Tania, Zune HD y Default skin. 

La parte muy positiva de que este proyecto este en CodePlex es que podemos aportar con nuestros skins para que la herramienta siga creciendo.

Usarlo es muy simple, al iniciarlo veremos la lista de skins disponibles con su imagen en miniatura y con seleccionarlo es suficiente, reiniciamos nuestro emulador y voilá podemos ver los 25 skins y elegir nuestro favorito. 

Los invito a descargarla en su espacio en Codeplex o bien en el sitio de su creador.

* Este post fue publicado originalmente para Mi Windows Phone

Sobre las ciencias de la computación

Este es otro post de esos sentimentales que acostumbro a escribir con respecto a lo mucho que me sorprende como a las personas hoy en día el software les resulta tan obvio e insignificante en su esfuerzo de construcción, y entre otras es una opinión idealista acerca de lo que pienso que debería hacerse para esto de tenerle un poco más respeto a la tecnología y aún más a la gente que trabajaba en ella.

Para quienes las Ciencias de la computación les parece un misterio, los invito a compararla con la Física, o por que nó con las Ciencias Sociales. Hoy en día es muy lógico para todo el mundo que tanto en bachillerato como en la universidad nos enseñen sobre estas dos materias aunque para poco o nada las usemos en nuestras vidas laborales. La razón es desde simple hasta comprensible, la primera es una forma de entender el movimiento, los materiales, la luz, todo aquello de como funciona el universo donde te desenvuelves, la segunda es una forma de enseñarte de donde vinimos y como estamos hoy en día y las razones por las cuales es de esa forma. ¿Tiene sentido? Si, tiene sentido.

Bien, parte de esto a mi me ofende, hoy en día la tecnología resulta inherente para la mayoría de personas, la velocidad con la que evolucionó el tema a nivel de hardware y software hace que la gente no le dé el nivel de importancia que tiene, a pesar eso sin embargo el hardware tiene cierto nivel de respeto, las comparaciones básicas con las enormes computadoras (Mainframes) de hace pocos años y las maravillas que vemos hoy en miniaturas, hacen que el tema sea admirable, sin embargo no resulta así para el software, la razón a todas luces parece obvia, el que no puedan palpar o tocar el software, parece hacerle pensar a la mayor parte del planeta que entre otras se hace con poderes mentales o con purita magia.

Volviendo al tema del bachillerato, las ciencias de la computación deberían ser una matería de esas básicas que uno ve y no sabe para que le sirven, enseñarle a la gente desde que los bits, son bytes, y qué es a lo que se enfrentan los profesionales dedicados al tema, podría ser una luz para salvarnos a los profesionales de la plaga de usuarios "utopistas" que parece ir en aumento, y a los que me gustaría recordarles que "no por que sea intangible es fácil de construir", desde cuándo lo abstracto tiene menos valor, ¿que no era al contrario?

Del software solo saben las personas cuando ocasiona grandes y pequeñas tragedias, desde hacer que un avión sufra un accidente y mueran personas, hasta que se pierda tu trabajo de horas por que Word no te guardo un respaldo que no contemplaste hacer tu mismo.

¿Y que de donde sale tanto drama? ¿Por qué hacer semejante sugerencia?

Es de hecho bastante simple, algún día viví dos sucesos de esos a los que uno se acostumbra, pero como dicen "fueron la gota que derramó el vaso", y es que seguro no son tan tétricos como muchos que puedan haber vivido otros colegas, pero definitivamente hablan de la poca conciencia que tienen incluso profesionales de otras área acerca del tema de construir software

Caso 1: El lector de huella digitales. De la magia a la autoridad

- Usuario: Sabes ayer se me ocurrió una gran idea, estoy contratando con un proveedor de lectores de huellas digitales, imagínate que los jefes estas prestando sus claves de autorización, así que con los lectores de huella tendrán que ir hasta el lugar a hacer la autorización y quitaremos eso de que todos anden por ahí con la clave del jefe.
- Yo: Excelente idea.
- Usuario: Si, la próxima semana haremos un piloto.
- Yo: Piloto? La próxima semana? Pero tu no has solicitado ningún desarrollo.
- Usuario: No, tranquila, es que tu no entiendes. Déjame te explico, el lector tiene puerto USB, tu lo conectas y ya, puedes autorizar con las huellas.
- Yo: Estas seguro? Le preguntaste a la persona encargada?
- Usuario: No, ¿Qué le tengo que preguntar? Eso funciona solo.
- Yo: No, no es así.
- Usuario: Ya regreso...

... Después de unos minutos regresa con una gran sonrisa en la boca.

- Usuario: Ves!! Te dije que si se podía.
- Yo: Yo no dije que no se podía, dije que tenias que solicitar un desarrollo.
- Usuario: Bueno pero eso no se demora o si?.
- Yo: No lo sé, debes preguntar al jefe, pero no creo que te de prioridad ahora, tenemos mucho trabajo.
- Usuario: Ah! Pues entonces le digo a mi jefe.
- Yo: Bueno, en realidad no importa a quien le digas, el negocio tiene unas prioridades y esa no lo es ahora a menos que lo hayas planteado hace semanas.
- Usuario: Bueno, no me importa, en la tarde me traen los lectores. Qué se peleen entre ellos.

Bueno, no creo que sea necesario una moraleja. Esta es solo una de esas historias fáciles de entender, en las que se evidencia lo obvia que resulta la tecnología para algunos aún en el entorno empresarial.

Ahora voy con mi segundo caso, me disculpo con mi amigo (perdona Alejo) por usarlo para este ejemplo.

Caso 2: La tienda virtual.

- El: Oye, imagínate que voy a montar un negocio con un amigo.
- Yo: Si? Y sobre que es?
- El: Pues, queremos poner algo exitoso, como MercadoLibre o DeRemate.
- Yo: Ummmmmm..............
- El: ¿Qué?
- Yo: Son modelos obsoletos, ahora tienes una tienda virtual con cualquier CMS y muchos ofrecen espacios populares gratuitos donde poner no solo productos individuales, si no tu propia tienda virtual.
- El: Si, eso le dije a mi amigo, que tendríamos unos competidores enormes.
- Yo: Así es.
- El: Pero sabes yo tengo una idea que lo hará diferente.
- Yo: Ah sí, y ¿cual es esa idea?
- El: ¿Has visto Second life? Podríamos colocar las tiendas de ese modo, que la gente se sienta como que está visitando la tienda.
- Yo: Ummmmmm.............. Y quien te construirá la tienda y todos esos escenarios?
- El: Estoy mirando con los estudiantes de una universidad.
- Yo: Ummmmmm..............
- El: Quería que me ayudaras a ver que necesitamos comprar para empezar con eso, alguien me habló de maquinas con unos chips muy poderosos.
- Yo: Ummmmmm...... ¿Conoces el concepto de la nube?
- El: No, que es eso.
- Yo: Ummmmmm.......

He omitido de esta conversación los extensos regaños que hice en cada "Ummmm...." ya que es solo una forma de ilustrar la manera como las personas sueñan con la tecnología y como les resulta tan absurdamente fácil, que consideran suficiente tener una idea que consideran grande o buena, y un par de estudiantes universitarios para materializar un escenario con el que buscan hacerse ricos.

Este post no merece el montón de análisis detrás de todas las fallas o la inviabilidad de la propuesta, ni pensar si es o no una buena idea. Pero volviendo a mi idea inicial sobre enseñarle a la gente en bachillerato al menos en que consiste eso de hacer software, así como con Química nos enseñan que la naturaleza tiene un proceso complejo, que no es en absoluto mágico, así debería pasar con la Ciencias de la computación. Y es que en la misma típica comparación del software y los edificios, los bits son cada pequeño gramo de área, cemento, roca, y la ingeniería de software toda esa planificación alrededor de la necesidad de que un edificio no se caiga.

Y así, como usted se queja cuando contrata a alguien equivocado a hacer reparaciones en su casa, lo mismo va a pasarle cuando contrata a una persona poco capacitada, cuando en su negocio contrata a alguien poco capacitado para hacer el trabajo que debería hacer un experto.

Hasta una próxima.

Sorey 


* Imagen tomada de Microsoft Office Online

miércoles, 11 de enero de 2012

Principios del Estilo Metro

Este lunes 9 de Enero, fue el International Consumer Electronics Show (CES) 2012, entre algunos comentarios sobre las pocas buenas nuevas de Microsoft, una cosa queda clara y bien lo dijo Steve Ballmer.

"El estilo Metro está en todos lados: Windows Phone, Windows PC, Xbox"

Si bien para quienes estamos en el entorno Microsoft esto es cada vez más natural, apenas lo está siendo para el resto del público, al cual aún se escucha tono de sorpresa ante los cambios e innovaciones que presentan las tecnologías de Microsoft actualmente y la forma como hoy se lanzan a romper sus propios paradigmas y ser auténticos.

Metro es una de esas formas de romper paradigmas en lo que se refiere a la Interfaz de Usuario (UI), en la que pasamos a pensar diferente y a complementarla con el término Experiencia de Usuario (UX), ya que no solo se trata de pensar en colores, disposición de contenido y accesibilidad, ahora se trata de inmersión y movimiento.

Personalmente pienso que la nueva generación de aplicaciones Metro representa un reto para los desarrolladores pero a la vez les hace la vida más fácil. El reto se encuentra en alinearse al concepto, ya que de hecho solo será exitoso si las aplicaciones son construidas y pensadas de acuerdo a la naturaleza que propone, que lejos de ser solo una tipografía y colores, va más allá y es algo en lo que se espera encontrar acogida.

Ahora bien, la vida de los desarrolladores se hace más fácil en muchos sentidos, muchas cosas en las que a ratos pretendemos innovar y terminamos por generar un desastre tienen que ver con la interfaz gráfica, Microsoft ofrece actualmente guías de diseño y plantillas en Visual Studio para crear nuestras aplicaciones alineadas con el estilo propuesto. Estas ayudas lo hacen fácil a la vez que imponen un reto más, marcar la diferencia. En un escenario que parece tan similar, lo distinto por bien o por mal será evidente.

Es así como buscando inspiración en otros, me he visto sorprendida por muchas aplicaciones en el Marketplace con excelentes implementaciones del estilo Metro que definitivamente dan muestra de la enorme cantidad de posibilidades que nos trae esta nueva experiencia.

Microsoft ha publicado variedad de espacios con indicaciones puntuales sobre cómo crear aplicaciones estilo Metro usando sus tecnologías, sin embargo personalmente considero que el tema está en que tanto te conectas y como logras que las personas se conecten con el estilo de tu aplicación, y para eso nada mejor que entender sus fundamentos.

A continuación trataré de explicarles algunos puntos base del estilo Metro de forma muy personal 

Simple: A mi modo de ver en lo simple está el encanto del estilo Metro, su idea reduccionista invita a disminuir los adornos y centrarse en hacer "la funcionalidad bella" y trata no más que de eliminar lo innecesario y concentrarse en la esencia (lo básico que necesita un usuario para resolver una acción dentro de nuestra aplicación). Por más poético que esto suene, es básicamente lo que nos llevará a construir aplicaciones más limpias y fáciles de usar. Los principios de la escuela de arte Bauhaus son aplicados en este concepto.

Cotidiano: Esta no es precisamente la palabra con la que encontrarán en la red sobre este tema, sin embargo es la que yo prefiero usar. Desde mi punto de vista la forma en que se plantea el uso de imágenes y el Estilo tipográfico internacional (Swiss Style) hace parte de la cotidianidad, las personas no se preguntan por qué razón cierto tipo de señales son comunes, solo entiende la mayoría de ellas de forma sencilla. No todos los diseñadores o desarrolladores logran generar este tipo de señalización con respecto a las imágenes y no todos respetan el uso de la tipografía, sin embargo en esos detalles probablemente radique para esta generación de aplicaciones, lo que nos parecerá o no claro, ordenado y bello. Para quienes necesitamos un poco de ayuda con el tema de los iconos, les recomiendo The Noun Project y para quienes quieren ver un poco de como aplicarlo Swissted.

En movimiento: En este punto tengo que confesar que las primeras veces que escuche la frase "En movimiento" aparte de parecerme un tema de mercadeo no entendí a que se refería. Después de tener un Windows Phone en mis manos y construir aplicaciones mi visión cambió a una más técnica, donde usar animaciones para comunicar reacciones de tu aplicación a los usuarios resultaba además de agradable, bastante útil y mejoraba muchisimo la experiencia de usuario. Pero aún así creo que jamás me conecté tanto con el tema del movimiento hasta no ver (o volver a ver más conscientemente) el concepto de "Kinetic typography" del cual los invito a buscar, pues algunos de los videos en la red son lo suficientemente inmersivos como para el entender de que se trata el texto en movimiento y el impacto emocional.

Aquí les comparto uno que me ha gustado bastante


Para finalizar les comparto un post sobre Metro Style Design creado por mi compañera @lina_manjarres y los invito a compartirnos su visión y opinión acerca del estilo Metro.

* Este post fue publicado originalmente para Mi Windows Phone

sábado, 7 de enero de 2012

Monetizar tus aplicaciones de Windows Phone


Cuando construimos aplicaciones para móvil es importante considerar de que manera obtendremos ganancia por nuestro trabajo. En este post plantearé las opciones que tenemos disponibles para monetizar nuestras aplicaciones usando el Marketplace de Windows Phone, además de contarles algunas consideraciones asociadas a los esquemas de monetización.

1. Vender un producto o servicio a través de una aplicación gratuita:Este es un esquema típico usado no solo para aplicaciones móviles. Podemos publicar nuestra aplicación gratuita y ofrecer algunas utilidades para motivar el que sea descargada por los usuarios e incluir en ella un servicio o producto de nuestro negocio. Recuerden que con una cuenta del APPHUB se pueden publicar hasta 100 aplicaciones gratuitas, y se paga 20 dólares por cada aplicación gratuita adicional, a diferencia de las aplicaciones con cobro que no tienen límite.

2. Vender nuestra aplicación en el mercado de aplicaciones: Si en vez de ofrecer de forma gratuita nuestras aplicaciones, deseamos cobrar por ellas, la recomendación es que investiguemos otras aplicaciones que ofrezcan funcionalidades similares a la nuestra y evaluar dos alternativas: generar un diferenciador para que un precio más elevado valga la pena y motive la compra de nuestra aplicación o bien, establecer un precio competitivo mientras logramos implementar mejoras.

Es importante que recuerden que actualmente en el Marketplace de Windows Phone cuando un usuario adquiere la aplicación, aunque esta tenga actualizaciones importantes no se volverá a cobrar por ella. Esta es de hecho la razón por la que a veces encontramos la misma aplicación en el Marketplace con nombres distintos, típicamente se ofrece una de ella de forma gratuita y la otra se vende y se hacen actualizaciones importantes además de elevar el precio si en algún momento se vuelve una aplicación popular. Ideas comunes de la oferta y la demanda.

Los desarrolladores establecen el precio de sus aplicaciones desde 1 hasta 499 dólares y reciben el 70% del valor cobrado. Los pagos se realizan una vez el desarrollador haya ganado 200 dólares o más. El pago es hecho a través de una transferencia bancaria desde EEUU por lo que se requiere un número BIC/Swift.
En este punto también es bueno considerar implementar el modo Trial (Demostración) en nuestras aplicaciones, de modo que podamos ofrecer a todos los usuarios nuestra aplicación para motivar posteriormente su compra.

Algunas formas de demostración que podríamos implementar pueden ser un numero de días, un numero de ejecuciones o funcionalidades limitadas. Las instrucciones para verificar en que modo descargó la aplicación un usuario se encuentran disponibles en MSDN.
.
Ofrecer un modo demostración es importante además, por que después de adquirida una aplicación sin importar su costo, un usuario no puede solicitar la devolución de su dinero, así que si tenemos una aplicación con un valor elevado, es preciso que el usuario pueda probar previamente su funcionalidad para que se decida a realizar la compra. En estos casos es importante que consideremos que la mayoría de desarrolladores usan como estrategia de monetización, establecer un precio bajo que muchas personas están dispuestas a pagar, en vez de esperar vender aplicaciones por precios elevados.

3. Insertar publicidad a nuestras aplicaciones: Para implementar esta estrategia existe en el SDK de Windows Phone 7.1, el Windows Phone Advertising SDK, el cual incluye controles que pueden ser incrustados en nuestras aplicaciones para desplegar los mensajes publicitarios. Es recomendable insertar la publicidad en la parte superior de la pantalla o bien en la parte inferior, y ubicar el control de publicidad fuera de un ScrollViewer, o si en caso de usar un Panorama o Pivot, fuera del control para que la publicidad  siempre sea visible.

Para configurar el tipo de publicidad que aparecerá en nuestras aplicaciones y ver los ingresos que estamos recibiendo a través de ellas debemos crear una cuenta en el Microsoft PubCenter.

En esta estrategia es importante atender el conjunto de mejores practicas entregadas en la web de Microsoft Advertising, con el fin de obtener la monetización más alta posible en nuestras aplicaciones.

* Este post fue publicado originalmente para Mi Windows Phone

jueves, 5 de enero de 2012

Windows Phone Power Tools

Les comparto la primera entrada que publiqué hace unos días en http://www.miwindowsphone.net, agradeciendo a @edwin_torres por permitirme ser Blogger en la comunidad.
Una de las cosas más positivas del desarrollo para Windows Phone es la cantidad de herramientas disponibles en el SDK de forma absolutamente gratuita. El Isolated Storage Explorer Tool es una de ellas y pueden encontrarlo en la ruta donde tengan instalado su SDK. Por ejemplo > C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Tools\IsolatedStorageExplorerTool\ISETool.exe.

Esta herramienta sirve para explorar, descargar o reemplazar el contenido del almacenamiento aislado de nuestras aplicaciones, esquema conocido también como sandbox y que es implementado por la mayoría de aplicaciones móviles modernas con el fin de mejorar la seguridad y reducir la posibilidad de acceso no autorizado o datos corruptos.

Es importante entender que la herramienta solo podrá explorar el contenido de dispositivos que previamente hayan sido desbloqueados para desarrollo o bien el contenido que se haya almacenado en el emulador mientras está en ejecución. No está de más recordar que el contenido del emulador y todas las aplicaciones instaladas en el, se eliminan cuando este se cierra.

El Isolated Storage Explorer Tool es una aplicación de consola, por lo cual funciona a través de comandos todos muy bien explicados en MSDN. Siendo los comandos un poco más tediosos de recordar y manejar, algunos desarrolladores han creado y publicado en CodePlex aplicaciones alternativas a este y otros tools del SDK.

Me gustaría recomendarles Windows Phone Power Tools, la cual además de tener una interfaz sencilla y alineada al estilo Metro,  integra las funcionalidades del Isolated Storage Explorer Tool y el Application Deployment Tool, siendo las funciones de este último instalar y desinstalar aplicaciones usando el paquete XAP generado en desarrollo; el Windows Phone Power Tools además nos permite actualizar los XAPs.
Además esta aplicación brinda información detallada del dispositivo y las aplicaciones instaladas, y permite ejecutar o terminar procesos en el emulador o el dispositivo de desarrollo. Les comparto una imagen publicada por los desarrolladores de la herramienta y los invito a usarla.


* Este post fue publicado originalmente para Mi Windows Phone