Anda di halaman 1dari 36

Curso de Iniciacin a la Programacin del iPhone SDK con Objective-C

Pablo Romeu UCH-CEU Pedro Cid - Nabbel

Moncada, Julio 2010

Presentacin

Pablo Romeu
Profesor Colaborador UCH-CEU Pedro Cid Programador iPhone SDK Perteneciente a http://www.nabbel.es/

Presentacin

Fechas: Del 9 al 16 de julio de 2010


Horario: 9 14h Dos sesiones por da 30 horas Lugar: Aula Imac's Edificio Beato Luis Campos Grriz, CEUUCH (Alfara del Patriarca) 3 CLC para estudiantes CEU IMPORTANTE: Firmar asistencia para obtener certificado

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 documentacin para obtener ayuda

Tema avanzado a tu eleccin

Qu voy a aprender?

Lo que NO vas a aprender:


Programacin Orientada a Objetos (lo presuponemos) Conceptos Avanzados (no tenemos tiempo) Curso Avanzado para la prxima edicin?
5

Qu ser capaz de hacer?

Trataremos de poner ejemplos de todo


Podrs realizar tus propias aplicaciones sencillas Podrs utilizar la documentacin para aprender a hacer aplicaciones ms avanzadas

Algunas Cuestiones

El tiempo es reducido (30 horas en 6 das)


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/cgibin/index.php) Se recomienda encarecidamente mirar la documentacin de continuo. http://developer.apple.com/iphone/library/navigation/inde x.html
7

Algunas Cuestiones

Y la ms importante

PREGUNTAD
8

Presentacin

DUDAS

Primera Sesin

Pablo Romeu:
Introduccin al esquema de Licencias, AppStore, etc. Introduccin al iPhone SDK Xcode Interface Builder Simulador Introduccin a Objective-C

10

Primera Sesin

Pablo Romeu:
Introduccin al esquema de Licencias, AppStore, etc. Introduccin al iPhone SDK Xcode Interface Builder Simulador Introduccin a Objective-C

11

Introduccin 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: Pblica: 99$ - 100 dispositivos TEST y ad-hoc Privada: 299$ - Entidad de ms de 500 empleados Universitaria: Gratis 200 dispositivos TEST

12

Introduccin al esquema de Licencias, AppStore, etc.


University Acceso a Betas Testeo en dispositivos Instalacin en dispositivos Publicar en AppStore Precio No 200 No No Gratis Standard S 100 S S 99$/ao Enterprise S ? (+ 500) S No 299$/ao

13

Introduccin 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 Adems, estn las compras In-App

14

Introduccin al esquema de Licencias, AppStore, etc.

Estoy preparado cmo publico una aplicacin?


Se utiliza iTunes Connect: Establecer usuarios: Admin, tcnico, finanzas, etc. Firmar Contrato. Proveer informacin de la aplicacin: nombre, screenshots, palabras clave, rating, etc. Enviar

Y rezar para que la aprueben ;)


90 y muchos % son aprobadas

15

Introduccin al esquema de Licencias, AppStore, etc.

Bueno, pero antes tendr que probarla:


Simulador: No es necesaria licencia. Sistema de instalacin Ad-Hoc (Test): Se utiliza el iPhone Provisioning Portal. Mediante certificados. Apple firma la aplicacin y as se asegura que no se sobrepasa el nmero de dispositivos.

16

Introduccin al esquema de Licencias, AppStore, etc.

Recapitulando
Licencias: Standard, Enterprise, University Publicar en AppStore: Usuarios, Contratos, Enviar informacin 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)
Instalacin en dispositivos: mediante certificados. Limitado.

17

Primera Sesin

Pablo Romeu:
Introduccin al esquema de Licencias, AppStore, etc. Introduccin al iPhone SDK Xcode Interface Builder Simulador Introduccin a Objective-C

18

Introduccin al iPhone SDK

Se divide en varias partes, las ms interesantes son:


Xcode Interface Builder Simulador Instruments

NOTA: parece ser que en la prxima versin, los primeros vendrn integrados.

19

Introduccin al iPhone SDK

Xcode
Interfaz grfico de programacin Se utiliza tanto para Mac OS X como para iOS Tiene algunas facilidades muy interesates como autocompletado de informacin, ayuda, etc.

20

Introduccin al iPhone SDK

Demo de XCODE
(abridlo vosotros tambin)

21

Introduccin al iPhone SDK

Interface Builder
Interfaz grfico de diseo Nos permite disear la vista de la aplicacin Adems, permite asignar grficamente qu mtodos (funciones) se ejecutarn dado un determinado evento sobre un objeto de la vista Ej: Qu funcin ejecutar al pulsar un botn? Y al mover un slider?

22

Introduccin al iPhone SDK

Demo de IB
(abridlo vosotros tambin)

23

Introduccin 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.

24

Introduccin al iPhone SDK

Demo de Simulador
(abridlo vosotros tambin)

25

Primera Sesin

Pablo Romeu:
Introduccin al esquema de Licencias, AppStore, etc. Introduccin al iPhone SDK Xcode Interface Builder Simulador Introduccin a Objective-C

26

Introduccin 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 ms fcil la vida (@syntethize) Cosas que nos la complican Gestin de memoria (en iOS)

27

Introduccin a Objective-C

MAXIMA SUPREMA: En Objective-C [] = .


Invocar un mtodo: miObjeto.miMtodo; Es lo mismo que: [miObjeto miMtodo]; RECOMENDACIN: Utilizar sintaxis propia de Objective-C. O sea [.];

Hay alguna excepcin

28

Introduccin 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 tamao MiClase Init llama al constructor/inicializador de la clase MiClase

29

Introduccin a Objective-C

Llamar a un mtodo:
Sin argumentos: [MiClase miMetodo]; Con un argumento: [MiClase miMetodo: arg1]; Con ms de un argumento: [MiClase miMetodo: arg1 argumento2: arg2]; (argumento2 es el nombre que se ha usado en la definicin de miMetodo)

30

Introduccin a Objective-C

Organizacin del cdigo y superclases: Como en otros lenguajes, tiene ficheros de cabecera (ficheros .h) y de implementacin (.m) Las clases heredan siempre de otra clase, al menos de la clase genrica NSObject Todos los objetos genricos del lenguaje empiezan por NS (NSString, por ejemplo) Los objetos de Interfaz de usuario suelen empezar por UI (UIButton, por ejemplo)

31

Introduccin 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

32

Introduccin a Objective-C

En el ejemplo anterior: Los mtodos con + delante son de clase. NO NECESITAN UNA INSTANCIA PARA EJECUTARSE Los mtodos con delante son de instancia. NECESITAN un objeto. Enseguida vemos los property y los synthesize.

Veamos un ejemplo de implementacin

33

Introduccin 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
34

Introduccin a Objective-C

En el ejemplo anterior: Tenemos dos mtodos 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 automticamente un getter y un setter. Cuando se declara una Property, se establecen modificadores

35

Introduccin a Objective-C

Modificadores de una property: Assign: get devuelve una variable y set hace una asignacin simple. Copy: get y set comprueban que objeto no nil. Set har una copia antes de liberar Nonatomic: la variable no necesita ser atmica Retain: funciona igual que assign Lo veremos en gestin de memoria

36

Anda mungkin juga menyukai