viernes, 13 de mayo de 2011

User Controls para Smart Devices

La primera tarea que me tocó en mi nuevo trabajo en Artech, fue la de desarrollar un User Control para el generador de iOS, para poder mostrar una lista en forma de galería de imágenes.

El control se llama "SD ImageGallery", y ya estaba disponible para Android. Acá les dejo la documentación que hay en el wiki.

La versión para iOS va a estar disponible en la próxima versión del KB Navigator... Está basado en el control KTPhotoBrowser (con algunas modificaciones), que tiene una licencia MIT.

Para usarlo, es muy fácil. Simplemente en el patter Work With Smart Devices se selecciona el View correspondiente a la lista (el pattern define vistas para el master, que es una lista, y para el detail, que muestra un item determinado), y se cambia la propiedad "ControlType" a "SD ImageGallery".

Si no se configura nada más, toma la primer imagen que haya disponible en el registro (no es determinístico si es que hay más de una). Sin embargo se le puede decir, también en las propiedades, que atributo contiene la imagen que queremos mostrar, cual es el que tiene el título y cual el que tiene la descripción.

Pero lo interesante del caso, es que es un User Control. Esto quiere decir que en los generadores para Smart Devices, se van a poder definir controles implementados por terceros.

Por ahora el mecanismo para hacerlo está muy verde (o no está...), y este control en particular se desarrollo dentro del mismo proyecto que el resto del KB Navigator, pero la idea es poder hacerlo por fuera y que se pueda integrar de alguna forma.

Obviamente el desarrollo de User Controls no va a ser para cualquiera, porque requiere tener conocimientos en el desarrollo de la plataforma (Objective-C y la API para iPhone en este caso), pero va a abrir posibilidades para los que quieran publicar controles, como se hace hoy en web mediante el Marketplace.

Así es como se ve en el iPhone:

2 comentarios:

  1. Excelente!!

    Anduve ojeando de cómo lo están implementando en Android, y no sería muy complejo incorporar una metodología para incorporar widgets de terceros.
    Para iOS, bueno, código fuente cerrado, no puedo ver como se hace la magia, pero me imagino que no sería muy complicado.

    Sugerencia para hacer más simple la implementación de widgets, implementen un método genérico para la invocación a un widget "web" (webkit en Android y en iOS) en donde se puede incorporar un control HTML, y crear las interfaces que permitan comunicarse hacia el contról y desde el contról a la información necesaria de la aplicación, con esto permitirían que terceros que sean buenos con HTML puedan seguir las pautas e implementar los wrappers para hacer que controles Web's puedan ser usados en estas plataformas.

    ResponderEliminar
  2. Hola:
    Abra un forma de presentar una galeria de imágenes tal y como se muestra en iOs ya que el tipo de control llamada SD ImageGallery para iOs se presenta de una forma la cual me gusta y para Android es diferente. Se pueden empatar estos controles ?

    ResponderEliminar