Professional Documents
Culture Documents
de la Universidad de Sevilla
Objetivos
Objetivos
• General
Objetivos
• General
• Introducir a programadores habituados a la POO
al desarrollo en el iPhone SDK.
Objetivos
• General
• Introducir a programadores habituados a la POO
al desarrollo en el iPhone SDK.
• Específicos de la 1ª Parte
Objetivos
• General
• Introducir a programadores habituados a la POO
al desarrollo en el iPhone SDK.
• Específicos de la 1ª Parte
• Sintaxis
Objetivos
• General
• Introducir a programadores habituados a la POO
al desarrollo en el iPhone SDK.
• Específicos de la 1ª Parte
• Sintaxis
• Interfaces e Implementaciones
Objetivos
• General
• Introducir a programadores habituados a la POO
al desarrollo en el iPhone SDK.
• Específicos de la 1ª Parte
• Sintaxis
• Interfaces e Implementaciones
• Gestión de Memoria (Punteros)
Objetivos
• General
• Introducir a programadores habituados a la POO
al desarrollo en el iPhone SDK.
• Específicos de la 1ª Parte
• Sintaxis
• Interfaces e Implementaciones
• Gestión de Memoria (Punteros)
• Clases comunes de Foundation Framework
Objetivos
• General
• Introducir a programadores habituados a la POO
al desarrollo en el iPhone SDK.
• Específicos de la 1ª Parte
• Sintaxis
• Interfaces e Implementaciones
• Gestión de Memoria (Punteros)
• Clases comunes de Foundation Framework
• La clase TwitStatus del proyecto GUMTwit
martes 12 de mayo de 2009
GUMUS Programación en iPhone OS 1
• Interfaz de 480x320px
• Interfaz de 480x320px
• Memoria RAM escasa, hay que
tener cuidado al programar.
• Interfaz de 480x320px
• Memoria RAM escasa, hay que
tener cuidado al programar.
• Una sola aplicación capta el foco,
las demás permanecen cerradas.
• Interfaz de 480x320px
• Memoria RAM escasa, hay que
tener cuidado al programar.
• Una sola aplicación capta el foco,
las demás permanecen cerradas.
• Hardware adicional
GPS,Acelerómetros,Teléfono.
• Interfaz de 480x320px
• Memoria RAM escasa, hay que
tener cuidado al programar.
• Una sola aplicación capta el foco,
las demás permanecen cerradas.
• Hardware adicional
GPS,Acelerómetros,Teléfono.
• Posibilidad de acceso a información
de la agenda, contactos, etc...
Objective-C 2.0
Objective-C 2.0
Foundation Framework
Objective-C 2.0
Foundation Framework
Objective-C 2.0
iPhone OS API
Foundation Framework
Objective-C 2.0
Objective-C 2.0
C de toda la vida + Ampliación a Objetos
void contarOvejas (int numero) {
int contador = 0;
char* mensaje = “por el pastor”;
while (contador < numero) { Sintaxis de una función
if (condicion) { en ANSI C
contador++;
} else {
fprintf(“rechazada %s”,mensaje);
}
}
}
martes 12 de mayo de 2009
GUMUS Programación en iPhone OS 1
Objective-C 2.0
Declaración de Métodos
Tipo Devuelto
2 Parámetros
De (-)instancia o
de (+)clase
Nombre del método:
listaPersonasMayoresDe:conResidenciaEn:
Llamada a Métodos
NSArray *respuesta;
respuesta = [objInstancia listaPersonasMayoresDe: 45 conResidenciaEn: @”Sevilla”];
Java
ArrayList respuesta;
respuesta = objInstancia.getListaPersonasMayores(45,”Sevilla”);
Uso de objetos
Java
LinkedList lista = new LinkedList();
lista.add(objeto1);
lista.set(4,objeto2);
lista.remove(lista.size()-1);
Las interfaces
Imports
nombre : Super
Variables
Directivas get/set
generan
Métodos
Metodo
martes 12 de mayo de 2009
GUMUS Programación en iPhone OS 1
Las implementaciones
Nombre
Directivas
@synthesize
generan
Métodos get/set
Cabecera Método
@property y @synthesize
• Son directivas de compilador que generan código
repetitivo por nosotros.
• Nos ahorran escribir métodos set y get
Interfaz
@property (readwrite,retain) NSNumber *numero;
readwrite copy
readonly assign
retain
Implementación
@synthesize numero;
martes 12 de mayo de 2009
GUMUS Programación en iPhone OS 1
Gestión de Memoria
• Todos los objetos en Objective-C vienen referenciados por su
puntero.
NSString *cadena = [[NSString alloc] init];
• * representa que la variable es una referencia a una dirección
de memoria en la cual está el contenido de cadena.
Gestión de Memoria
“Hola”
Memoria
*cadena1 *cadena2
Un cambio en cadena2 también cambia el contenido de cadena1
martes 12 de mayo de 2009
GUMUS Programación en iPhone OS 1
Gestión de Memoria
• La gestión de memoria tiene un papel primordial en
el código Obj-C.
• El seguimiento de las convenciones de código nos
ahorrará tiempo depurando errores.
• Debemos responsabilizarnos de ocupar(alloc+init) y
desocupar la memoria (release)
• Una mala gestión provoca errores en tiempo de
ejecución y pérdidas (leaks)
- (NSString *) devuelveCadena {
NSMutableString *cadena = [[NSMutableString] alloc] init];
[cadena appendWithString:@”Hola”];
[cadena autorelease];
return cadena;
}
¿Qué es Twitter?
¿Qué es Twitter?
• Sistema de microblogging.
¿Qué es Twitter?
• Sistema de microblogging.
• Tiene un API pública de desarrollo, basada en
servicios Web.
¿Qué es Twitter?
• Sistema de microblogging.
• Tiene un API pública de desarrollo, basada en
servicios Web.
• Enviaremos nuestras peticiones GET (HTTP) según el
API.
¿Qué es Twitter?
• Sistema de microblogging.
• Tiene un API pública de desarrollo, basada en
servicios Web.
• Enviaremos nuestras peticiones GET (HTTP) según el
API.
• Twitter nos responderá con archivos XML que
analizaremos en forma de árboles.
¿Qué es Twitter?
• Sistema de microblogging.
• Tiene un API pública de desarrollo, basada en
servicios Web.
• Enviaremos nuestras peticiones GET (HTTP) según el
API.
• Twitter nos responderá con archivos XML que
analizaremos en forma de árboles.
• La clase “Mágica” se encargará de hablar con Twitter
y darnos resultados en función de nuestro modelo.
Patrón MVC
Controlador
ViewController
Modelo Vista
TwitUser TwitLib
TwitStatus
martes 12 de mayo de 2009
GUMUS Programación en iPhone OS 1
TwitStatus
TwitStatus
- twit_id: NSNumber
- user: TwitUser
- text: NSString
- date: NSDate
- source: NSString
TwitUser
TwitUser
- user_id: NSNumber
- screen_name: NSString
- name: NSString
- location: NSString
- description: NSString