0% encontró este documento útil (0 votos)
46 vistas12 páginas

Introducción a Cocoa en Mac OS X

Mac OS X es un sistema operativo de Apple compuesto de capas de software. La capa superior incluye Cocoa, un conjunto de frameworks que provee APIs para construir GUIs de aplicaciones. Cocoa consiste principalmente de los frameworks AppKit y Foundation. AppKit provee objetos para GUIs mientras que Foundation provee clases para manejo de datos. Las aplicaciones Cocoa se desarrollan principalmente usando Objective-C con las herramientas Xcode e Interface Builder.

Cargado por

legnardz
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
46 vistas12 páginas

Introducción a Cocoa en Mac OS X

Mac OS X es un sistema operativo de Apple compuesto de capas de software. La capa superior incluye Cocoa, un conjunto de frameworks que provee APIs para construir GUIs de aplicaciones. Cocoa consiste principalmente de los frameworks AppKit y Foundation. AppKit provee objetos para GUIs mientras que Foundation provee clases para manejo de datos. Las aplicaciones Cocoa se desarrollan principalmente usando Objective-C con las herramientas Xcode e Interface Builder.

Cargado por

legnardz
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Miguel ngel Snchez Montiel

Introduccin Mac OS X es un sistema operativo que funciona bajo computadores Macintosh (diseados, desarrollados, construidos, comercializados y vendidos por Apple). La implementacin de Mac OS X se puede ver como un conjunto de capas (ver Figura 1), donde cada capa depende y contiene servicios y tecnologas ms sofisticadas que su capa inferior. La capa de aplicacin Cocoa se compone de tecnologas que entre otras cosas, sirven principalmente para construir GUIs para las aplicaciones, las cuales permiten responder a eventos del usuario y administrar el comportamiento de una aplicacin en general.

Figura 1: Capas que componen a Mac OS X

Que es Cocoa? Cocoa es un API nativa de Apple y un entorno de aplicacin (desarrollo) para Mac OS X y para iOS, el cual consiste de un conjunto de libreras de software orientadas a objetos, un sistema de ejecucin y un entorno de desarrollo integrado (IDE). Es el ms importante entorno de aplicacin para Mac OS X y el nico para iOS. La mayora de las aplicaciones que podemos disfrutar en Mac OS X y en iOS (Mail, Safari, etc.) son aplicaciones Cocoa. Como cualquier ambiente de aplicacin, Cocoa se compone de dos partes, su aspecto de ejecucion y de desarrollo. El primero exhibe la interfaz de usuario y est estrechamente relacionado con otros componentes visibles del SO en Mac OS X, esto incluye el Finder, Dock y otras aplicaciones. El segundo es un conjunto de componentes de software orientados a objetos (clases reusables y adaptables) que permiten la creacin rpida de aplicaciones completas y bien estructuradas tanto en Mac OS X como en iOS. Existen clases de Cocoa para casi todas las necesidades de desarrollo concebibles, desde objetos de interfaz de usuario hasta el formateo de datos.

Cocoa y Mac OS X La experiencia de usuario que define Mac OS X depende de las aplicaciones y tecnologas que forman parte de Cocoa presente en la capa de aplicacin, por lo que la capa de Cocoa es la principal responsable de la apariencia y comportamiento de las aplicaciones. Arquitecturalmente, MAC OS X es un conjunto de capas de software compuestas por frameworks, que en su nivel ms bajo encontramos a Darwin, el cual es un sistema operativo de la familia Unix y en su nivel ms alto estn los frameworks de aplicacin junto con la experiencia de usuario que estos soportan, tal como se muestra en la Figura 2.

Figura 2: Cocoa in the architecture of Mac OS X

Cocoa principalmente es un conjunto de frameworks (ya que est compuesto de estos) orientados a objetos que proveen un entorno de ejecucin y permiten el desarrollo de aplicaciones nativas para Mac OS X e iOS. Los frameworks de Cocoa son un conjunto de libreras y APIs que forman la capa de desarrollo de MAC OS X. Por medio de Cocoa se desarrollan aplicaciones de la misma forma como MAC OS X fue creado y que por lo tanto heredan su apariencia y comportamiento. Estos frameworks estn escritos en el lenguaje Objective-C y soportan tanto aplicaciones en 32 bits como en 64 bits, como tambin el garbage collection de Objective-C 2.0 para la administracin de memoria, anlogo al garbage collector de Java.

Frameworks de Cocoa Aunque Cocoa la conforma una gran cantidad de frameworks, son imprescindibles AppKit y Core Foundation (ver Figura 2), que a su vez son los frameworks ncleo de Objective-C, los cuales son esenciales para el desarrollo de aplicaciones para Mac OS X. Todos los dems son opcionales.

AppKit: Framework de la capa de aplicacin que provee todos los objetos que se pueden desplegar en una GUI, tales como campos de texto, botones, etiquetas, ventanas, dilogos etc., adems de definir la estructura para el comportamiento de una aplicacin, incluyendo el manejo de los eventos, el dibujado, etc. Foundation: Framework de la capa de servicios base (Core Services), que se encarga de definir un conjunto de clases para administracin de datos, acceso de archivos, administracin de memoria, comunicacin en red, etc., que definen el comportamiento de los objetos, adems de los tipos de datos primitivos. Todo esto puede ser usados en cualquier tipo de aplicacin Cocoa.

Foundation y AppKit son frameworks separados debido a la necesidad de contar con un framework especfico para el manejo de GUIs, ms sin embargo AppKit tiene una dependencia directa de Foundation, debido a que muchos de sus mtodos y funciones tienen como entrada o salida un valor que deriva de las clases de Foundation. Foundation es la versin orientada a objetos de Core Fundation y define la capa base de las clases de Objective-C, por lo que adems de proveer un conjunto de clases y tipos de datos primitivos, introduce los paradigmas que definen la funcionalidad de Objective-C. El conjunto de clases que conforman las libreras del framework AppKit tanto las Foundation tiene como clase raz a NSObject (ver Anexo A). Umbrella Framework de Cocoa Un umbrella framework es un framework del sistema (proporcionado por Apple, como ApplicationKit y OpenGL) que incluye y enlaza con los subframeworks que lo constituyen. Un sub-framework es un framework que empaqueta una tecnologa especfica de Apple, como OpenGL. Los umbrella frameworks definen un ambiente de aplicacin o una capa del software de sistema. La idea es que los programadores enlacen sus programas a estos frameworks en vez de enlazarlos directamente con los sub-frameworks, y as protegerlo de las interdependencias entre stos. Los umbrella framewok de Cocoa ([Link]) importan los frameworks base de Objective-C para el desarrollo de aplicaciones, estos son: AppKit, Foundation y Core Data.

AppKit ([Link]). Foundation ([Link]). Core Data ([Link]): Framework de la capa de servicios base (Core Services) que se encarga de administrar el modelo de datos de una aplicacion basada en el patrn de diseo Modelo Vista Controlador (MVC).

Desarrollar aplicaciones Cocoa Las aplicaciones Cocoa se pueden desarrollar en varios lenguajes de programacin, aunque el lenguaje primordial y requerido es Objective-C, debido a que tienen frameworks en comn. Objective-C es un superconjunto de ANSI C que ha sido extendido con caractersticas semnticas y sintcticas (derivadas de Samlltalk) para soportar programacin orientada a objetos. Debido a que Objective-C tiene base en ANSI C, es posible mezclar fcilmente cdigo de estos dos lenguajes, incluso puede mezclar cdigo C++ con cdigo Cocoa y linkear el cdigo compilado en el mismo ejecutable. Un factor importante a tener en cuenta al desarrollar aplicaciones Cocoa para Mac OS X es que no se pueden crear aplicaciones que no estn enlazadas a los frameworks AppKit (UIKit en el caso de iOS) o Foundation. Para el caso de los frameworks Foundation y AppKit Todas las clases, funciones, tipos de datos y constantes tienen el prefijo NS y para el caso de UIKit tienen el prefijo UI. Cocoa tambin se compone de una gran cantidad de tecnologas y herramientas integradas que trabajan en conjunto con los frameworks con el propsito de contribuir en los desarrollos productivos y agradables. Aunque hay muchas herramientas para desarrollar aplicaciones de Cocoa, tpicamente son desarrolladas con el IDE Xcode y con Interface Builder. El uso de estas dos herramientas se considera la mejor forma de crear aplicaciones nativas de Mac, puesto que tienen un alto grado de compatibilidad, lo que facilita significativamente el diseo, administracin, construccin y depuracin de programas Cocoa. Es posible igualmente desarrollar aplicaciones sin ninguna de estas, pero esto aumenta la complejidad y el tiempo de desarrollo. Xcode es el IDE ms robusto de Apple para Mac OS X y para iOS, el cual proporciona la mayora de las herramientas necesarias para el desarrollo y fcil acceso a los frameworks de Cocoa. Interface Builder es una herramienta grafica para la creacin de GUIs fcil de usar. Interface Builder y Xcode sincronizan sus cambios automticamente, por lo que su combinacin con Cocoa facilita la creacin de aplicaciones completas y bien estructuradas.

Cocoa usa el patrn de diseo MVC (ver Figura 3), con el fin de desarrollar aplicaciones ms fciles de disear, implementar y mantener. Como ya se ha mencionado, la herramienta por medio de la cual se realiza la vista en Cocoa es Interface Builder (ver Figura 4) y el modelo y el controlador se codifican con Xcode. Aun as Cocoa tiene la facilidad de adaptarse a una gran cantidad de patrones de diseo.

Figura 3: Patron de diseo Modelo Vista Controlador (MVC)

Figura 4: MVC con Interface Builder

Desarrollar aplicaciones con Cocoa (sus frameworks, herramientas y tecnologas), le brinda al desarrollador mucha versatilidad y facilidad a bajo costo, aunque hay que tener en cuenta que para lograr ser productivo con Cocoa hay que estar primeramente familiarizado con todos sus conceptos, patrones de diseo, herramientas de desarrollo e interfaces de programacin lo cual requiere un innegable esfuerzo, pero que vale la pena. Conclusin En general se puede decir que lo que hace que un programa sea una aplicacin Cocoa no son sus herramientas de desarrollo ni su lenguaje de programacin, sino que est compuesto de objetos que derivan de las clases que pertenecen al framework AppKit o Foundation, los cuales tienen como clase raz a NSObject y que estn basados sobre el sistema de ejecucin de Objective-C. Bibliografa Cocoa Fundamentals Guide, Apple Inc., 2010 [Link]

Anexo A A continuacin se presenta la jerarqua de clases del framework Foundation y AppKit. Foundation

AppKit

También podría gustarte