¿Qué encontrarás en este post?
ToggleOpenGL avanzado, Keychain, CoreText y despedida.
Empezamos el último día del Big Nerd Ranch, y todo ya sabe a despedida. Después de comer, nos iremos cada uno por nuestro lado.
Como estábamos todos ya muy cansados, se nos dio a elegir si queríamos mucha caña o poca. Solo unos pocos grillados pedimos tralla del 12, así que se optó por un menú algo más light que no nos hiciese escribir demasiado.
La entrada: OpenGL Avanzado
Así empezó el menú light, no quiero ni pensar lo que nos tendrían preparado para el contundente. 😉 Pasamos a modificar el proyecto de OpenGL que ya teníamos para que mostrase varios cubos descendiendo por la pantalla, mostrando en cada una de sus caras, el video que la cámara captaba en tiempo real. Muy chulo. 🙂
Pedí a Jonathan que nos explicase como hacer un efecto de «ripple», es decir de ondas concéntricas:
Desgraciadamente no había demasiado tiempo, así que me dejó algunos enlaces con código de ejemplo, que espero que también os puedan servir:
- How do I make a water effect with OpenGL on the iPhone (StackOverflow)
- Ejemplos de OpenGL en Silicon Graphics, en especial el fichero distort.c
- The water effect explained
- Video de Youtube con un ejemplo del efecto «ripple» en un iPhone. Ojo, aseguraos de bajar el volumen antes de seguir el enlace so pena de perder los tímpanos y la paciencia.
Seguridad y keychain
Ahora le tocó a Steve Marriott (mi compañero de mesa) darnos la charla de seguridad. En una clase anterior, creamos un navegador de GitHub usando su API. Ahora íbamos a modificarla para que mostrase las actividades de un usuario en concreto después de que éste hiciese login.
Para guardar información sensible en dispositivos iOS, Apple les ha proporcionado un «keychain«, al igual que en los Macs. Un «keychain» es un contenedor seguro de información, que imposibilita el acceso no autorizado a su contenido. Cada aplicación puede solo acceder a aquellos datos que ha creado y cuando iTunes hace una copia de seguridad, el «keychain» también es copiado, pero manteniendo su contenido encriptado.
El API de Keychain (en Security/Security.h) se centra en búsquedas («queries») y sus atributos. Cuando llamamos a algunos de sus métodos , uno de los parámetros siempre es un diccionario con varias clave sy valores. Por ejemplo, para guardar una contraseña, una de las claves kSecValueData es la representación de la clave en un NSData .
Las sesiones 202 y 208 del WWDC 2011 son especialmente interesantes si quieres implementar datos seguros con Keychain. Por otro lado, si quieres que tus apps sean verdaderamente seguras, o al menos estar consciente de los ataques que puede sufrir, el libro Hacking and securing iOS apps es fundamental.
CoreText
Volvimos a darle un repaso a CoreText, modificando la app de informes de ventas para que mostrase el nombre del vendedor escrito no con un color sino con un gradiente. Como nota curiosa, el código de ejemplo de esta sección lo había escrito Aaron Hillegass (está claro que no le gustan nada las propiedades y la sintaxis del punto ;-).
CoreText es algo que creo que pide a gritos una categoría que simplifique su uso más común. Un buen punto de partida sería el código que hay en GitHub para traducir html a NSAttributedString.
Despedida y al aeropuerto
Después de comer, tocó despedirse de todos los compañeros y subirnos al autobús que nos llevaba al aeropuerto. Por el camino, muchos se iban quejando de que la gasolina hubiese subido a 3.5 dólares el galón (unos 4 litros). Tuve que pararles los pies y explicar que en España ese mismo galón costaba unos 8 dólares. No se lo acababan de creer. 😉
Otro tema de conversación recurrente, era cachondearse de las casas que veíamos por el camino y de los objetos que sus habitantes tenían en el patio delantero. Al parecer, los de ciudad consideraban a los habitantes de la Georgia rural catetos irrecuperables. Algo así como los «Beverly Hillbillies«.
Visita al Big Nerd Ranch
Mientras los demás embarcaban hacía sus casas, a mi aun me quedaba una cosa por hacer. Había quedado con Aaron en visitar la sede del Big Nerd Ranch el viernes después del curso. Él no estaría (se iba de viaje al dia siguiente de estar en Banning Mills), pero me encontraría con Jami y Jason. Así que pillé un taxi corriendo y partí hacia Krog Street.
La visitas y la curiosa anécdota que se produjo en el taxi, os la cuento en otro post.