390 likes | 566 Views
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.
E N D
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 • 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
¿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
¿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?
¿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
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
Algunas Cuestiones Y la más importante… PREGUNTAD
Presentación DUDAS
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
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
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
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
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
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.
Introducción al esquema de Licencias, AppStore, etc. • Recapitulando • Licencias: Standard, Enterprise, University • Publicar en AppStore: Usuarios, Contratos, Enviar información y rezar para queesperar 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.
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
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.
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.
Introducción al iPhone SDK Demo de XCODE (abridlo vosotros también)
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?
Introducción al iPhone SDK Demo de IB (abridlo vosotros también)
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.
Introducción al iPhone SDK Demo de Simulador (abridlo vosotros también)
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
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)
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
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
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)
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)
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
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
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