Translate

sábado, 15 de enero de 2011

Fundamentos de Cocoa

Comenzado he mi formación para el desarrollo de aplicaciones para MacOs e IOS, como diría el maestro Joda. Iré colocando los apuntes de lo que voy viendo para que así cualquiera de los que esteis interesados también en el tema podais acceder a ellos. Si alguno de vosotros estais en la misma tarea agradeceré los comentarios, materiales, apuntes, etc. que podais tener.



Presentaciones

¿Qué es cocoa?, cocoa consiste en un conjunto de librerías orientadas a objeto, runtimes y un entorno integrado de desarrollo.

Con cocoa se pueden crear aplicaciones para dos tipos de plataformas:
  • Sistemas operativos Mac OS X
  • IOS, sistemas operativos de dispositivos multitouch (ipad, iphone, etc.)

Muchas de las aplicaciones que pueden verse en los productos mac están implementadas mediante cocoa, por ejemplo safari, Mail, etc...

El entorno de desarrollo para aplicaciones cocoa se llama XCode, así mediante este entorno de desarrollo y el conjunto de librerías de software orientado a objetos proporcionado por cocoa podremos construir las aplicaciones para las dos plataformas empleadas por los productos apple, Mac OS X e IOS.

Cocoa es por lo tanto una suite de componentes de software basados en programación orientada a objetos. Serán lo que denominaremos clases. Estas clases son las que nos permiten crear aplicaciones. Podremos usarlas tal cual están definidas, o incluso podremos extenderlas según nuestras necesidades.

Un poco de historia

Cocoa fue presentado por la compañía NeXT Computer en Septiembre de 1989  y se llamó originalmente NeXTSTEP, y era algo más que un entorno de desarrollo, ya que incluía el propio sistema operativo, el sistema de imágenes y el de ventanas. Posteriormente NeXT se asociaría a Sun Microsystem para conjuntamente lanzar OPENSTEP.

NeXTSTEP fue la combinación de los siguientes elementos:
   1. Un sistema operativo Unix basado en el kernel Mach kernel.
   2. Display PostScript y un motor gráfico.
   3. Objective-C como lenguaje de programación y runtime.
   4. Una capa de aplicación orientada a objetos, incluyendo varios kits.
   5. Herramientas de desarrollo para las capas OO.

Posteriormente entra en escena Apple, la cual compra la compañía NeXT, y decide evolucionar OPENSTEP, para derivar en MacOS X.

Como nota curiosa resaltar que el primer navegador web de la historia fue desarrollado empleando OpenStep.

Lenguajes empleados en cocoa
Muchos lenguajes pueden ser usados al desarrollar aplicaciones mediante cocoa, no obstante el fundamental es Objetive-C.
Objetive-C deriva del ANSI C, y está extendido para el manejo de objetos añadiéndole características sintácticas y semánticas sacadas del lenguaje de programación orientado a objetos SmallTalk.
Podemos por lo tanto mezclar Objetive-C con instrucciones puras de C o de C++, o incluso hacer llamadas a librerías BSD que se hallen en el directorio /usr/incclude. Incluso

Las librerías de clases más importantes vienen empaquetadas en dos "core frameworks" (lo pongo en inglés porque es más fácil identificarlos de esta manera) por cada una de las plataformas: Application Kit y Foundation Kit.
La idea de dividir las clases en dos bloques es separar aquellas que están orientadas a interfaz gráfica de usuario o no.
Existen otros core frameworks que engloban clases orientadas por ejemplo al manejo de datos, webs, etc.

1 comentario:

Anónimo dijo...

Enhorabuena Uge!!

Te seguiré atento.

Juanan