36
Curso de Iniciación a la Programación del iPhone SDK con Objective-C Pablo Romeu UCH-CEU Pedro Cid - Nabbel Moncada, Julio 2010

Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

Embed Size (px)

Citation preview

Page 1: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 1/36

Curso de Iniciación a la

Programación del iPhone SDK 

con Objective-C 

Pablo Romeu – UCH-CEUPedro Cid - Nabbel

Moncada, Julio 2010

Page 2: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 2/36

2

Presentación

• Pablo Romeu

 – Profesor Colaborador UCH-CEU

• Pedro Cid

 – Programador iPhone SDK – Perteneciente a http://www.nabbel.es/

Page 3: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 3/36

3

Presentación

• Fechas: Del 9 al 16 de julio de 2010

• Horario: 9 – 14h

• Dos sesiones por día

• 30 horas• Lugar: Aula Imac's Edificio Beato Luis Campos Górriz, CEU-

UCH (Alfara del Patriarca)

• 3 CLC para estudiantes CEU

• IMPORTANTE: Firmar asis tenc ia para obtener cert i f ic ado 

Page 4: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 4/36

4

¿Qué voy a aprender?

• Lo que vas a aprender:

 – Utilizar las herramientas del iPhone SDK

 – Entender la sintaxis de Objective-C

 – El modelo MVC

 – Muchas de las funcionalidades del SDK

 – Moverte por la documentación para obtener ayuda

 – Tema avanzado a tu elecc ión 

Page 5: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 5/36

5

¿Qué voy a aprender?

• Lo que NO vas a aprender:

 – Programación Orientada a Objetos (lo

presuponemos) – Conceptos Avanzados (no tenemos

tiempo)

¿Curso Avanzado para la próxima edición?

Page 6: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 6/36

6

¿Qué seré capaz de hacer?

• Trataremos de poner ejemplos de todo

• Podrás realizar tus propias aplicaciones

sencillas• Podrás utilizar la documentación para

aprender a hacer aplicaciones más

avanzadas

Page 7: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 7/36

7

Algunas Cuestiones

• El tiempo es reducido (30 horas en 6 días)

 – Poco tiempo para practicar 

 –  Aprovechar el tiempo al 150% (se ruegan descansos

cortos)• Seguiremos el modelo de clase de la Univers idad de 

Stanfor d. (http ://www.stanfo rd.edu/class /cs193p/cgi- 

bin/ index.php) 

• Se recomienda encarecidamente mirar la documentación de

continuo.

http: / /developer.apple.com /ipho ne/l ibrary/navigat ion/ inde 

x.html 

Page 8: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 8/36

8

Algunas Cuestiones

Y la más importante… 

PREGUNTAD 

Page 9: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 9/36

9

Presentación

DUDAS

Page 10: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 10/36

10

Primera Sesión

• Pablo Romeu:

 – Introducción al esquema de Licencias, AppStore, etc.

 – Introducción al iPhone SDK

• Xcode• Interface Builder 

• Simulador 

 – Introducción a Objective-C

Page 11: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 11/36

11

Primera Sesión

• Pablo Romeu: 

 – Introd ucc ión al esquema de Licencias, AppStore, etc.

 – Introducción al iPhone SDK

• Xcode• Interface Builder 

• Simulador 

 – Introducción a Objective-C

Page 12: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 12/36

12

Introducción al esquema de Licencias, AppStore,etc.

• “¿Qué debo de hacer para publicar una App?”  

 – Desarrollar Apps es gratuito, publicarlas no.

 – Modelos de licencia de desarrollo:

• Pública: 99$ - 100 dispositivos TEST y ad-hoc• Privada: 299$ - Entidad de más de 500 empleados

• Universitaria: Gratis – 200 dispositivos TEST

Page 13: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 13/36

13

Introducción al esquema de Licencias, AppStore,etc.

University Standard Enterprise

 Acceso a Betas No Sí Sí

Testeo endispositivos

200 100 ? (+ 500)

Instalación endispositivos

No Sí Sí

Publicar en AppStore

No Sí No

Precio Gratis 99$/año 299$/año

Page 14: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 14/36

14

Introducción al esquema de Licencias, AppStore,etc.

• “¿Y cuanto me voy a sacar por cada programa?”  

 – Si es gratis, nadie saca nada (ni te cobran)

• Puedes poner anuncios con iAd (y sacar beneficio por 

click) – Si es de pago 30% para Apple y el 70% para el

desarrollador 

 –  Además, están las compras In-App

Page 15: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 15/36

15

Introducción al esquema de Licencias, AppStore,etc.

• “Estoy preparado… ¿cómo publico una aplicación?”  

 – Se utiliza iTunes Connect : 

• Establecer usuarios: Admin, técnico, finanzas, etc.

• Firmar Contrato.

• Proveer información de la aplicación: nombre,

screenshots, palabras clave, rating, etc.

• Enviar … 

• Y rezar para que la aprueben ;) – 90 y muchos % son aprobadas

Page 16: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 16/36

16

Introducción al esquema de Licencias, AppStore,etc.

• “Bueno, pero antes tendré que probarla”: 

 – Simulador: No es necesaria licencia.

 – Sistema de instalación Ad-Hoc (Test):

• Se utiliza el iPhone Prov ision ing Portal .• Mediante certificados.

•  Apple firma la aplicación y así se asegura que no se

sobrepasa el número de dispositivos.

Page 17: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 17/36

17

Introducción al esquema de Licencias, AppStore,etc.

• Recapitulando 

 – Licencias: Standard, Enterprise, University

 – Publicar en AppStore: Usuarios, Contratos, Enviar 

información y rezar para que esperar que aprueben la app.

 – Beneficios: Free (ni para ti ni para mi), iAd, InApp, de pago

(70% para nosotros – 30% para Apple)

 – Instalación en dispositivos: mediante certificados. Limitado.

Page 18: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 18/36

18

Primera Sesión

• Pablo Romeu:

 – Introducción al esquema de Licencias, AppStore, etc.

 – Introd ucc ión al iPhone SDK 

• Xcode• Interface Builder 

• Simulador 

 – Introducción a Objective-C

Page 19: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 19/36

19

Introdu cc ión al iPhone SDK 

• Se divide en varias partes, las más interesantes son: 

• Xcode

• Interface Builder 

• Simulador 

• Instruments

NOTA: parece ser que en la próxima versión, los primeros

vendrán integrados.

Page 20: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 20/36

20

Introdu cc ión al iPhone SDK 

• Xcode 

• Interfaz gráfico de programación

• Se utiliza tanto para Mac OS X como para iOS

• Tiene algunas facilidades muy interesates comoautocompletado de información, ayuda, etc.

Page 21: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 21/36

21

Introdu cc ión al iPhone SDK 

Demo de XCODE 

(ab rid lo voso tros también)  

Page 22: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 22/36

22

Introdu cc ión al iPhone SDK 

• Interface Bui lder 

• Interfaz gráfico de diseño

• Nos permite diseñar la vista de la aplicación

•  Además, permite asignar gráficamente qué métodos(funciones) se ejecutarán dado un determinado evento

sobre un objeto de la vista

• Ej: ¿Qué función ejecutar al pulsar un botón? ¿Y al

mover un slider?

Page 23: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 23/36

23

Introdu cc ión al iPhone SDK 

Demo de IB 

(ab rid lo voso tros también)  

Page 24: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 24/36

24

Introdu cc ión al iPhone SDK 

• Simulador 

• Permite probar programas

• Hay algunas cosas que NO puede probar (ej. GPS)

• Inst ruments: 

• Permite hacer profiling de programas.

• Comprobar rendimiento, memory leaks, etc.

Page 25: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 25/36

25

Introdu cc ión al iPhone SDK 

Demo de Simu lado r 

(ab rid lo voso tros también)  

Page 26: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 26/36

26

Primera Sesión

• Pablo Romeu: 

 – Introducción al esquema de Licencias, AppStore, etc.

 – Introducción al iPhone SDK

• Xcode• Interface Builder 

• Simulador 

 – Introd ucc ión a Object ive-C 

Page 27: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 27/36

27

Introdu cc ión a Object ive-C 

 – Lenguaje Orientado a Objetos

 – Superconjunto de C

• Cualquier cosa hecha en C funciona!!!

 – Sintaxis –supuestamente- clara y simple. – Como todo, tiene ventajas:

• Cosas que nos hacen más fácil la vida (@syntethize)

• Cosas que nos la complican Gestión de memoria (en

iOS)

Page 28: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 28/36

28

Introdu cc ión a Object ive-C 

 – MAXIMA SUPREMA : En Objective-C “[]” = “.” 

 – Invocar un método:

• miObjeto.miMétodo;

• Es lo mismo que: [miObjeto miMétodo];

 – RECOMENDACIÓN: Utilizar sintaxis propia de Objective-C.

O sea “[….];” 

 – Hay alguna excepción

Page 29: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 29/36

29

Introdu cc ión a Object ive-C 

 – Crear un ob jeto e Ins tanciar lo: 

• MiClase *var = [[MiClase alloc] init];

• Miclase es el nombre de la clase

• *var es la referencia a nuestro objeto

•  Alloc reserva la memoria para un objeto de tamaño

MiClase

• Init llama al constructor/inicializador de la clase MiClase

Page 30: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 30/36

30

Introdu cc ión a Object ive-C 

 – L lam ar a un método : 

• Sin argumentos: [MiClase miMetodo];

• Con un argumento: [MiClase miMetodo: arg1];

• Con más de un argumento: [MiClase miMetodo: arg1argumento2: arg2];

• (argumento2 es el nombre que se ha usado en la

definición de miMetodo) 

Page 31: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 31/36

31

Introdu cc ión a Object ive-C 

 – Organización del código y superclases: 

• Como en otros lenguajes, tiene ficheros de cabecera

(ficheros .h) y de implementación (.m)

• Las clases heredan siempre de otra clase, al menos de la

clase genérica NSObject

• Todos los objetos genéricos del lenguaje empiezan por 

NS (NSString, por ejemplo)

• Los objetos de Interfaz de usuario suelen empezar por UI

(UIButton, por ejemplo)

Page 32: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 32/36

32

Introdu cc ión a Object ive-C 

@interface MiClase: SuperClase {

NSString *var1;NSString *var2;}@property (nonatomic, copy) NSString *var1;@property (nonatomic, copy) NSString *var2;

- (void) miMetodo;- (void) miMetodo: (ClaseA *)arg1;- (void) miMetodo: (ClaseA *) arg1 argumento2:(ClaseA*)arg2;+ (void) miMetodoClase;

@end

Page 33: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 33/36

33

Introdu cc ión a Object ive-C 

 – En el ejemplo anter ior : 

• Los métodos con + delante son de clase. NO

NECESITAN UNA INSTANCIA PARA EJECUTARSE

• Los métodos con – delante son de instancia.

NECESITAN un objeto.

• Enseguida vemos los “property” y los “synthesize”. 

Veamos un ejemplo de implementación

Page 34: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 34/36

34

Introdu cc ión a Object ive-C 

#import "MiClase.h"

@implementation MiClase@synthesize var1;@synthesize var2;- (void) miMetodo {

´ // hacer algo con alguna variable de la clase}+ (void) miMetodoClase {return @“Hola”; 

}@end

Page 35: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 35/36

35

Introdu cc ión a Object ive-C 

 – En el ejemplo anter ior : 

• Tenemos dos métodos implementados.

• El @ de @”Hola” indica una constante

• Tenemos implementados dos @synthesize:

 – Los @property y @synthesize son directivas que le

indican al compilador que queremos que genere

aut omátic amente un “getter” y un “setter”. 

 – Cuando se declara una Property, se establecen

modificadores

Page 36: Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

7/16/2019 Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion

http://slidepdf.com/reader/full/curso-de-iniciacion-a-la-programacion-del-iphone-sdk-con-objective-c-1- 36/36

36

Introdu cc ión a Object ive-C 

 – Modif icadores de u na prop er ty : 

•  Assign: get devuelve una variable y set hace una

asignación simple.

• Copy: get y set comprueban que objeto no nil. Set hará

una copia antes de liberar 

• Nonatomic: la variable no necesita ser atómica

• Retain: funciona igual que assign

Lo veremos en gest ión de memor ia