Objective-C,

Primeros pasos con Iphone SDK: introducción al IDE y Objective-C

Voy a presentar los primeros pasos para desarrollar una aplicación para los nuevos y no tan nuevos dispositivos móviles de Apple. Lo organizaré en capítulos temáticos con ejemplos útiles para que puedan resultar prácticos para los que se inician en ésta apasionante tarea: el desarrollo de aplicaciones para Mac 10, Mac 10 Server y la familia de dispositivos móviles Iphone / Ipad.

En primer lugar voy a explicar qué es y de que partes consta el kit de desarrollo Iphone SDK. Lo primero de todo, vamos a descargarnos el Iphone SDK desde la propia web de Apple. Ocupa 3,6GB y consta de las siguientes herramientas:

  • XCode: IDE para el desarrollo individual para el desarrollo de aplicaciones Iphone. Proporciona herramientas de depuración, editor de código y todos los elementos para construir rápidamente tu primera aplicación. Dispone también de templates de código para empezar el desarrollo.
  • Instruments: Es una herramienta para ‘tracear’ dinámicamente las aplicaciones, medir los costes de memoria y efectuar un rápido seguimiento en tiempo real. Servirá para aumentar el rendimiento de nuesstras aplicaciones.
  • interface Builder: Es la herramienta para coenctar tu aplicación en la parte visual. Se incluyes componentes estándar de sistema como switches (checkbox), campos de texto, labels, botones, etc…. Através de operaciones de drag-n-drop se establecen las relaciones con las ‘vistas’ de la aplicación.Cuanto tienes listo el interface de tu aplicación, puedes grabar como un fichero nib (NextStep interface Builder).
  • iphone Simulator: Simulador iphone para probar las aplicaciones que realices.

Objective-C: El lenguaje de desarrollo

Obective-C es un lenguaje orientado a objetos derivado de C que nos proprciona toda la potencia en nuestras aplicaciones. Si has programado alguna vez en algún lenguaje orientado a objetos, Obetive-C te proprciona todos los conceptos tradicionales de este tipo de lenguajes: Encapsulación, herencia y polimorfismo. Hay algunas diferencias pero no las trataremos en éste artículo.

En la sigueinte tabla podemos ver las extensiones de los ficheros con los que vamos a trabajar en éste lenguaje:


Extensión Tipo de fuente
.h Ficheros de cabecera que contienen clases, tipos, funciones y constantes.
.m Ficheros fuente. Pueden contener tanto fuentes en C o en Objetive-C
.mm Los mismos que .m pero únicamente para C++

Cuando quieras incluir los ficheros de cabecera en tu código, puedes usar #import o #include, la diferencia es que este último se asegura que el fichero no va a ser incluído mas de una vez. Por normal general, deberás usar #import para incluir cabeceras.

Clases

Como en todos los lenguajes orientados a objetos, las clases en Objetive-C proporcionan la cosntrucción báscia para encapsular algunos datos con las acciones que operan con éstos. Un objeto es una instancia de una clase que contiene su propia copia en memoria de las variables declaradas y los punteros a los métodos o funciones de la clase.

La especificación en Objetive-C requiere diferenciar dos partes: el interface y la implementación. El interface contiene la declaración de la clase y define la instancia a las variables y métodos asociados a la clase. Normalmente el interface es un fichero .h. La implementación contiene el código puro y duro de los métodos de dicha clase. Suele ser un fichero .m  Vamos a ver todo esto con algun ejemplo:

La imagen 1 muestra la declaración de la clase MyClass que hereda de la clase base NSObject. La declaración de la clase siempre empieza con la directiva de compilador @interface y termina con otra directiva @end. Siguiendo al nombre de la clase y separado por dos puntos tenemos el nombre de la clase padre.Las variables de la clase son declaradas dentro de un bloque de parentesis {}. Un punto y coma marca el final de cada declaración de variable y método de la clase.

Espero que este resumen nos haya dado una aproximación a como podemos desarrollar este tipo de aplicaciones. En la siguiente entrega, vamos a tratar los métodos y sus formas de comunicación (messaging) , propiedades de la clase y cadenas de texto.

Hasta la próxima !