Curso de Iniciación a la Programación del iPhone SDK con Objective-C. 1 - Introduccion
-
Upload
renato-tarazona-f -
Category
Documents
-
view
26 -
download
0
Transcript of 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
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/
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
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
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?
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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.
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.
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)
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?
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)
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.
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)
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
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)
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
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
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)
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)
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
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
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
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
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