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

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

description

Curso de Iniciación a la Programación del iPhone SDK con Objective-C. Pablo Romeu – UCH-CEU Pedro Cid - Nabbel. Moncada, Julio 2010. Presentación. Pablo Romeu Profesor Colaborador UCH-CEU Pedro Cid Programador iPhone SDK Perteneciente a http://www.nabbel.es/. Presentación. - PowerPoint PPT Presentation

Transcript of Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

Curso de Iniciación a la Programación del iPhone SDK con Objective-CPablo Romeu – UCH-CEUPedro Cid - Nabbel

Moncada, Julio 2010

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

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

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 asistencia para obtener certificado

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

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 elección

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

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

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

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 Universidad de

Stanford. (http://www.stanford.edu/class/cs193p/cgi-bin/index.php)

• Se recomienda encarecidamente mirar la documentación de continuo. http://developer.apple.com/iphone/library/navigation/index.html

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

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

9

Presentación

DUDAS

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

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

11

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 12: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

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

13

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

University Standard EnterpriseAcceso a Betas No Sí Sí

Testeo en dispositivos

200 100 ? (+ 500)

Instalación en dispositivos

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

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

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

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 Provisioning 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

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

18

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 19: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

19

Introducció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

20

Introducció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 como

autocompletado de información, ayuda, etc.

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

21

Introducción al iPhone SDK

Demo de XCODE

(abridlo vosotros también)

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

22

Introducción al iPhone SDK

• Interface Builder• 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

23

Introducción al iPhone SDK

Demo de IB

(abridlo vosotros también)

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

24

Introducción al iPhone SDK

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

• Instruments:• 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

25

Introducción al iPhone SDK

Demo de Simulador

(abridlo vosotros también)

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

26

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 27: Curso de Iniciación a la Programación del iPhone SDK con Objective-C

27

Introducción a Objective-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

28

Introducción a Objective-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

29

Introducción a Objective-C

– Crear un objeto e Instanciarlo:• 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

30

Introducción a Objective-C

– Llamar a un método:• Sin argumentos: [MiClase miMetodo];• Con un argumento: [MiClase miMetodo: arg1];• Con más de un argumento: [MiClase miMetodo: arg1

argumento2: 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

31

Introducción a Objective-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

32

Introducción a Objective-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

33

Introducción a Objective-C

– En el ejemplo anterior:• 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

34

Introducción a Objective-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

35

Introducción a Objective-C

– En el ejemplo anterior:• 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 automáticamente 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

36

Introducción a Objective-C

– Modificadores de una property:• 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 gestión de memoria