jueves, 31 de diciembre de 2009

Dices 2


Objetivos cumplidos. Una vez entendido el funcionamiento de los protocolos de datos y delegado para PickerViews en el capítulo 7 [*], basta con el primer ejemplo del capítulo 8 para entender qué es lo que tiene que hacerse...

Así que Dices 2 ya es funcional. Le falta pensar concienzudamente en el aspecto gráfico y posiblemente añadir una nueva característica, la posibilidad de elegir el número de dados. Son cosas que tengo que pensar si se hacen en una ventana o en un proyecto multivista.

Y mañana o pasado me registraré como desarrollador de iPhone. Ya queda menos para meter una App en el AppStore. :)

[*] Begining iPhone 3 Development

miércoles, 23 de diciembre de 2009

Dices 2

Tras leer (parte de) el capítulo 5 de Beginning iPhone 3 Development, he adaptado Dices 2 para que los elementos se reubiquen correctamente si el dispositivo gira. La vista de tabla sigue sin funcionar, aunque los datos de las últimas tiradas si que se almacenan en un array. Me falta el volcado de datos desde el array hasta la tabla, pero me parece que aún hay alguna cosa de las vistas de tabla que se me escapa... supongo que con el tiempo y la práctica caerá por su propio peso.

Dices 2

Este es el aspecto actual de Dices 2. Me estoy pegando con las vistas de tabla (lo más grande que aparece en la imagen) para conseguir que se lleve un log de los resultados de las tiradas. De momento, los botones con los dibujos de los dados mueven el slider de selección de tipo de dato a las posiciones predeterminadas, aunque a mano se puede poner en cualquier posición. El botón de roll hace la tirada y el número que aparece arriba del todo cambia a un valor aleatorio entre 1 y la posición del slider.

Para las tablas, después de mucho buscar, estoy mirando esto:

lunes, 21 de diciembre de 2009

Dices 2

Captura de pantalla de otro de los ejemplos con los que estoy trasteando. Esta vez no me he basado en ningún código que me haya encontrado. La interacción entre elementos es fruto del estudio del capítulo 3 de Begining iPhone 3 Development. Simplemente quería demostrarme que lo estaba entendiendo.

La idea es fácil. El número gordo de arriba muestra el resultado de la última tirada. El botón de roll lanza un dado de N, siendo N el número seleccionado en el slider. El slider puede variar entre 2 y 100. Los botones de abajo desplazan el slider automáticamente (y con animación) a X, siendo X el número indicado en el botón (DX).

La idea final es tener un dado configurable. De momento hace una tirada, pero estudiaré la posibilidad de que haga más de una tirada (seleccionando el número de datos a tirar mediante otro slider. Además, los botones DX serán reemplazados por imágenes de los dados más típicos (concretamente de los dados que tenga por casa...).

Un concepto de diseño a cambiar, ahora que lo veo, es el de poner el número actual del slider en una posición que no sea debajo del mismo, dado que si está ahí se puede ocultar con la mano o con el dedo mientras mueves el slider.

Minutes to Midnight

En http://www.appsamuck.com/ hay una serie de proyectos (31) relacionados con la programación de iPhone. He mirado hoy el proyecto Minutes to Midnight pero el código que utiliza no me convence puesto que al intentar reproducir las funciones y mirar sus parámetros en la ayuda me he encontrado con que algunas de las llamadas que hace no me salen como opciones en la ayuda del XCode o me salen como no recomendadas. El caso es que he estado mirando por mi cuenta las clases NSDate, NSCalendar y NSTimer para ver como podía hacerlas funcionar y al final he conseguido el resultado buscado.

Las funciones que utilizo para calculas los valores de horas, minutos y segundos actuales los he aprendido buscando en Google. Básicamente el código que utilizo para esto es:

NSDate * date = [NSDate date];

NSCalendar * calendar = [NSCalendar currentCalendar];


unsigned int unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDateComponents * comp = [calendar components:unitFlags fromDate:date];


countdownLabel.text = [NSString stringWithFormat:@"%02d:%02d:%02d", 23 - [comp hour], 59 - [comp minute], 59 - [comp second]];


Además, he estado experimentando con la creación de temporizadores y la llamada de funciones de la aplicación desde el appDelegate.

No pongo el código de todo por tres motivos básicos:
  1. Quiero comentarlo un poquitín y hay algunas cosas del appDelegate que no he acabado de comprender (aunque funcionen).
  2. No tengo aún claro dónde voy a meterlo físicamente (hosting) dado que blogger no permite la subida de archivos. Así que estoy mirando si uso un hosting que tengo contratado o algún servicio del palo de RapidShare o MegaUpload.
  3. También me estoy planteando hacerlo en plan screencast.
Por lo demás, comentar que el botón del screenshot es simplemente un lastre que queda de las primeras pruebas en las que el botón llamaba a la función que actualizaba al etiqueta en lugar de usar un temporizador.

viernes, 18 de diciembre de 2009

Artículos de interés

Leo en el blog AlmacenPlantillasWeb, un post que hace referencia a unos artículos sobre AJAX. Me ha parecido bastante interesante.

URL: http://blog.almacenplantillasweb.es/2009/12/ajax-articulos-de-interes/