Cocoa

Cocoa para Mac OS X
Información sobre la plantilla
Parte de la familia Aplicaciones para Mac OS
Cocoa.jpg
CreadorApple
Sistemas Operativos compatiblesMac OS
IdiomaInglés
Sitio web
www.silvercocoa.com

Cocoa. Es un conjunto completo de clases e interfaces de programación de aplicaciones (APIs) para construir aplicaciones y herramientas para el sistema operativo Mac OS X.

Frameworks

Con más de 240 clases, Cocoa está dividido en dos importantes frameworks: el framework Foundation y el Application Kit o Caja de Aplicaciones.

Foundation

Foundation provee un grupo fundamental de herramientas para la representación de los tipos de ediendo a los datos fundamentales, accediendo a los servicios, hilos y mensajes, del sistema operativo, entre otras.

Application Kit

La Caja de Aplicaciones (Application Kit) brinda la funcionalidad para construir interfaces de usuario gráficas (GUI, del inglés Graphical User Interfaces) para las aplicaciones hechas usando Cocoa. Además permite el acceso a los componentes de interfaces Aqua que son estándar, que van desde menús, botones y campos de texto hasta interfaces pre-empaquetadas para imprimir cuadros de diálogos, cuadros de operaciones con archivos y mensajes de alerta. Este framework además brinda una funcionalidad al más alto nivel para implementar múltiples aplicaciones de documentos, manejo de textos y de gráficos.

Tareas programadas

Las clases no son las únicas que constituyen los framework de Cocoa. Existen además algunas tareas programadas, como hacer que el sistema suene con un “beep”, funciones que son llevadas a cabo con procedimientos simples. Cocoa incluye un amplio número de funciones para complementar estas tareas, tales como la manipulación de los bytes de las órdenes y el dibujo de gráficos simples. En adición, Cocoa define un variado número de tipos de datos personalizados y constantes para proveer un grado más alto de abstracción de muchos de sus métodos.

Entorno de desarrollo.

Las aplicaciones más importantes utilizadas por Cocoa para el desarrollo de programas son Project Builder e Interface Builder.

Project Builder

Project Builder es el Entorno de Desarrollo Integrado, (IDE, del inglés Interactive Development Environment) para Mac OS X, utilizado para administrar y editar archivos fuente, librerías, frameworks y recursos. Además, brinda una interfaz para el compilador Objective-C, gcc, y el debugger de GNU, gdb.

Interface Builder

Interface Builder es utilizado para crear GUIs para aplicaciones hechas en Cocoa, permitiendo a los desarrolladores manipular los componentes de las interfaces de usuarios, como ventanas y botones, gráficamente usando la herramienta “Drag and Drop”, (arrastrar y soltar). Además, brinda una manera intuitiva de conectar objetos dejando al usuario arrastrar líneas conectoras entre objetos. La siguiente imagen muestra el entorno de Interface Builder.

InterfaceBuilder.png

Sub-clases.

Los componentes de las interfaces no son los únicos objetos que pueden ser manipulados con Interface Builder. Se puede introducir una clase dentro de otra y crear instancias de las sub-clases. Pero aún más importante, se puede dar a estas clases instancias variables como los llamados outlets, y métodos llamados acciones, y unirlos en los componentes de las interfaces de usuarios.

Patrones de diseño de Cocoa.

Cocoa usa varios patrones de diseño. Los patrones de diseño son descripciones de prácticas comunes de programación orientada a objetos. El desarrollo efectivo de aplicaciones requiere saber cómo y dónde usar patrones en Cocoa. Los patrones que utiliza Cocoa son:

* Delegación

En este patrón, un objeto, el delegado, actúa a favor de otro objeto. La delegación es usada para alterar el comportamiento de un objeto que toma un delegado. El trabajo del desarrollador es implementar cualquier número de métodos que puedan ser invocados en el delegado. Este patrón minimiza la necesidad de instanciar sub-clases para extender la funcionalidad del objeto.

* Singleton

Este patrón asegura que solamente un objeto instancia de una clase exista en el sistema. Un método Singleton, es un constructor de objeto que crea una instancia de la clase y mantiene la referencia a ese objeto. Las llamadas a este método devuelven el objeto existente, en vez de crear uno nuevo.

* Notificación

Las notificaciones permiten separar los emisores de mensajes de los receptores. Cocoa implementa este patrón en el sistema de notificaciones usado por los frameworks.

* Modelo Vista Controlador

El patrón modelo vista controlador (MVC), es usado en la Caja de Aplicaciones para separar una aplicación en unidades lógicamente diferentes: el modelo, el cual conoce cómo trabajar con los datos de la aplicación; la vista, la cual es responsable de presentar los datos al usuario y el controlador, el cual maneja la interacción entre el modelo y la vista.

* Objetivo/acción

Este patrón separa los componentes de interfaz de usuario, como botones e items de menú, de los objetos (los objetivos) que implementan sus acciones. En este patrón un control activado envía un mensaje de acción a su objetivo.

* Cadena de respuesta

Este patrón es utilizado en el sistema de manejo de eventos para dar a múltiples objetos la oportunidad de responder a un evento.

Lenguajes.

El lenguaje nativo de Cocoa es Objective-C. Tanto Foundation como Application Kit, son frameworks implementados en este lenguaje de programación. Pero, Objective-C no es el único lenguaje a través del cual se puede acceder a los frameworks de Cocoa. A través de Java Bridge, Apple, provee una manera de acceder a los estos frameworks, utilizando el lenguaje Java. Y otra opción para trabajar con Cocoa es AppleScript, el cual ha sido asociado tradicionalmente con tareas simples en lenguaje interpretado, pero con el sistema operativo Mac OS X, la empresa Apple habilitó el acceso a Cocoa utilizando AppleScript a través del uso de la herramienta AppleScript Studio.

Fuentes

  • Cocoa Programming. Autores: Scott Anguish, Erik M. Buck, Donald A. Yacktman. Publicado el 20 de septiembre de 2002.
  • Cocoa_in_a_Nutshell. Autores: Michael Beam, James Duncan Davidson. Publicado en mayo de 2003.