jueves, 8 de octubre de 2009

Aplicación Pomodoro en C# Mobile 6.5 – Creciendo y refactorizando.

He evolucionado la aplicación para que en cada final de fase se detenga y se modifique el color de fondo para, con la HTC encima de la mesa, vea de un vistazo que he acabo esa fase. Esto es muy sencillita una clasecita que pinta el color de fondo y pausa la aplicación.
/// <summary>
/// Efecto de alarma y pausa el cronómetro.
/// </summary>
private void alarma()
{
this.BackColor = Color.YellowGreen;
pausa();
}
También me he liado a refactorizar un poquito la aplicación y he eliminado el horror de los contadores que hice en primera instancia y he optado por una mucho más elegante solución basada en la clase TimeSpan de la cual solamente voy a señalar dos cosillas:

Quitar un lapso de tiempo dado o iniciar una variable del este tipo utilizando el método FromSeconds(). También podría haber utilizado un TimeSpan.parse(<string tipo 00:00>); pero me gusta más la solución en donde declaro específicamente la unidad horario que estoy utilizando.

// Cómo quitar un segundo a una variable del tipo TimeSpan
horario = horario - TimeSpan.FromSeconds(1);
Otra cosilla es que, por defecto, TimeSpan.toString() devuelve los valores de horas, minutos y segundos. En cambio a mi me sobran las horas en mi reloj. Por lo cual clasecita al canto -tal vez hubiera sido mejor sobrecargar el método toString() pero así tengo material para refactorizar más adelante- tal esta:
/// <summary>
/// Formatea el TimeSpan en minutos.
/// </summary>
/// <param name="horario">El TimeSpan a ser convertido a string</param>
/// <returns>Los minutos y segundos en formato "00:00"</returns>
private string timeSpan2minutos(TimeSpan horario)
{
return horario.Minutes.ToString("00") + ":" + horario.Seconds.ToString("00");
}
He modificado el código del post para irlo actualizando.

No hay comentarios: