miércoles, 3 de febrero de 2010

Un poco de programación: iPhone



Hola , hoy vamos a iniciarnos un poco con el tema de la programación en iPhone , en si , el sistema operativo del iPhone (iPhone OS) es como un Mac en pequeño.
Es bastante similar en cuanto a la hora de programar en Mac , hace falta tener algunos conocimientos de inglés para dominarlo con mas soltura , ya que casi todo el SDK esta en inglés , recordemos que en el iPhone se programa en el lenguaje Objective C y Cocoa Touch , lo primero es empezar por lo básico , el Hello World , en castellano , Hola , mundo.
Tutorial completo en Lee más...
Lo primero que hay que tener en cuenta a la hora , es descargarse las herramientas necesarias para ir a ello , están aqui , es totalmente gratuita , pero necesitas crearte una cuenta de desarrollador en la misma página , y se hace en cuestión de segundos.
Cabe destacar que el SDK (Software Developement Kit) en castellano , kit de desarrollo de software , hay una versión gratis , y otra de pago , que cuesta 100€ , la única ventaja que tiene la de pago , es que puedes usar tus proyectos en el iPhone , para usarlos directamente desde el sin necesidad del simulador iPhone incluido en el SDK , y la mas importante que marca la diferencia de gratis a pago , es que puedes subir tus Juegos , Apliaciones a la App Store y ganar un buen dinero.
Cuando os lo descarguéis (Pesa unos 4GB , paciencia porque tarda bastante tiempo...) , lo instaláis (Es un .Pkg , no un .Dmg) , reiniciais el Mac , y dentro de: Macintosh HD > Developer , estarán todas la aplicaciones para hacer software en el iPhone , es extraño que no aparezca por defecto en la carpeta de aplicaciones , pero da un poco igual , la verdad. Recomiendo poner un icono en el dock para tenerlo más a mano , o usar Spotlight o Quicksilver (Lanzadores de aplicaciones) para lanzar esas aplicaciones mas rápidamente.
Dentro de la carpeta developer , usaremos exclusivamente 4 de ellas aunque hay muchísimas mas , y son:
  • Xcode: Con ella escribiremos el código de nuestra aplicación y no solo en iPhone , sino que en Mac también.
  • Interface Builder: El nombre de la misma ya lo dice todo , es el creador de la interfaz visual de nuestra aplicación.
  • iPhone Simulator: Para probar nuestras aplicaciones simuladoras en un iPhone.
  • Instruments: Se usará poco , ya que sirve para testear y reparar defectos y bugs en nuestra aplicación , y mejorarla dentro de lo que se pueda.


Con la explicación de lo que vamos a usar , procedamos a ello.


Lo primero es abrir Xcode , al principio no debería salir nada , para crear un proyecto nuevo , en la barra de menús  File > New Proyect , os saldrá lo siguiente :


Le damos a la opción View Based Aplication , y nos pedirá una ubicación del proyecto , nunca debemos escribir el nombre del proyecto con espacios , debe ir todo unido , como en las URL de los sitios web.Ahora aparecerá Xcode , un repaso rápido , pero muy importante para saber manejar este programa:





En la barra de la izquierda , están todas las carpetas organizadas de nuestro proyecto.

En la barra central , es la mas compleja , en ella están ficheros del proyecto , veámoslos:





  • Frameworks , de momento no les tocaremos nada aún. 
  • El fichero .plist , contiene toda la información de la aplicación , autor , seriales etc... 
  • El fichero .app seria el resultado de nuestra aplicación ya compilada y lista para ser usada 
  • El fichero .pch no lo usaremos nunca 
  • El fichero .xib es la parte gráfica de nuestra aplicación. 
  • El fichero main.m es la central de la aplicación. 
  • El fichero AppDelegate es el delegado de nuestra aplicación , existen sus dos tipos , el .h , y el .m 
  • El fichero UntitleViewController , es el controlador de nuestra aplicación , y como en el App delegate , tiene sus dos clases , el .h y el .m 
En la barra superior , están el modo en el que queremos crear nuestra aplicación , los botones bullid , para compilar , y build and run para compilarla y ejecutarla con el simulador iPhone.

El objetivo de esta aplicación consiste en que cuando el usuario toca el botón , recibe un saludo personalizado , bien pues empecemos.

En Xcode , nos metemos en Viewcontroller.h , este controlador le diremos que queremos usar , y el el Viewcontroller.m lo que queremos que queremos que pase cuando hagamos una acción.


En el .h , veremos que hay dos espacios separados con un corchete , siempre hay un corchete que habre , y otro que cierra , lo mismo pasa con los paréntesis y corchetes cuadrados , entre estos corchetes vamos a poner los objetos que queremos usar , fuera de los corchetes pondremos las acciones que queremos que realicen los objetos de dentro de los corchetes , ahora , dentro de los corchetes , pondremos IBOutlet , así se llaman los objetos , siempre empiezan por IB salvo algunas excepciones , ahora le decimos que objeto es , un label , por lo tanto UILabel , ahora hay que ponerle un nombre , ponemos un asterisco y ponemos el nombre , yo lo voy a llamar Label , pero podéis ponerle el nombre que queráis , las frases siempre se terminan con punto y coma.

Simplificando lo anterior quedaría así: IBOutlet UILabel *Label;

Ahora , por debajo del corchete , pondremos las acciones , siempre se empieza así: -[

la acción es cuando sucede algo en la aplicación , en este caso , va a ser pulsar el botón , primero hay que decirle que programa vamos a usar , Interface Builder , por eso escribimos

IBAction , IB es el prefijo de Interface Builder , y el resto es lo que vamos a usar , en este caso una acción , y lo cerramos con paréntesis , quedando así: (IBAction).

Luego escribimos el nombre que va a desencadenar la acción , en este caso , pulsar el botón , de tal modo que queda así: PulsarElBoton

Simplificando lo anterior , quedaría así: -[IBAction]PulsarElBoton;

Ya hemos acabado con el Controlador .h , en total deberíais tener algo así:

IBOutlet UILabel *Label;

}

-(IBAction)PulsarElBoton;

Ahora empezamos con el Controlador .m

Copiamos esto: -(IBAction)EspicharElBoton; ahora abrimos corchetes , y dentro escribiremos que es lo que va a pasar cuando pulsemos el botón , cuando pulsemos el botón , el texto cambiara , para ello , dentro de los corchetes ponemos el nombre que usamos en el .h , Label en mi caso , y le ponemos una propiedad , añadiendo un punto , y seguido text si nos olvidamos de las propiedades , justo delante del punto , pulsamos ESC , para ver todas las propiedades disponibles , el texto Label , va a ser igual a algo , como una ecuación sencilla , Label=@ (Aquí pondremos lo que quemos que salga cuando pulsemos el botón y que este entre comillas) y terminamos con punto y coma , un ejemplo: Label=@Hola Mundo;

Simplificando lo anterior , quedaría así: -(IBAction)EspicharElBoton{

Label.text = @"Hola Mundo"; (Por cierto, espichar es pulsar un botón)

Ya hemos terminado la parte del código.

Os pongo capturas de pantalla para que comparéis si lo tenéis bien o mal









Este es el del controlador .h














Este es el controlador .m


Pero a pesar de no haber terminado la parte del código , aún lo esta completa , si le das a build and run veréis que no pasa nada , necesitamos crear la interfaz , en Xcode buscamos el archivo .xib , el MainWindow NO , el otro , y le damos click , y aparecerá Interface Builder:




Eso es Interface Builder , debéis poner en la ventana , como mínimo un label y un botón , si queréis ponerla mejor , podéis poner colores , efectos , pestañas , barras de búsqueda.
Cuando la interfaz este creada , ahora hay que indicar cual es el Label , y que tiene que pasar cuando la acción se ejecuta , en una ventana del mismo , buscar un cubo naranja llamado File's Owner.


En el inspector , según la imagen de arriba , la ventana de la derecha , en la 2 pestaña , la de conexiones , os saldrá espichar el botón , y Label , ahora puede que sea un poco lioso , pero, mantened pulado el ratón como si estubierais arrastrando , arrastráis donde pone Label y Espichar el botón , a Label a Label , y EspicharBoton a el Boton.


Guardamos en todo momento , con  comando+s , luego en Xcode , le damos a Build and Run , y comprobad si os funciona correctamente.

PD: Estoy revisando esto que llevaba aquí mucho tiempo y no puse ninguna captura del resultado final, que debería se que al pulsar el botón saliera un texto, concretamente este: "Jesús es medio bobo , ¿Lo sabías?"

2 Limosnas en forma de comentario:

Anónimo dijo...

Joooder , bárbaro , y muy bien explicado xDD

Enrique C dijo...

Gracias!

Publicar un comentario

Una limosna en forma de comentario!