Bienvenido a esta nueva serie que se estará presentando alternativamente a la serie “iOS desde Cero”, para fortalecer las bases que te harán entender mejor y desarrollar aplicaciones más robustas, tanto para Mac OS X como para iOS.

Visto en:

Apple’s WWDC June 2nd LIVE Coverage


 

Historia

Hace 41 años atrás (1972) nace el lenguaje C, introduciendo una sintaxis innovadora que se convirtió luego en la más popular del mundo, influenciando a muchos lenguajes que utilizamos hoy en día.

En 1980 aparece SmallTalk, el primer lenguaje orientado a objetos. Fue entonces cuando se pensó que se podría crear un lenguaje como C pero con orientación a objetos, y así nació C++ en el 83. Más adelante, en 1986 fue creado Objective-C como una extensión del lenguaje C, añadiéndole: clases, objetos, métodos, protocolos, excepciones, propiedades y categorías.

En 1988 Objective-C fue adoptado por NeXT (la compañía que fundó Steve Jobs cuando dejó Apple). Este fue utilizado como base para construir el sistema operativo que correrían sus computadores, NeXTStep.

En el 96 Apple compró NeXT, y su sistema operativo, NextStep, pasó a convertirse en Mac OS X en 2001. Es por esto que verás que la mayoría de las clases del SDK de iOS y Mac tienen el prefijo “NS”, porque provienen de NeXTStep.

En 2007 se introdujo el iPhone, cuyo sistema operativo sería basado en las tecnologías de Mac. Es por esta razón que Objective-C también es el lenguaje utilizado para programar las aplicaciones nativas de iOS.

Toda esta plataforma de Apple está sentada sobre más de 20 años de historia y evolución de Objective-C, por eso no puede ser eliminado del cuadro.


El lenguaje

Objective-C al principio puede parecer intimidante porque se ve muy diferente, si vienes de lenguajes como Java o C++, pero la verdad es que es bastante sencillo.

A diferencia de C++, Java o C#, Objective-C no esta basado en C, Objective-C es C. Por lo tanto podrías copiar código de un programa hecho en C y pegarlo en uno de Objective-C y este compilará.

Vamos a dar inicio a este tutorial. Abrimos Xcode (en este caso uso la versión 4.6.2) y creamos un nuevo proyecto seleccionando Application > Command Line Tool.

¡Alerta!

Los siguientes ejemplos son Objective-C puro, no son específicos del desarrollo iOS ni de Mac OS X, sino del lenguaje. Para información básica sobre Xcode y como usarlo puedes revisar el primer capítulo de la serie

“iOS desde Cero”.

En la siguiente ventana colocamos el nombre del producto, el nombre de la organización, el identificador de la compañía, y seleccionamos “Foundation” del combo y chequeamos “Use Automatic Reference Counting”

“Foundation” es un framework de Apple que facilita el manejo de estructuras básicas como colecciones, strings, fechas, entre otros.

“Automatic Reference Counting” (ARC) en un manejador de memoria (no recolector de basura como el de Java o C#) que nos ahorrará tener que hacer release (similar a delete o free en C++). ARC lleva el conteo de referencias (punteros) a direcciones de memoria y es capaz de hacer la liberación del espacio automáticamente por nosotros cuando el conteo llega a cero. En otras palabras, cuando creas un objeto, este es alocado en memoria y apuntado por una variable que llamamos “apuntador”, cuando esta variable deja de existir (Ej: Terminó la ejecución de la función donde fue creado), el espacio de memoria no es apuntado por nadie, por lo tanto ARC lo borra.

Guardamos en el directorio de nuestra preferencia y empezamos a programar.

Estructura de un programa

Si todo salió bien, deberíamos ver un archivo llamado main.m con el siguiente código:

  1. En esta línea importamos el foundation framework. De esta menear le dijimos a la aplicación que vamos a utilizarlo.
  2. No importa si programas para iOS o Mac, todas las aplicaciones en Objective-C inician con la función main. Xcode siempre la va incluir por nosotros, por lo tanto no es necesario que la escribamos.
  3. autoreleasepool tiene que ver con manejo de memoria, por ahora vamos a ignorarlo, esto lo estaré explicando junto a ARC con más detalle en futuros capítulos.
  4. Esto es un comentario. También podemos comentar con /* */ como en la mayoría de los lenguajes modernos.
  5. NSLog se usa para escribir mensajes de salida (imprimir por pantalla), es el equivalente, a printf de C++, system.out.println de Java o console.writeline de C#.
  6. Este es el final de la función main, indicando que fue exitosa la ejecución.

Objective-C es un lenguaje case sensitive, esto significa que main es diferente de Main.

Por otro lado, no es sensible a espacios en blanco por lo que la función main se podría declarar también de la siguiente manera:

Corriendo la aplicación

Objective-C es un lenguaje que debe ser compilado. A diferencia de Javascript, PHP, Ruby o Python, que son lenguajes interpretados.

Para compilar podemos seleccionar Product > Build o presionar Command+B que es el atajo. Si no dañamos nada del proyecto que generó Xcode para nosotros, debería decir “Build Succeeded”.

Si queremos correr la aplicación seleccionamos el botón de la esquina superior izquierda que dice “Run” o podemos también ir a Product > Run, o presionar el atajo Command+R. Xcode compila y corre el programa (no es necesario compilar y correr manualmente, xcode compila siempre antes de correr).

En la parte inferior de la ventana veremos que apareció un panel, este contiene a la consola del lado derecho.

Luego de correr la aplicación debería decir:

Este es el mensaje que mandamos a imprimir con NSLog.

Variables

Todas las variables en Objective-C se declaran igual que en C. La estructura de la definición es la siguiente:

tipoDeDato NombreDeVariable = Valor;

Los tipos de dato primitivos en Objective-C son los mismos que en C solo que incluimos uno más:

  • int: para numeros enteros
  • float: para puntos flotante (valores con decimales)
  • double: un punto flotante de mayor precisión (dobla la cantidad de decimales de float)
  • char: para carateres simples
  • BOOL: este es el que incluimos que no tenia C, es para valores booleanos (verdadero o falso, en objective-C: YES o NO)

Condicionales

Los condicionales también son idénticos a los de C:

Ciclos

Igualmente los mismo de C:

Incluimos uno más que es el “For In” o “For each”:

Este es para recorrer colecciones de objetos, más adelante los explicaré con detalle.


Conclusión

Hasta ahora lo que hemos visto de Objective-C no es muy diferente de C. En el próximo capitulo hablaremos de operadores, numeros, strings (cadenas de caracteres), enumeradores, entre otras cosas antes de introducirnos a la orientación a objetos.

 


Fuente:http://codehero.co

Sergio I. Lizárraga P.

Creador y Administrador del sitio Ctrl-X at Ctrl-X
En la actualidad desarrolla Sitios Web y administra el contenido de Ctrl-X.
Contenido es variado con temas de tecnología, ocio, humor, salud, videojuegos, gadgets, seguridad, programación, ciencia, marketing, diseño.

Latest posts by Sergio I. Lizárraga P. (see all)

Invitanos una taza de café
para seguir publicando
con más ánimos.