Iphone

291 views

Published on

Objective C

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
291
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Iphone

  1. 1. Objective-C y laprogramación en iPhone Programación Avanzada
  2. 2. Contenido  Que es Objective-C  Características del lenguaje  Semejanzas con Java  iPhone  Cococa Touch  Ejemplos
  3. 3. Que es Objective-C  Es una extensión de C (compatible hacia atrás) para hacerlo orientado a objetos, basado en Smaltalk.  Mas limpio, pequeño y rápido de aprender que C++.  Lenguaje utilizado por Mac OS X.  No esta estandarizado por ningún organismo internacional, Apple y NEXTSTEP son quienes han contribuido en crear este lenguaje. Ambos trabajan en mantener y mejorarlo.
  4. 4. Características  Es un lenguaje muy dinámico. Muchas decisiones se toman en tiempo de ejecución.  5 tipos de dinamismo:   Memoria Dinámica. Los objetos siempre se crean en memoria dinámica.   Tipos dinámicos. El runtime se encarga detecta y usa el tipo de variables   Introspección. Podemos conocer la estructura de un objeto en tiempo de ejecución.   Enlace dinámico. Envío de mensajes por llamada a función (Polimorfismo). Se encarga el runtime.   Carga dinámica. Cargar clases en función de su uso. Hacen programas extensibles (Plug-ins)
  5. 5. Clases  Consta de una interface (.h) y una implementación (.m).  Las clases por lo general derivan de NSObject, para poder usar las ventajas del runtime de Objective-C. Java nos obliga a ello.  Las variables a diferencia de C++ deben ser punteros a objetos. Aquí no existe variables de clase (static). Las variables de instancia, de clase y módulos pueden tener el mismo nombre.
  6. 6. Ejemplo de interface
  7. 7. Ejemplo de implementación
  8. 8. Instanciar objetos  Se debe llamar a los métodos alloc e init:   Punto *p = [[Punto alloc] init]  Alloc reserva memoria.  Init es el constructor, inicializa las variables de instancia  También se podría utilizar new ya que ambas operaciones son muy comunes.  Tipos dinámicos (punteros): id p = [Punto new]  Para liberar objetos: [p release]
  9. 9. Métodos  Nivel. + para métodos de clases, y – para métodos de instancia  Tipo de retorno, si tiene, entre paréntesis. Por defecto retorna id.  Nombre.  Parámetros. Hereda de Smalltalk. Tantos parámetros como haya. A los parámetros además del tipo y y variable se puede etiquetar-> Código mejor documentado.Ej: [pedido anadeCliente:1 nombre:"Juan" edad:23 saldo:260];
  10. 10. Herencia  Todas las clases derivan de la clase base NSObject, o de la clase de GNU Object. No se recomienda hacer clases base.  Operador self y super = que this y super de java.  Podemos modificar self al contrario que this que es de solo lectura. Es muy común ver:
  11. 11. Métodos factory  El compilador de Objective-C crea objetos que representan clases, esto proporciona grandes ventajas a la hora de crear patrones de diseño.  Métodos que combinan creación e iniciación y empiezan por el nombre +clase… Por ejemplo NSString posee:   + (id)stringWithCString:(const char*)cString encoding:(NSStringEncoding)enc  Útil cuando la creación depende de la iniciación. Ej: no se conoce la memoria a reservar hasta que no se conoce que fichero se quiere leer
  12. 12. Gestión de memoria  Gestión de memoria manual. Por cuenta del programador como C++  Recolector de basura como Java. Penaliza el rendimiento. Disponible en Leopard  Mantener la cuenta de referencias de un objeto. Necesita la colaboración del programador. retain incrementa la cuenta, release la decrementa y dealloc libera.
  13. 13. Categorías  Permiten modificar una clase aunque no tengamos el código. Se diferencia con la herencia en que nos permite modificar nodos interiores de la jerarquía de clases. Usos:   Para clases grandes, particionarlas. Reparte trabajo tanto para el compilador como para los programadores   Añadir nuevos métodos a clases de fabricantes. Ej: métodos de búsqueda para NSArray.   Diferenciar API privada y API pública. Apple lo hace con los Framework destinados al SDK para iPhone.   Declarar protocolos informales.
  14. 14. Protocolos  Declaran métodos no asociados con ninguna clase. Cualquier clase los puede implementar. Ej en interfaz gráfica:   - (void)mouseDown:(NSEvent*)theEvent;   - (void)mouseDragged:(NSEvent*)theEvent;   - (void)mouseUp:(NSEvent*)theEvent;  Separa jerarquía de clases con funcionalidad común.@interface Punto : NSObject <Imprimible, Dibujable>
  15. 15. Propiedades  Se introdujo a partir de la versión de Leopard de Mac OS X.  Consiste en la definición de métodos ‘get’ y ‘set’.  Estas ayudan a mejorar la productividad del programador. Además permiten personalizar la forma de acceso a estas.  Ej: En la interface: @property(readonly) NSInteger x; en la implementación: @synthesize x; esta directiva nos garantiza robustez en accesos concurrentes.  Otros modificadores: retain, readwrite, nonatomic, etc
  16. 16. Introducción a la Programación eniPhone  Primer dispositivo móvil de Apple.  Utiliza el sistema operativo iPhone OS, construido desde el conocimiento y tecnología de Mac OS X.  Además incorpora acelerómetro, localización por GPS, Cámara e interfaz Multi-touch.
  17. 17. Características  Eventos Multi-Touch   Renderizado de gráficos 2D y 3D (OpenGL)  Seguridad con encriptación, certificados, etc.   Reproducción y grabación de audio  Internacionalización de Software   Acelerómetro  Comunicación entre   GPS aplicaciones usando esquemas URL.   Cámara  Hilos, puertos, E/S estándar   Base de datos SQLite, etc.  Tipos de datos básicos como colecciones
  18. 18. Capas iPhone OS  Tiene un conjunto de capas, la mas baja servicios fundamentales, capas superiores, servicios y tecnologías mas sofisticadas. • Core OS. Contiene el Kernel, sistema de archivos, infraestructura de red, seguridad. • Core Services. Sockets, SQLite, threads • Media. Gráficos 2D, 3D, audio, video(Quartz, OpenGL, Core Animation). • Cocoa Touch. Interfaz gráfica (UIKit), Foundation Framework
  19. 19. Cocoa Touch  Ya existente en Mac OS X, añade características para la tecnología multi-touch   UIKit. Proporciona los objetos que muestra una aplicación en su ‘Interfaz de Usuario’, manejo de eventos y gráficos. Soporta además código para el manejo del acelerómetro, la cámara, la librería de fotos, etc.   Foundation Framework. Define el acceso y manejo de objetos, provee acceso a los tipos de datos primitivos, colecciones y servicios del sistema operativo.
  20. 20. Proceso de desarrollo  Tamaño de la pantalla. 480 x 320 pixeles. La interfaz se basa en vistas. Sistema de navegación  Memoria. Al tratarse de un móvil, memoria limitada. Cuando se agota la memoria se produce un evento el cual debe controlar el programador, en caso contrario se cerrara la aplicación.  Aplicaciones simultaneas. Solo se permite una aplicación ejecutándose. Cuando se produce una llamada o llega un SMS se cerrara. Responsabilidad de guardar el estado de la aplicación.
  21. 21. Estilo de aplicaciónAplicaciones productivas. Organización ymanipulación de la información. Rapidezfrente a diseño. Navegación de menús masgenerales a menús mas específicos. Utilidades. Minima acción del usuario, visualmente atractiva. Diferentes vista Pantalla completa. Riqueza para el mismo tipo de información, pero de visual. Videojuegos, música, video. diferentes objetos.
  22. 22. Ejemplos y proceso depublicación en App Store

×