Detalle del libro
Ver Índice
Agradecimientos
Sobre los autores
Introducción
Requisitos previos
Nuestra filosofía de enseñanza
Cómo usar este libro
La organización del libro
Opciones de estilo
Convenciones
Código fuente
Requisitos de hardware y software, y el proceso de instalación en los dispositivos
1. Una aplicación sencilla
Cómo crear un proyecto en Xcode
Manejo básico de Interface Builder
Model-View-Controller
Declaraciones
Declaración de variables de instancia
Declaración de métodos
Cómo realizar las conexiones
Configuración de los punteros
Configuración de objetivos y acciones
Resumen de conexiones
Implementación de los métodos
Compilar y ejecutar la aplicación en el Simulator
Programación orientada a eventos
Distribución de las aplicaciones
Los iconos de las aplicaciones
Imágenes por defecto
2. Objective-C
Objetos
Uso de las instancias
Desarrollo de la herramienta RandomPossessions
NSArray y NSMutableArray
Creación de subclases en Objective-C
Variables de instancia
Descriptores de acceso y propiedades
Métodos de instancia
Inicializadores
Self
Super
Cadena del inicializador
Métodos de clase
Las excepciones y la ventana de consola
Novedades en Objective-C 2.0
3. Gestión de memoria
Conceptos básicos en gestión de memoria
Gestión de memoria en lenguaje C
Gestión de memoria orientada a objetos
Recuento de referencias
Uso de retain counts
Cómo evitar las pérdidas de memoria mediante la liberación automática (autorelease)
Gestión de memoria en descriptores de acceso y propiedades
Reglas de retain count
La gestión de memoria en la aplicación RandomPossessions
4. El mecanismo de delegación y Core Location
Delegación
La aplicación "Whereami". Preliminares
Utilización de los frameworks
CoreLocation
Cómo recibir actualizaciones de estado desde CLLocationManager
Cómo liberar las variables de instancia de un controlador
Desafío: Orientación del dispositivo
Los errores del compilador y del enlazador (linker)
Protocolos
5. MapKit y Text Input
Diagramas de objetos
El framework MapKit
Propiedades de la interfaz
La vida como delegado de MapView
Nuestra propia clase de MKAnnotation
Etiquetado de localizaciones
Entrada de texto y el primer respondedor
Conformación final
Desafío: Extras de las anotaciones
Desafío: Codificación geográfica inversa
Desafío: Cambiar el tipo de mapa
Cómo cambiar el nombre de una aplicación
6. Creación de subclases de UIView
Creación de una vista personalizada
El método drawRect
Cómo crear una instancia de UIView
Cómo añadir texto y sombras
Cómo utilizar UIScrollView
Cómo habilitar la opción de ampliar la imagen
Cómo ocultar la barra de estado
Desafío: Los colores
Ciclos retain
Redibujado de las vistas
7. Controladores de las vistas
Controladores de las vistas y archivos XIB
Cómo utilizar los controladores de vistas
Creación del controlador UITabBarController
Cómo crear controladores de vistas y elementos para la TabBar
Creación de las vistas para los controladores de vistas
viewWillAppear
El ciclo de vida de un controlador de vistas
Desafío: Map Tab
Paging
8. El acelerómetro
Configuración del acelerómetro
Cómo obtener datos desde el acelerómetro
Orientación y escala de la aceleración
Cómo utilizar los datos procedentes del acelerómetro
Cómo suavizar los datos del acelerómetro
Detección de sacudidas
Desafío. Cambiar los colores
Frecuencia y filtrado de señales
9. Notificación y rotación
El centro de notificación
UIDevice Notifications
Autorotación
Cómo forzar el modo apaisado (Landscape mode)
Desafío: Notificaciones de proximidad
Cómo obviar la autorotación
10. UITableView y UITableViewController
Líneas maestras de la aplicación Homepwner
UITableViewController
Creación de subclases de UITableViewController
Origen de datos de UITableView
El protocolo UITableViewDataSource
UITableViewCells
Reutilización de la clase UITableViewCells
Desafío: Secciones
11. Modificación de UITableView
El modo de edición
Cómo eliminar filas
Cómo mover las filas
Cómo insertar filas
12. UINavigationController
UINavigationController
UINavigationBar
Un controlador UIViewController adicional
XIB y File's Owner
Configuración de ItemDetailViewController
Navegar con el controlador UINavigationController
Vistas que aparecen y desaparecen
Desafío: El teclado numérico
13. La cámara y el controlador UIPopoverController
ImageCache: Un singleton
NSDictionary
Singleton
Mostrar imágenes. La clase UIImageView
El controlador UIImagePickerController y la toma de fotografías
UIPopoverController
Cómo crear y utilizar claves
Cómo retirar el teclado de la pantalla
Desafío: Eliminar una imagen
Cómo grabar vídeo
14. Cómo guardar y recuperar datos. La multitarea
Application Sandbox
Cómo guardar los datos en archivos. El proceso de archiving
Archivado de objetos
Cómo añadir soporte a la multitarea
Desarchivar los objetos
Transiciones entre estados en una aplicación
Escribir en disco con NSData
Desafío: Archivado en la aplicación Wherewasi
Operaciones de lectura y escritura en disco
Application Bundle
15. Gestión de los avisos de memoria baja
El manejo de los avisos de memoria baja
Avisos de memoria del controlador de vistas
Simular avisos de memoria baja
16. Creación de subclases de UITableViewCell
Creación de HomepwnerItemCell
Cómo crear subvistas
La apariencia de las subvistas y el método layoutSubviews
Uso de la celda personalizada
Manipulación de imágenes
Desafío: Vistas accesorias
Desafío: Hagámoslo bonito
17. Gestos Multi-Touch, UIResponder y la herramienta Instruments
Los eventos touch
Creación de la aplicación TouchTracker
Cómo se transforman los gestos Touch en líneas
La cadena de respondedores
Instruments
El instrumento Allocations
El instrumento Sampler
Desafío: Grabar y recuperar datos
Desafío: Círculos
UIControl
18. La capa Core Animation
Cómo crear una capa CALayer
Contenidos de la capa
Propiedades "animables" de forma implícita
Creación de contenido mediante código
Capas y vistas
Desafío: Capas con contenido dinámico
19. Control de la animación con CAAnimation
Objetos de animación
El tiempo gira con CABasicAnimation
Funciones de control de tiempos
Finalización de la animación
Hacemos latir la hora con CAKeyfr
Si bien es importante que cualquier programador principiante en el desarrollo de aplicaciones para iPhone & iPad comprenda a fondo los conceptos, no lo es menos que pueda aplicarlos con seguridad.
Con un enfoque que aúna teoría y práctica, este libro va dirigido al lector que necesita dominar todas las herramientas y técnicas de programación utilizadas en el desarrollo de aplicaciones compatibles con iPhone, iPad e iPod Touch.
En cada capítulo se desarrollan conceptos de programación que se ponen de inmediato en práctica. Se construyen verdaderas aplicaciones que están diseñadas y comprobadas con especial cuidado para que ilustren los conceptos asociados.
Con ellas podrá practicar y familiarizarse con las herramientas estándar de desarrollo: Xcode, Interface Builder e Instruments.Al enfoque práctico de aprendizaje se agrega la claridad y concisión con que se explican los conceptos.
Los códigos del libro original en inglés pueden descargarse de la página Web de Anaya Multimedia: www.anayamultimedia.es.