Windows 8 :Tips para Crear un app Temporizador

 

 

image5Hola a todos! en este post les daré unos mega tips para lograr el reto de crear un app para Windows 8:  temporizador parte de la iniciativa “¿Quién se le mide?

 

De qué trata el reto? pueden consultar todos los detalles necesarios del ”Reto #1 Temporizador” aquí:

 

3073.cabezote-38

Lo primero que les quiero recomendar es que piensen la aplicación para que funcione en ambas plataformas (win8/phone) aunque la vayan a entregar en una sola de ellas, pero si hacen bien el trabajo el esfuerzo para hacerla en ambas será mínimo.

 

El reto enumera las siguientes características que analizaremos una a una con tips al respecto.

  • Que sea cronómetro (cuenta regresiva) y temporizador. El usuario puede escoger la modalidad
  • Que los caracteres sean grandes.
  • Que cuando la app esté corriendo ocupe toda la pantalla y mantenga la pantalla activa (que no se apague)
  • Que se pueda pausar, continuar y reiniciar
  • Que se le puedan configurar alertas cada X tiempo (el tiempo configurable por el usuario)
  • Que se le pueda configurar el color de fondo y el color de los caracteres
  • Que maneje el cambio de posición del dispositivo de horizontal a vertical (Tilt)
  • Que permita escoger el sonido de la alarma

 

Que sea cronómetro (cuenta regresiva) y temporizador. El usuario puede escoger la modalidad

Resumamos:

  • Temporizador: Cuenta regresiva
  • Cronómetro: Cuenta hacia adelante

En Windows tenemos una amplia variedad de posibilidades para lograr este objetivo, siendo la opción del toggle switch una de las que personalmente más me agrada, por ejemplo se puede personalizar para que cuando este en Off se encuentre en funcionalidad de cronómetro y cuando este en On en la funcionalidad de temporizador

 

image

Que los caracteres sean grandes

No creo que necesites ayuda para esto o si? Se cuidadoso con las proporciones eso es lo importante,

Que cuando la app esté corriendo ocupe toda la pantalla y mantenga la pantalla activa (que no se apague)

La primera parte requiere de tus habilidades en la distribución del espacio, es importante que el tiempo se vea grande, pero recuerda que tienes mucho espacio disponible y hay que saberlo aprovechar , ten en cuenta que en una parte de la pantalla podrías mostrar las ultimas mediciones del cronómetro o los tiempo de alarma parametrizados.

Para mantener la pantalla activa, sin que se lance la pantalla de bloqueo debes utilizar la clase DisplayRequest y llamar al método RequestActive, revisa este artículo que te será de mucha ayuda:

How to keep the display on during audio/video playback

 
dispRequest = new DisplayRequest();
dispRequest.RequestActive();

 

Que se pueda pausar, continuar y reiniciar

Te recomiendo que trabajes todo con la clase Datetime, por ejemplo restando fechas obtienes un objeto de tipo TimeSpan que representa un intervalo de tiempo incluso hasta resolución de milisegundos.

Trabajar con estas dos clases no solo te servirá para guardar la fecha y hora actual, sino también para saber cuanto tiempo ha transcurrido.

 

Que se le puedan configurar alertas cada X tiempo (el tiempo configurable por el usuario)

Imagina que el usuario esta en medio de una presentación y desea que su Smartphone la de un aviso cada 5 minutos, como hacerlo?

Para esto utiliza la clase DispatcherTimer para crear un objeto timer y configurarlo de tal forma que se lance después de un intervalo de tiempo, puedes revisar esta página para ver un ejemplo de implementación:

DispatcherTimer class

 

Que se le pueda configurar el color de fondo y el color de los caracteres

Desde el comienzo debes crear los colores de las fuentes y del fondo con estilos, de tal forma que luego no sea necesario sino un pequeño cambio para cambiar los colores de toda la aplicación.

Que maneje el cambio de posición del dispositivo de horizontal a vertical

Desde el archivo package.manifest se debe habilitar el soporte para las diferentes orientaciones, posteriormente y de manera opcional, en cada page se puede utilizar el Visual State Manager, en este artículo podemos apreciarlo de manera más precisa,

 

Handling Orientation Changes using VisualStateManager

 

Que permita escoger el sonido de la alarma

Lo más difícil de esta parte es conseguir los sonidos… pero bueno acá esta uno de tantos sitios de donde puedes descargarlos con licencia creative commons.

FreeSound

Para reproducir los sonidos basta con usar la clase MediaElement tal como se muestra en este link:

Background Audio in WinRT with C#

 

Manos a la obra!

Tiempo de crear!

Anímense a comentar  y preguntar que con gusto les ayudaré.