Está en la página 1de 23

c 


    


Este tutorial es el primero de una serie que pretenden servir de guía para todos aquellos que queréis
empezar a programar en entorno Mac / iPhone. Esta estructurado en tres partes. En una primera
comentaremos el SDK, los cambios surgidos a lo largo de las distintas versiones del SDK. En la segunda
parte instalaremos el SDK y en la última parte realizaremos un proyecto para ver lo fácil que es
programar aplicaciones para el iPhone / iPod Touch.

c 

El 6 de Marzo de 2008 Apple nos sorprendió a todos con el anuncio de un SDK para sus
dispositivos iPhone y iPod Touch. Han pasado ya meses desde entonces y han sido bastantes los cambios
producidos en el SDK. Actualmente está en fase beta, en su versión octava. Antes de comenzar a trabajar
con él comentemos un poco las versiones anteriores y los principales cambios sufridos en el mismo:

- Beta 1: SDK inicial en el cual no se daba soporte a Interface Builder. Toda interfaz había que
programarla.

- Beta 2: Se da soporte a Interface Builder para el desarrollo de aplicaciones para el iPhone.

- Beta 3: Se corrigen importantes bugs.

- Beta 4: Se da soporte a OpenGL ES.

- Beta 5: Se corrigen bastantes bugs y se mejora la interfaz.

- Beta 6: Se corrigen Bugs y viene acompaña de la actualización 10.5.3 de Leopard.

- Beta 7: Mayor estabilidad y se corrigen Bugs.

Desde mi punto de vista los puntos positivos y negativos que trae este SDK:

A favor:

- Facilidad a la hora de programar una aplicación. Documentación extensa unida a ejemplos.

- Conjunto de herramientas muy completas. Todo lo necesario está incluido en el SDK.

- Emulador : para todos aquellos que no disponen del dispositivo.

- Acceso a los Framework más jugosos del dispositivo: multitouch, acelerómetro,


localización, cámara«.

- Para un programador de Mac le será transparente programar para dicha plataforma.

En contra:

- Programa de desarrollo: hay que pasar por caja para ver nuestras aplicaciones en el
dispositivo físico.
± j  
   i : j ti ± 
  ti
 i t
 it

±  
l
li
  l lt
 M  
   it
i il   i


±  li  i
 

  
l
 
    l t
 
   l
  j  i 

  t

 ll
   t  t

 
     t lt
 !il

t l  
  lt
 !il  "l # l
 t i
iti
 l i
 l  
M  
  !il
  i lti i$ i
 i
iti
lti i  t  l tl


   t íti   


  it %   i
ti t
 l lt  
 ti   
lt
  j
 i  i
t 
  l

 i t   
l  &'

i
ti  l $  i
$   t  
(
) " i$ 
t


 
 l 

t




    
  ti 
* i   + ii 
,

O c   c  

" t   t 


 
 l itl i!   í

    i i!  l
  it 
ti

   %  it
    
 l 
i il  -l 
l
li% 
  l iit l 
Ô 

 Ô
 "l #i
iit
 
 i    it  
  
i


ll
*  ti > ,

"l  i
 
 .&/0B$  
   i i it      *iit

il
 

it  tt
1±, , 


t
 l  i
  
$ t
ti  t  

t   l it 


i  
 
 l i  j t
 l itl i! "  i
itt  
 i  


 itt
2 % itl
$
 
  l   it 
t  l  t -li  i
 3 

l i
    it  il l  l 

 
t   l
 /-li ti
 i l

i$  í
 l

i
$   l   
4      
t
   ill


" l  t 
 
t 

 l iit li  i
:

± 5
: it
6"   t  li  i
 i il  7il ti


± 6t   Bil : -li  i!   i( l it %  i


 t  li  i


± 
: -li  i
    li  i
  *  

  

 
 ,  it
  M 
± 6
 i lt
: i l
l i 
 l til
l  l
 i
 M
il 
7il ti
 M   ti
  t ti   

 
 
 l li  i

 l 
i
t il

± 6t  t: li  i!  


it
i% l
   
   li  i! 
   
l
li% 
 
 l4  i   
 j
 
í  i
)

O c  OOc 

2 %   l itl i! 


 

 
  l
 
 t   i   li  i! i 

t i l tíi  li  i! ll

 "l  i
it
   
 $ l  
t!   i 
l
 
li%

 t  l li  i!

  ll
j t 
 5
 
     l iit tll  ii 
 
  - i
±
8 

 t


 l   t
 l 
 lt
 i
il  l     l ti
 
 t

 
   l i%i  


 it  l  t l i 
 

 l #i  
iili
i
il 9-li ti
:

-
ti i!  

t   l
 i t ti
  
 t
 *ltill, i
il  t

t
:

± iti
±B -li ti
: ltill     li  i!
 l
j t

 i!

± 0 " -li ti


: ltill   li  i
   
l
t
 i

0

±  B -li ti


: ltill   ll li  i
 
  it
 l l t

B *

i


t t
,
± 2tilit -li ti
: ltill   li  i
 ti
it *B
l$ M$ i 
,

± 7i;B -li ti


: ltill   li  i
 ti
7it±
t
l
 6l  
li  i
  ill

± i
±B -li ti
: ltill 
 t
      
li% l

 


  t
 i  j l
l i
 
 7i±B -li ti
 "l t
 l ltill l
t t 
   !i
 tt
il * i i >,

-
ti i! 
 i  l 
    
  l l 
 t
  i  i!:
2 %
lt
l 
t i
  
  l it %  5
:
-
ti i!  
   ii l


t l 
 t
:

"l

 l
  i
 l 
 t
: 
 t  t

 l
 l t
  t it 
t

 t





 t
 
 l:
± Mi;
 t
-lt:   
 l ti!  
i l 
  $ l% l


t
l
    it  
) 7
$ l 
t l  l
   t 

l
#i
 l
       l% l
t
l
 t  it

± Mi;
 t
7i
t
ll :   

t   ii l
 l t
  l it 

  
t  l 
tll <
  í l
 t
  l i 

7it  t: 7it  l  t l i


  l l



7it !i
:

B   =  it:  i
 


± Bil:  i! 
il t

 t


± Bil > 0
:
il  j t t

 t


± 6
: 
i l 
 t


± "it
: it
 
l
l it
 !i


2 % li  l it %  



 l


t  
 t

il 
 l 
 t
i
   ll
l 
  9Bil  0
:  l      it 7



  

  
ti i!  j t  l li  i!  l i l


     l tll  l
i
  t
í 
l 
 ii
 i l
  
t!
=
 l 
  l li  i! <

    l  i il   l 
  
  
li  i
   l i 
   t 
  j t  
l
 t
i l
 

t!  =


i
   t
l it  *ll $ M), t  li  i!    $  l

   
 l t
$ l  !i  %  l j t
  

l 9 i  : %

  t j l

 íti
l   l t
 " l t
li  
 l 

   l
t
 l li  i!     %      i    l  i


!i
:

" % 
 ii
l
 l t
   i
  t

t
l
 it   it
  
 t  li  i! "    it
:

± "tit: 2   l títl



t    i l  i
 it
%  l 
  2
#lti    l l  i
 
  
li%

±  
 tt
: 
 l  i
it
 i   
 

± 6 : 3
t  
 jt

 l tit  l

l  i
l l 
t!

± B
t!:
l l j t 
 l ?t

 l


± 6   

: i   l it %    
 l li  i!  


l 
  l  i
 ii i! l
t
l
$ Mi;
 t
7i
t
ll   (i
 l
iit lí:

w 
 
 
?

 ? 
    ??  ?

??????? 

?????? ! ? "

??????"# ?"#$ 

& & ?'  "(?)?? 

& & ?'  "(?)? ! ? "

& & ?'  "(?)?"# ?"#$ 

*?'+ )?,$ ?' )?



IBOutlet sirve para indicar al compilador que este elemento lo enlazaremos en la herramienta Interface
Builder.

Solo necesitamos la etiqueta saludo, el campo de texto para capturar el nombre y la imagen a mostrar
cuando saludemos.

A continuación definimos las propiedades de los elementos para facilitar el acceso a las mismos. Es decir,
en Objective-C el acceso a los métodos o propiedades de las clases se realiza entre corchetes, con estas
propiedades podremos acceder por puntos ahorrándonos código.

Lo último que haremos será definir la cabecera del método que lanzará el botón. Para ello, y por defecto,
recibe un objeto Id y devuelve un IBAction (recordar, todo lo que comience por IB serán acciones que
enlazaremos con la herramienta Interface Builder).

Implementación: La idea es que una vez que el usuario haya introducido su nombre pulse el botón y
aparezca un saludo en forma de etiqueta junto con una imagen.

Para ello añadimos el siguiente código al archivo de implementación Mi_ProyectoViewController.m:

-"& ?. 
    /0.

"&"  ? 
    

?
 01 ? (? "(?"#$ 

*?'+ )?,$ ?' )??

?????? / ?2?34$$##50! "  .6 ?


7 888.( "/ 9

??????"#$ /0?2?!+$:

*?') !$0 ;'  ! ?)?0 !?

???????'0 !?22?  ")

????????????3 "#!;&  9

??????<:$ 

clickSaludo es el método que se lanzará cuando pulsemos en botón. Como veis captura el texto y lo
muestra en la etiqueta antes definida mostrando además una imagen.

El método textFieldShould<eturn es para que al pulsar ³done´ cuando terminamos de introducir nuestro
nombre desaparezca el teclado. Por omisión no desaparece.

Por último, insertaremos los archivos correspondientes a las imágenes que necesitamos:

- Background.png : Imagen de fondo.

- Hello.png: Imagen que usaremos como saludo.

- Icon.png: Nuestro icono de la aplicación.

Los seleccionamos desde el finder y los arrastramos hasta la carpeta <esources de nuestro proyecto. Nos
aparecerá una pantalla confirmando si deseamos enlazar los archivos al proyecto. Pulsamos en ³Add´ y
con esto termina la parte de Xcode.
i(
 l it %:

  t  !i
l  
 
lt $ 
  
  ii l it %

   % $ l 
 
    i  l  i
Mi;
 t
7i
t
ll i t
l
l

  i
 "t  i
 l  i l it  t

t
l


-
ti i!  j t  l    it    
  t
 tt
il : 6t  
Bil 

  t t  t   i    i i


 l    $ ?i  
i   l

i

  
 t
t t

 l     i    i!

t ?  t  t  
 ill  it %  i  l tí
  
 !i

 
    ll

  %   
t! 
  t i  il t / lí  !i
 
l
ii  
i i!
  t
 -


 i l
 il     it %   l i 

 i%i       ii 
 l


t  i 
tt    i
i

7it: "t

t  l
 l t  
  l i
 -í  
 i( 
 l it %

+il
  : jt

l 
t
l l it " t 
t

t
l

Mi;
 t
7i
t
ll 

-t it
: -t it
 l
jt
 l i



i  : i  í 
jt
 jt

   i i!: 
t
$ tit)

B
$  
  l
  " % 
  t 
l


t   i
$ 

:

± 6   

: "li
 l
jt
6  7i  l
 t 
  l t
" l t 96  7i -tt it:$ li


l
  96 : l i  B 4


± itl
 ti i! l 
 : "li
 l
jt
l     t 
:
±  
 tt

 l  i
it
 i  l 
 : l i

 t+il
± B
t!:  ti
<
 Btt

± l
:?"tit  í
± 6    l l
:  ti
6  7i 
i  l i  9=ll
:

i i


 l i   

 l i
 
 t i? l 
i 9=i:
M i$ 
ti i! l% 
 l it %
 l !i
   ll
$ l i

 +il   
ti
l
l 
t! t l  t 
 l t!  i l


t i(


-
 t

 l


t 
l
l
 

 ll
  
 ii
 l !i


i 
l%
 l  
 tt
:
"l%
 l tit  í:

"l%
 l i  l l
:
  l% l 
t!
 l ?t

 
 l iit: li 4 
  l t!
 l t l t l
i
 
    t

 l
 t
 l i


 l 
t! 
 l t l l
 
 li 4

  9
  2 6i:  l
 t 
  i +il@  l i

9 li 4l
:

-
$    t
t l
 %  l it
 i l 
 $    l  i! 
i l t
  l !i
 it
  t

t
l
 l 9lt: l  
 tt

  ll
l
l%
  l  
 tt
 i t

t
l
:

#lti
$   
i  i

 t  li  i! l i

 l  i
96
lit: t

5
 "l  
96
: l

lt

 l 
   l i    
 (i 


 t
 
 t i
l 
ll
l 
 t
 -
 
l

  
 l
   ll
$ 
%  
l  i
 6t   Bil $ 
l
  5
  l
 l Bi  0
A
 i? t i
il t tt
il  
t
i
:

7i
.:6t
 i! l 

 i  3i 4ti 

"

  t
 
 
  l iit tt
ilAA

También podría gustarte