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

Post on 09-Mar-2016

39 views 3 download

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

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

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