Maybaygiare.org

Blog Network

Cocoa y Cocoa Touch: Cómo comenzar A crear aplicaciones para Mac e iOS

Divulgación: ¡Su soporte ayuda a mantener el sitio en funcionamiento! Ganamos una tarifa de referencia por algunos de los servicios que recomendamos en esta página.

Cocoa es una API de desarrollo nativa del sistema operativo Mac OS X. Cocoa Touch es la plataforma análoga estrechamente relacionada para iOS. Está escrito en Objective-C, y actúa como una especie de» capa superior » para cada sistema operativo.

Cocoa se puede considerar como una plataforma de aplicaciones o un marco de desarrollo de aplicaciones, pero está más integrado en el sistema operativo de lo que cualquiera de estos estaría en un entorno Linux o Windows.

Esta estrecha integración entre la API, el sistema operativo y (por supuesto) el propio hardware de Apple tiene la intención de proporcionar un entorno de desarrollo sin interrupciones y hacer cumplir «la manera de Apple» de hacer las cosas.

La historia del Cacao

El cacao comienza con C. Literalmente.

A principios de la década de 1980, un par de desarrolladores llamados Brad Cox y Tom Love buscaron agregar Orientación a Objetos al lenguaje de programación C, que no era compatible con OOP en ese momento.

Su solución fue crear un preprocesador que renderizara código C con algunas adiciones similares a Smalltalk en código C compilable simple. (Smalltalk fue un lenguaje primitivo orientado a objetos.)

Este preprocesador evolucionó rápidamente en una extensión de lenguaje completa y se conoció como Objective-C. NeXT software, que fue fundado por Steve Jobs después de ser despedido de Apple en 1985, licenció Objective-C a sus creadores y lo utilizó como base para varios marcos de desarrollo.

Formaron las plataformas de aplicaciones NeXTSTEP y OpenStep, que se vendieron a lo largo de los años 80 y 90.

Apple adquirió NeXT en 1996, y Steve Jobs regresó como CEO. Los frameworks NeXTSTEP se abrieron paso en el sistema operativo Mac.

Apple ya había registrado el nombre Cocoa, para un proyecto separado que se suspendió. Con el fin de poner rápidamente un nombre de marca registrada en la versión más reciente de Apple de los frameworks, lo llamaron Cocoa.

Cocoa ha sido parte de todos los sistemas operativos de Apple desde finales de la década de 1990, y ha evolucionado junto con el sistema operativo y las nuevas plataformas de dispositivos desde entonces.

¿Qué Hace el Cacao?

Cocoa hace muchas cosas, pero en términos generales se dividen en cuatro categorías:

  • Actuando como una biblioteca estándar expandida para Objective-C, proporcionando soporte para objetos más ricos y características de lenguajes de computación modernos que no están presentes en el diseño de Objective-C.

  • Proporciona una interfaz de usuario y una experiencia de usuario unificadas.

  • Permitir que una aplicación acceda a otras aplicaciones, servicios y funciones del dispositivo.

  • Fomentar patrones arquitectónicos y de gestión de datos particulares.

Estos objetivos de diseño amplios se implementan en varios «frameworks».»Este término puede ser un poco confuso. En el lenguaje contemporáneo, Cocoa es más como un solo marco, con varios módulos o bibliotecas. Pero Apple llama a cada una de estas bibliotecas un «marco».»

Exploremos un poco cada uno de estos objetivos funcionales y cómo los diversos marcos de Cocoa los logran.

Cocoa como biblioteca estándar

Objective-C tiene una biblioteca estándar. En el entorno Cocoa, Cocoa proporciona la biblioteca estándar y el tiempo de ejecución. Además, el Kit Básico proporciona un conjunto de funciones de lenguaje ampliado que, en la práctica, actúan como una biblioteca estándar de facto.

Esto proporciona funciones de lenguaje más avanzadas de las que normalmente estarían disponibles en Objective-C. Esto incluye una amplia gama de clases básicas para tipos de objetos de uso común: números, fechas, cadenas, URL, expresiones regulares y mensajes de error.

Este framework de Kit básico es esencial en aplicaciones escritas en Objective-C. Sin embargo, el desarrollo de aplicaciones en plataformas Apple se está alejando de Objective-C, ya que Apple promueve su nuevo lenguaje de desarrollo Swift.

Swift proporciona de forma nativa muchas de las características de lenguaje moderno agregadas por Foundation Kit, y no está claro qué papel desempeñarán Foundation y Objective-C en un futuro centrado en Swift.

Cocoa como interfaz UI/UX

Este aspecto de Cocoa es quizás el más importante para los desarrolladores de aplicaciones.

En la versión OS X de Cocoa, la API de experiencia de usuario es proporcionada por un framework llamado AppKit. En Cocoa Touch para iOS, esto se llama UIKit.

En ambos casos, estos proporcionan elementos gráficos, controles de interfaz de usuario, administración de ventanas y paneles, interfaces multitáctiles y todos los demás detalles de interacción entre el usuario y el sistema.

El uso de AppKit y UIKit es lo que hace que una aplicación se vea y se sienta nativa del sistema Apple, y responda a las entradas (gestos, clics, movimiento) de la manera «correcta».

La gran diferencia entre Cocoa y Cocoa Touch es la diferencia entre AppKit y UIKit. Por mucho que Apple haya trabajado para unificar la experiencia del usuario en todas las plataformas, sigues interactuando con un iPhone de manera diferente a como lo haces con una Mac de escritorio.

Además de elementos de interfaz gráfica de usuario ligeramente diferentes, UIKit incluye soporte para cosas como la dirección de la brújula, el GPS, el acelerómetro (movimiento del dispositivo) y la pantalla táctil.

Cocoa como interfaz del sistema operativo

Las aplicaciones de Apple también deben poder interactuar con otras aplicaciones y servicios del sistema operativo.

Si quieres hacer clic en un número de teléfono en tu aplicación de chat y hacer que se inicie una llamada telefónica, las aplicaciones deben poder hablar entre sí.

Si desea que una aplicación de edición de música pueda captar el sonido de un micrófono y reproducirlo en sus altavoces, las aplicaciones deben poder interactuar con los servicios del sistema operativo.

Cocoa proporciona una larga lista de frameworks que proporcionan acceso a aplicaciones y servicios. Estos son los que permiten que las aplicaciones no solo sean ejecutables independientes, sino que existan y funcionen en un ecosistema integrado.

Cocoa como arquitecto

Cocoa soporta dos patrones arquitectónicos importantes, uno dentro de una aplicación y otro en la forma en que una aplicación se comunica fuera de sí misma.

Cocoa está escrito con el paradigma arquitectónico Modelo-Vista-Controlador en mente, y admite el desarrollo de MVC en todos los niveles.

La vista está implementada por los frameworks AppKit o UIKit. Los módulos de controlador son compatibles con una familia de clases integradas en el Kit Básico. Los modelos, y su conexión requerida a una capa de persistencia de datos, son manejados por otro marco llamado Core Data.

Este diseño fomenta (algunos podrían decir que impone) una arquitectura de Controlador de vista de modelo dentro de las aplicaciones iOS y OS X.

Entre diferentes aplicaciones, y también entre aplicaciones y servicios, los diversos frameworks median la interacción de una manera esencialmente orientada a servicios. Esto hace que sea más fácil y seguro integrar aplicaciones entre sí, promoviendo un ecosistema de aplicaciones robusto y resistente.

Recursos de Cocoa

En línea

Tutoriales

  • Conceptos básicos de Programación para Cocoa y Cocoa Touch

  • Introducción a las Pautas de Codificación para Cocoa

  • Cocoa Dev Central

  • Programación de Mac OS X con Cocoa para Principiantes.

Herramientas

  • Controles Cocoa: componentes de interfaz de usuario de código abierto para iOS y OS X.

  • Cocoa Pods: un gestor de paquetes para proyectos Cocoa.

de la Comunidad y el Aprendizaje Continuo

  • CocoaHeads: una red mundial de reuniones locales y grupos de discusión dedicados al desarrollo del Cacao y Cocoa Touch.

  • Subreddit de cacao.

Libros

  • Desarrollo rápido con Cocoa: Desarrollo para las tiendas de aplicaciones Mac e iOS

  • Cocoa Programación para OS X: La guía Big Nerd Ranch

  • Aprendizaje de Cocoa con Objective-C

  • Tutorial de Cocoa de Ry

  • Cocoa (Desarrollador Referencia)

  • Patrones de diseño de cacao.

Otros recursos de desarrollo de OS X e iOS

No puede usar Cocoa o Cocoa Touch al vacío. Es una parte del entorno de desarrollo de aplicaciones de Apple más grande, que incluye Xcode, Objective-C y Swift. Estas diferentes herramientas y tecnologías trabajan juntas para formar un ecosistema de desarrollo.

Xcode

Xcode es un Entorno de desarrollo integrado (IDE) necesario para crear aplicaciones OS X e iOS. Está estrechamente integrado con Swift, Cocoa, la App store de Apple y el ecosistema Apple más grande.

No hay muchos tutoriales sobre Xcode específicamente, ya que está cubierto en todos los recursos generales de desarrollo de Apple. Sin embargo, un gran recurso es este tutorial de Xcode, que se actualiza regularmente a medida que salen nuevas versiones de Xcode.

Objective-C

  • Acerca de Objective-C: un tutorial introductorio del centro de Desarrolladores de Apple

  • Programación de Objective-C

  • Programación de Objective-C: La Guía de Big Nerd Ranch.

también Tenemos una lista más completa de Objective-C recursos.

Swift

  • El lenguaje de programación Swift: la guía oficial de Apple

  • Programación Swift: La Guía Big Nerd Ranch: el libro definitivo sobre el tema.

también Tenemos una lista completa de Swift recursos.

Recursos generales de desarrollo de Apple

El primer lugar para obtener información y recursos sobre el desarrollo para plataformas Apple es el sitio para desarrolladores de Apple.

Muchos de los mejores libros sobre desarrollo para Mac e iOS provienen de Big Nerd Ranch. Sus libros sobre temas específicos se mencionan anteriormente, y también debe consultar sus libros sobre Programación Avanzada de Mac OS X y Programación iOS.

Otros buenos recursos generales:

  • Tutoriales de Ray Wenderlich: uno de los relativamente pocos proveedores que se remonta y actualiza tutoriales antiguos cuando Apple actualiza la plataforma.

  • Canal de programación de Apple en YouTube: no oficial, pero muy útil.

  • WeHeartSwift: nominalmente acerca de Swift, pero este sitio cubre todos los aspectos del desarrollo de OS X e iOS.

  • NSHipster: un blog popular sobre el desarrollo de Mac e iOS, con muchos tutoriales sobre «partes pasadas por alto en Objective-C, Swift y Cocoa».»También son muy obstinados en su cobertura, lo que probablemente sea una fortaleza.

  • ObjC.io: libros y artículos sobre técnicas y prácticas avanzadas para el desarrollo de iOS y OS X.

Línea de Fondo…

Cocoa y Cocoa Touch son las bases del desarrollo de aplicaciones nativas para Mac e iOS.

Para iOS hay otras formas de crear aplicaciones móviles no nativas con HTML5 y JS, pero esto no siempre sale tan bien como se esperaba, en realidad.

Si desea crear la próxima gran aplicación para iPhone o crear aplicaciones para Mac que se integren bien con OS X y se ajusten a las expectativas del usuario, realmente necesita profundizar en Cocoa y Cocoa Touch. Para el desarrollo de aplicaciones nativas, realmente no hay sustitutos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.