miércoles, 26 de enero de 2011

Parte 1 - MVC para comenzar a programar Cocoa/Objective-C

MVC - Modelo Vista Controlador

La idea con el patrón MVC es dividir la aplicación en estas tres capas.





La capa de Modelo: en el modelo debemos definir de que se trata la aplicación y no como se muestra la aplicación. Si tomamos como ejemplo un juego de naves espaciales, el modelo se refiere a que armas hay, que daño hacen esas armas o en que naves están esas armas.





La capa controlador: Se encarga de como el modelo es presentado al usuario. Es decir que para un iphone el controlador sera diferente que para un ipad porque cada una de las pantallas es diferente.





La capa vista: es quien se encarga de servir al controlador. Es lo que utiliza el controlador para hacer su tarea. Es responsable de como se muestra la información en la pantalla.

¿Puede la vista enviar mensajes al controlador? no exactamente. Los objetos de la vista son genéricos como botones o labels y no queremos que estos importen el .h de nuestro controlador, para esto existen tres mecanismos que hacen posible esta comunicación:

1. Target Action: el controlador maneja un target y una acción en la vista, cuando por ejemplo se toca el botón se manda la acción al target.
2. Delegación: a veces la vista necesita sincronizarse con el controlador o saber que se supone que debería hacer en un caso determinado para esto hay instancias en la vista llamadas delegates que preguntan al controlador que deberían realizar porque necesitan más información para realizar la acción.
3. Data Source: protocolo que permite que la vista disponga de los datos.

La vista no es dueña de los datos que muestra, por eso, si necesita de ellos debe obtenerlos a través del controlador. La función de los controladores es interpretar la información que viene del modelo para poder pasársela a la vista.
El controlador siempre puede comunicarse directamente con el modelo y con la vista, pero la vista con el modelo no pueden hacerlo directamente.

Pdf en ingles: Lecture 1