Tutorial Programación iOS: Solución y explicación del ejercicio (Clase 1)

Para dar las gracias debes entrar o registrarte en el foro

iMiembro Pro 3G
iMiembro Pro 3G
Mensajes: 1334 Agradecido: 992
31 Mar 2012, 18:08# 1
Imagen


Curso de programación realizado por nuestros amigos de iPhone4Spain.com que nos han pedido que compartamos esta serie de cursos de programación en iOS con la comunidad de iPadForos


Hoy vamos a ver la solución del ejercicio propuesto en la Clase 1 del Curso de Programación iOS: cómo capturar eventos generados por el usuario.

Nos centraremos en explicar para qué se utilizan los objetos y porque programamos las cosas de la manera que lo hacemos. Vamos a tratar las clases de los viernes como un refuerzo a las clases de los lunes. De esta manera veremos más casos en los que podéis encontrar alguna duda.

Empezamos la solución y explicación del ejercicio creando un nuevo proyecto vacío "Empty Application". Nosotros lo hemos llamado "EjercicioClase1".

Imagen


Añadimos al proyecto un nuevo fichero.

Imagen


Seleccionamos una "Objective-C class". En el paso siguiente, le escribimos un nombre y marcamos la opción "With XIB for user interface".

Imagen


Introducimos los ficheros generados en una carpeta con el nombre que le hemos puesto a la Clase.

Lo primero que vamos a hacer programar el fichero "AppDelegate.m" para que la aplicación arranque desde la interfaz que hemos agregado. Para ello, como vimos en la Clase 1 del Curso de Programación iOS, abrimos "AppDelegate.m", agregamos #import "MainViewController" en la cabecera para tener acceso a la clase que hemos creado. Una vez hecho el paso anterior, buscamos el método "didFinishLaunchingWithOptions" y creamos un objeto de la clase "MainViewController" que igualaremos a la propiedad "rootViewController" de "window".

Imagen


Ahora vamos a añadir otro fichero de "Objective-C class". Le ponemos de nombre "Constants" y va a ser subclase de "NSObject". Evidentemente no va a tener interfaz, de hecho, no nos da la posibilidad de seleccionar "With XIB for user interface". También lo insertaremos en una carpeta para tener el proyecto lo más organizado posible.

Lo vamos a utilizar para programar las constantes de nuestra aplicación. Es una metodología que nos insisten mucho los profesores y que los alumnos solemos pasar por alto, pero como en este curso queremos programar de la manera más correcta posible, nosotros intentaremos hacer buenas prácticas de programación.

Imagen


El proyecto va a tener la siguiente estructura de ficheros.

Imagen


Vamos a editar ahora el fichero "Constants.h". En él vamos a declarar las constantes que vamos a utilizar. En esta aplicación sólo va a tener un "NSString" como constante.

Declaramos la constante con las siguientes instrucciones, "extern(Indica que la declaración hace referencia a un elemento ya existente definido o asignado en otra unidad de compilación) NSString(Es el tipo de objeto que estamos declarando) * const(Indicamos que es constante) CONST_STR(Nombre que hemos puesto a la constante)".

Imagen


Editamos, ahora, el fichero "Constants.m". En él, simplemente, le asignamos el valor a la constante.

Imagen


Abrimos y editamos "MainViewController.h".

Lo primero que haremos será crear un contador, con el que contaremos las veces que el usuario pulsa el botón "Incrementar".

También crearemos un "IBOutlet" con el que accederemos al "Label" que mostrará el contador.

Por último, crearemos dos "IBAction". Uno para incrementar el contador, que lo hemos llamado "incCounter", y otro para poner a 0 el contador, que lo hemos llamado "resetCounter".

Imagen


Y el último fichero a programar es "MainViewController.m". En él lo primero que haremos será importar "Constants.h" y el "@synthesize" del "IBOutlet" que hemos declarado en el fichero "MainViewController.h".

Imagen


Ahora hay que implementar los "IBAction" declarados en "MainViewController.h". También, hay que buscar el método "viewDidLoad" para mostrar la primera vez el contador y el texto.

Imagen


La clase "NSString" tiene un método llamado "stringWithFormat" que permite introducir el formato que queramos al texto del "Label". Es muy útil para mostrar variables numéricas en textos. En nuestro caso, el "Label" muestra "Pulsaciones: " y el contador de pulsaciones. Para mostrar el contador, la constante tiene "%d" en el lugar que queremos mostrar la variable "counter"

Por último, abrimos el fichero "MainViewController.xib" para agregar los componentes "Label" y "Round Rect Button" que necesitamos en la aplicación y los enlazamos con los "IBAction" e "IBOutlet" correspondientes.

Como ya explicamos en la Clase 1 del Curso de Programación iOS, hay que tener cuidado cuando se enlacen los componentes con los "IBOutlet" o "IBAction".

Primero vamos a enlazar el "IBOutlet". Pulsamos el botón izquierdo del ratón junto con la tecla Ctrl del teclado sobre "File's Owner" y arrastramos hasta el "Label". Seleccionamos el "infoLabel".

Imagen


Ahora enlazamos los "IBAction". Hacemos la combinación de teclas anterior, pero ahora en sentido contrario.

Pulsamos el botón incrementar y arrastramos hasta "File's Owner". Seleccionamos "incCounter".

Imagen


Hacemos lo mismo con el botón "Resetear" y seleccionamos "resetCounter".

Imagen


Sólo queda ejecutar la aplicación y ver que funciona correctamente.

Imagen


Con esto damos por concluida la Clase 1 del Curso de Programación iOS. Esperamos que todos hayáis tenido bien el ejercicio o, por lo menos, que lo hayáis intentado. Si tenéis alguna pregunta, duda o algo que sugerirnos o corregir, podéis usar tanto el sistema de comentarios que tenéis debajo de la entrada, o podéis mencionarnos en twitter @iPhone4Spain .

El lunes, día 2 de abril, publicaremos la Clase 2.

Vía | iPhone4Spain.com - Clase 1
Gracias  
3 personas han dado las gracias: CarlosVEPmiguelangellomanelalbert
Etiquetado en:
iMiembro
iMiembro
Mensajes: 2 Agradecido: 4
03 Abr 2012, 10:41# 2

Habéis llegado a esta solución?
Creéis que vamos muy rápidos? Ó, ¿os parece bien este ritmo?
Ya se ha publicado la Clase 2: transición con pushViewController :)

Gracias  
1 persona ha dado las gracias: miguelangello