Curso de Iniciación a la Programación del iPhone SDK con Objective-C Pablo Romeu – UCH-CEU Pedro...

Post on 12-Feb-2015

7 views 0 download

Transcript of Curso de Iniciación a la Programación del iPhone SDK con Objective-C Pablo Romeu – UCH-CEU Pedro...

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

Pablo Romeu – UCH-CEUPedro Cid - Nabbel

Moncada, Julio 2010

2

Presentación

• Pablo Romeu– Profesor Colaborador UCH-CEU

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

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

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

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?

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

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

8

Algunas Cuestiones

Y la más importante…

PREGUNTAD

9

Presentación

DUDAS

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

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

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

13

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

University Standard Enterprise

Acceso 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

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

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

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.

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.

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

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.

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.

21

Introducción al iPhone SDK

Demo de XCODE

(abridlo vosotros también)

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?

23

Introducción al iPhone SDK

Demo de IB

(abridlo vosotros también)

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.

25

Introducción al iPhone SDK

Demo de Simulador

(abridlo vosotros también)

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

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)

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

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

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)

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)

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

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

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

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

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