enero 14, 2013

Lanzamiento final de Hilo Guidance

Hilo

Este es un proyecto en el que tuve el placer de colaborar el año pasado con el equipo de patterns & practices:

Hilo es una aplicación de galería de imágenes para Windows 8 desarrollada en C++ y XAML. La documentación completa está disponible en inglés, pero también en castellano (aunque la calidad de la traducción no es espectacular, para quienes no puedan leer en inglés puede ser útil). Todo el código fuente está disponible para descarga también como parte del SDK oficial de Windows.

Los capítulos de la guía cubren los siguientes temas:

  • Getting started with Hilo
  • Designing Hilo's UX
  • Writing modern C++ code in Hilo
  • Async programming patterns and tips in Hilo
  • Working with tiles and the splash screen in Hilo
  • Using the Model-View-ViewModel (MVVM) pattern in Hilo
  • Using the Repository pattern in Hilo
  • Creating and navigating between pages in Hilo
  • Using controls in Hilo
  • Using touch in Hilo
  • Handling suspend, resume, and activation in Hilo
  • Improving performance in Hilo Testing and deploying Hilo
  • Meet the Hilo team
  • Performing interop between XAML and DirectX
Hilo es una aplicación de fotos que utiliza el estilo "Modern UI" (antes conocido como Metro) en Windows 8, permitiendo navegar entre las carpetas de fotos, ordenarlas, filtrar por tiempo y efectuar algunas ediciones menores como rotaciones y efectos básicos.
 
Hilo UI

En la sección "Meet the Hilo team" agradecen los colaboradores más allá del equipo core del proyecto, y me incluyen entre mucha gente impresionante que me llena de orgullo y humildad (si hasta quedé al lado de Herb Sutter, "Mr. C++"):

We want to thank the customers, partners, and community members who have patiently reviewed our early content and drafts. We especially want to recognize Marcelo Hideaki Azuma (ITGROUP), Chad Carter (CTO, GlobalCove Technologies), Tony Champion (Owner, Champion DS), Carlos dos Santos (CDS Informática Ltda.), Genevieve Fernandes, Alon Fliess (Chief Architect, CodeValue), Timo Heinäpurola, Tim Heuer, Robert Hogg (Black Marble), Hong Hong, Mike Kenyon (Senior Principal Software Engineer, IHS, Inc.), Artur Laksberg, Michael B. McLaughlin, Harry Pierson, Caio Proiete (Senior Consultant/Trainer, CICLO), Andy Rich, Martin Salias, Herb Sutter, Jose Miguel Torres (Software Engineer, Xamarin), and J. Andre Tournier (Sr. Software Developer, WebMD) for their technical insights and support throughout this project.

El proyecto tuvo para mi unas cuántas cosas interesantes, como usar C++ 11 en un proyecto real, incluyendo lambdas, smart pointers, continuations, tasks y otros recursos especiales para manejar concurrencia y múltiples cores. También se hizo bastante énfasis en las pruebas unitarias, aunque no fue trivial en un contexto de tanto paralelismo.

Por último, gran parte del foco está en el entorno Windows 8 y XAML, que debo confesar que no me entusiasmó mucho, aunque si aprendí muchísimas cosas en el camino.