Objective-C. Desarrollo de aplicaciones para iPhone y iPad.

Objective-C. Desarrollo de aplicaciones para iPhone y iPad

Muy buenas de nuevo. Me alegro de verte por aquí! Hoy vamos a retomar la temática de los lenguajes de programación y las distintas tecnologías, y lo haremos con un tema muy interesante y con muchísimo potencial en estos tiempos. Me estoy refiriendo al desarrollo de aplicaciones para dispositivos Apple (principalmente, iPhone y iPad) utilizando para ello el lenguaje de programación por excelencia en este mundillo: Objective-C.

Así pues, comencemos!! : )

Ubicando a Objective-C en su contexto

Hoy en día es innegable el imparable crecimiento que están teniendo las tecnologías de los dispositivos móviles en los últimos años. El número de smartphones, tablets, etc. han aumentado de manera exponencial. Esto ha sido así, hasta el punto que actualmente estos dispositivos se han posicionado como tecnologías de máxima prioridad para muchas empresas. Incluso algunas han decidido dedicarse en exclusiva al desarrollo de aplicaciones móviles para participar de este atractivo y lucrativo mercado.

Dentro de todas estas tecnologías, Apple ha sido pionero en muchas de ellas, y en una gran mayoría de los servicios asociados a estos dispositivos, consiguiendo con esto que su sistema operativo móvil, es decir iOS, sea uno de los actores principales en este mundillo.

iOS (anteriormente conocido como iPhone OS hasta junio de 2010), es el sistema operativo móvil de Apple. Originalmente fue desarrollado para iPhone, y posteriormente fue extendido a los sucesivos dispositivos móviles desarrollados por la compañía de Palo Alto: iPod Touch, iPad y Apple TV; por lo que se podría decir que es un sistema operativo joven (no ha cumplido aún ni 10 años!).

Así que genial. Hasta ahora tenemos unos dispositivos móviles con un diseño muy chulo y un sistema operativo (iOS) instalado sobre ellos. ¿Y ahora qué? Pues aquí es donde vino el “golpe maestro” de Apple y que cambió la industria de la telefonía móvil para siempre: plantear un mercado de aplicaciones (la famosa, App Store) donde los usuarios podrían descargar las aplicaciones que quisieran instalar y ejecutar en sus dispositivos en cada momento; y, por otro lado, los desarrolladores pudiesen crear aplicaciones y venderlas a través de esta plataforma. ¡Chapó!

Pues muy bien, Objective-C fue el lenguaje elegido para que los desarrolladores pudiesen programar aplicaciones para los dispositivos de Apple.

Qué es Objective-C y para qué sirve

Ya hemos comentado en alguna ocasión que en los años 80 se desarrollaba aplicaciones utilizando el paradigma de la programación estructurada, muy útil para dividir problemas complejos en partes más pequeñas y abordables (la estrategia de “divide y vencerás” de toda la vida), pero la realidad es que a medida que los problemas se hacían más complejos con el paso de los años, en muchas ocasiones se acababa obteniendo lo que se conoce como spaguetti code (un código muy lioso, con muchas invocaciones constantes a distintas subrutinas y bastante difícil de seguir), por lo que se dificultaba en gran medida la reutilización de los módulos ya programados. Algunos pensaron que la programación orientada a objetos era la solución.

Y así es como Brad J. Cox y Tom Love se convirtieron en los principales creadores del lenguaje de programación orientado a objetos Objective-C, en su compañía Stepstone a principios de los 80, y principalmente influidos por el lenguaje Smalltalk (pionero en esto de la programación orientada a objetos).

Brad Cox y Tom Love, creadores de Objective-C

Brad J. Cox y Tom Love, creadores del lenguaje Objective-C

Objective-C fue creado como una extensión del lenguaje C, dotando a éste de la capacidad de crear y manipular objetos. Posteriormente, Cox y Love crearon una empresa para comercializar su producto, PPI (Productivity Products International), que era básicamente un compilador de Objective-C con un conjunto de librerías incluidas.

En 1988, la compañía capitaneada por un tal Steve Jobs (y que fundó después de que le echaran de su propia empresa), NeXT Computer Inc. licenció Objective-C (de Stepstone) y desarrollo sus librerías y un entorno de desarrollo denominado NeXTSTEP. En 1996, Apple Computer anunció que adquiría NeXT Computer (el hijo pródigo -Steve Jobs- volvía a casa) y todo el entorno NeXTSTEP, y lo utilizó en su nuevo Mac OS X (el sistema operativo de los Mac), incluyendo las herramientas de desarrollo de NeXT:

  • Project Builder, entorno de desarrollo que posteriormente ha sido reemplazado por Xcode.
  • Interface Builder, como entorno de creación y diseño de interfaces.
Steve Jobs, fundador de NeXT

Steve Jobs, en su etapa de NeXT Computer.

Y así fue como Apple creó un potente entorno de desarrollo para crear aplicaciones para Mac OS X, con Objective-C como lenguaje de programación principal.

Aunque recientemente Apple ha creado un nuevo lenguaje de programación: Swift (… ya hablaremos de él un día de estos…), actualmente Objective-C es el principal lenguaje de programación con el que se desarrollan aplicaciones tanto para Mac OS X como para iOS.

Objective-C como lenguaje de programación

Objective-C es un lenguaje de programación “simple” (o eso dicen sus creadores), diseñado para dotar al lenguaje C de todas las capacidades de la programación orientada a objetos. Por eso, Objective-C se define como un conjunto de extensiones al lenguaje estándar de programación ANSI C.

Sus principales características como lenguaje de programación son:

  • Dispone de algunas extensiones respecto a C muy sencillas, como las clases, los mensajes y algunos tipos nuevos.
  • Sigue la sintaxis de mensajes de Smalltalk, que fue uno de los primeros lenguajes de programación orientado a objetos.
  • Hace uso de herencia simple, es decir, cada clase hereda de una y sólo una clase padre.
  • Hace uso de protocolos, que permiten comportamientos comunes para clases distintas y no relacionadas.
  • Permite declarar un sistema de tipos dinámicos, aunque también se puede declarar los tipos dinámicamente.
  • Los ficheros fuentes de Objective-C tienen la extensión .m, y en ellos se puede escribir código en C y en Objective-C.

Debido a que Objective-C es una extensión de C compatible hacia atrás, muchas de las características de la sintaxis de C han sido heredadas por Objective-C. En definitiva, toda la sintaxis para las operaciones no orientadas a objetos son heredadas de C, mientras que la sintaxis para las operaciones orientadas a objetos, tienen una implementación similar a la mensajería de Smalltalk.

Xcode: el verdadero placer de programar para Apple

Diseñado desde el principio para aprovechar las ventajas de las nuevas tecnologías de Apple, Xcode integra todas las herramientas que un desarrollador pudiera necesitar (es una gozada!). Xcode es, por tanto, un completo “pack” de aplicaciones o un conjunto de herramientas de desarrollo para Mac OS X (el sistema operativo de los ordenadores Mac) e iOS (el sistema operativo de los iPhone, iPad, iPod Touch, etc.).

Xcode se ha simplificado para ayudar a desarrollar mejor las aplicaciones, integrando el diseño de interfaces, la edición de código, testeo y depuración (debugging), todo en una sola herramienta.

El espacio de trabajo de Xcode es muy cómodo de utilizar e intuitivo. Dispone de muchos detalles pensados para facilitar la labor del programador, como por ejemplo: alerta al programador a medida que va escribiendo sobre los posibles errores en el código, mostrando un globo al lado del mismo para más detalles. Se puede pulsar en el botón ejecutar para iniciar la aplicación o para desplegarla en un dispositivo e iniciar la fase de depuración, pudiendo pasar el ratón sobre una variable para ver su contenido en tiempo de ejecución…

Xcode, entorno de desarrollo para iOS

Como conclusión, decir que Xcode es, tal y como se ha comentado anteriormente, un verdadero entorno de desarrollo integrado (IDE), que incorpora el SDK de iOS y Mac OS X, y pensado por y para los desarrolladores, y cuya principal misión es convertir el proceso de desarrollo en una experiencia lo más agradable posible para el programador.

Consideración final sobre Objective-C

Para terminar, quiero hacerte mi valoración personal sobre Objective-C como lenguaje de programación, y que tengas un pequeño resumen de qué es lo que te permite desarrollar y qué te puede ofrecer si finalmente decides aprenderlo. Para ello, te dejo un pequeño fragmento de una de las lecciones del curso gratuito “De Novato a Desarrollador Exitoso” en el que precisamente hablo sobre Objective-C.

¡Espero que lo disfrutes y que te resulte de utilidad!

AVISO IMPORTANTE:
Objective-C tiene algunas peculiaridades a la hora de hacer ciertas cosas, en contraste con otros lenguajes más “naturales” (o con los que podemos estar más familiarizados). Es decir, que es un lenguaje que puede resultar algo “incómodo” al principio, ya que hay que pensar de una manera un poco diferente.

Apple es consciente de esto y es por ello que ha querido solventarlo creando un nuevo lenguaje de programación algo más sencillo: Swift. Aunque no nos engañemos, la mayoría de las empresas tienen sus aplicaciones desarrolladas con Objective-C y buscan personas que dominen este lenguaje para poder seguir manteniendo y dando soporte a sus desarrollos previos; por lo que, por lo menos de momento, sigue siendo muy recomendable aprender Objective-C si nos queremos dedicar al desarrollo de aplicaciones móviles para dispositivos iOS de Apple.

¿Y tú, qué opinas sobre Objective-C? Me gustaría conocer tu opinión en los comentarios…

 

¿Te ha gustado el artículo? Entonces compártelo con alguien a quien también le pueda gustar!

Opt In Image
¿Te gustaría Aprender a Programar pero no sabes por dónde empezar?
Esto te interesa...

¡Ya está disponible nuestro Curso Online GRATUITO!

Tags:

2 Comentarios. Leave new

johnjonescode
6 mayo, 2016 2:31 am

Creo que no esta malo aprender objetive-c pero hay que ser visionarios y centrarse mas en swift porque por ahi va el futuro del desarrollo en iOS saludos

Responder

Hola John!
Llevas toda la razón, esa es la apuesta futura para el desarrollo de aplicaciones para los dispositivos de Apple.
Sim embargo, piensa que en la mayoría de empresas u organizaciones en las que disponen de aplicaciones de este tipo, tendrá que seguir manteniéndolas y darles soporte. Es muy frecuente que, cuando llegamos a una empresa (o como freelance, trabajando para otros) nos encontremos con que tenemos que seguir “toqueteando” y manteniendo las viejas versiones de las aplicaciones. Y, muy probablemente, estén desarrolladas en Objective-C…

Un saludo!

Julio.-

Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *