El sitio web www.vuestroslibros.com utiliza cookies propias y de terceros para recopilar información que ayuda a optimizar su visita a sus páginas web.
No se utilizarán las cookies para recoger información de carácter personal. Usted puede permitir su uso o rechazarlo; también puede cambiar su configuración siempre que lo desee.
Encontrará mas información en nuestra política de Cookies.

ACEPTAR Leer más

 
iOS 6 | 9788441533622 | Portada

IOS 6

Desarrollo de aplicaciones

Rob Napier y Mugunth Kumar

Precio: 71.80 €

Añadir a la cesta

Datos técnicos

  • ISBN 9788441533622
  • Año Edición 2013
  • Páginas 624
  • Encuadernación Rústica
  • Idioma Español
 

Sinopsis

iOS es la plataforma de desarrollo más dinámica del mercado, y la nueva versión iOS 6 no hace sino añadir una nueva dimensión, más profunda, y muy atractiva para los desarrolladores. Con un conjunto extremadamente rico de herramientas, desde frameworks de alto nivel como UIKit hasta herramientas de más bajo nivel como Core Text. A menudo, existen varias formas de conseguir un objetivo. Como desarrollador, ¿cómo hará para elegir la herramienta correcta para el trabajo? Si está preparado para asumir la nueva versión de Apple y llevar su aplicación hasta los límites, éste es el libro que le llevará hasta allí. Le enseñará como diseñar, codificar y mantener las mejores aplicaciones posibles utilizando las mejores caracterís¬ticas disponibles. La mayor parte de este libro trata más por qué que solamente el cómo. Aprenderá tanto sobre los patrones de diseño y escribir código reutilizable como sobre sintaxis y nuevas arquitecturas de software. Centrado en iPhone 4, iPad 2 y los modelos superiores como el iPhone 4S, el iPhone 5 y el iPad con pantalla retina. No obstante la mayoría de los temas tratados en esta obra son aplicables al iPad original, iPod touch, iPhone 3GS y Apple TV.
Índice
Agradecimientos
Sobre los autores
Sobre el editor técnico
Introducción
Para quién es este libro
Qué trata este libro
Novedades del libro
Cómo se estructura este libro
Parte I: ¿Cuáles son las novedades?
Parte II: Sacar lo mejor de las herramientas cotidianas
Parte III: La herramienta adecuada para el trabajo
Parte IV: Superar los límites
Qué necesita para utilizar este libro
Encontrar documentación Apple
Convenciones
Código fuente
Parte I. ¿Cuáles son las novedades?
1. El material nuevo
Lo nuevo
Vistas de colección
Auto Layout
Conteo automático de referencias
In App Purchases Hosted Content
Framework para redes sociales
Conservación de estados en la interfaz de usuario
Otras características nuevas
Pass Kit
Recordatorios
Privacidad
Mostrar texto enriquecido
Resumen
Lecturas recomendadas
Documentación Apple
2. Sentirse cómodo con Xcode 4
Comenzar a conocer la nueva interfaz de usuario
Editor con pestañas
Cambios en los métodos abreviados de teclado
Editor de configuración del proyecto
Control de versión integrado
Espacios de trabajo
Todo en una ventana
Navegar por los navegadores
Navegador del proyecto
Navegador de símbolos
Navegador de búsqueda
Navegador de problemas
Navegador de depuración
Navegador de puntos de interrupción
Navegador de log
Ayuda de su asistente
Interface Builder integrado
Paneles Interface Builder
Generar código utilizando el Editor Assistant y el Interface Builder integrado
El compilador LLVM 3.0: una cita con el cerebro
El front-end Clang
¡Soy un error! Solucióname
Novedades en el compilador LLVM 4
Literales
NSString
NSNumber a partir de valores escalares
Literales para colecciones (NSArray y NSDictionary)
Acceso a las posiciones de NSArray y NSDictionary (operador Subscript)
Literales encapsulados
Literales y disponibilidad
Síntesis automática de variables de instancia
Git, sus versiones aquí
Sistema integrado de control de versiones Git
Editor Versions
Buenas prácticas con Git
Esquemas
¿Por qué los esquemas?
Piense en los esquemas como la implementación de sus intenciones
Crear un esquema
Compartir sus esquemas
Construya configuraciones que pueda comentar
Crear un archivo xcconfig
Refactorizar el archivo de configuración
Migración del código fuente a Objective-C ARC
Manejo de la herramienta Convert to Objective-C ARC
Organizer: el organizador de Xcode 4
Automatic Device Provisioning
Visualizar los logs de error y las sentencias de consola NSLog
Ver los datos de entorno de pruebas de las aplicaciones
Administrar repositorios
Acceder a sus archivos de aplicación
Visualizar Objective-C y documentación SDK
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
Blogs
Recursos Web
Parte II. Conseguir lo mejor de las herramientas cotidianas
3. El Objective-C de cada día
Convenciones de nombres
Automatic Reference Counting (ARC)
Propiedades
Atributos de propiedad
Buenas prácticas en el uso de propiedades
Variables de instancia privadas
Métodos descriptores de acceso (getters y setters)
Categorías y extensiones
+load
Datos de categorías utilizando referencias asociativas
Extensiones de clase
Protocolos formales e informales
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
4. Seguir avanzando: Patrones de diseño Cocoa
Comprender el patrón Modelo-Vista-Controlador
Utilizar clases modelo
Utilizar clases vista
Utilizar clases controlador
Delegados y fuentes de datos
Trabajar con el patrón Command
Utilizar target-action
Utilizar firmas de método e invocaciones
Utilizar trampolines
Utilizar undo (deshacer)
Trabajar con el patrón Observer
Trabajar con el patrón Singleton
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
5. Gestión de memoria con Objective-C ARC
Introducción a Objective-C ARC
Un poco de historia
Conteo de referencias automático frente a manual
¿Qué es ARC?
Cómo integrar código no ARC de terceras partes en nuestro proyecto ARC
Cómo integrar código ARC en nuestro proyecto no ARC
Código ARC en un framework
Poner a cero las referencias débiles
Calificadores de propiedad
__strong
__unsafe_unretained
__weak
__auto_releasing
ARC inicializa con nil las variables declaradas
Convenciones de nombres en Objective-C
Sobrescribir el comportamiento establecido de modo predeterminado
Puenteo gratuito
__bridge
__bridge_retained
__bridge_transfer
Aspectos internos de ARC
El compilador front-end
Optimizador ARC
Errores habituales en la migración a ARC
Soluciones alternativas en el uso de ARC
Ciclos de retención
Bloques y ARC
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
Blogs
6. Conseguir vistas correctas de tablas
Jerarquía de clase de UITableView
Comprender las vistas de tabla
UITableViewController
UITableViewCell
Agilizar el desplazamiento por las tablas
Unas palabras sobre rendimiento e Interface Builder
¿Utilizar o no Interface Builder?
UITableView con subvistas en una UITableViewCell personalizada
UITableView con una UITableViewCell predeterminada
UITableView con una UITableViewCell dibujada de forma personalizada
Cosas que se deben evitar en el método de renderización de UITableViewCell
Celdas personalizadas no repetidas
Buenas prácticas con vistas de tabla. Cómo escribir un código limpio con controladores eficientes
Consejos generales para el enlace de datos
Múltiples UITableViewController dentro de un solo UIViewController
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
7. Magnífico desde cualquier punto de vista: las vistas de colección y Auto Layout
Vistas de colección
Clases y protocolos
UICollectionViewController
UICollectionViewCell
UICollectionViewDataSource
UICollectionViewDelegate
Ejemplo
Edición del storyboard
Añadir la primera celda de vista de colección
Implementar la fuente de datos
Utilizar las fotos de ejemplo
Preparar la fuente de datos
Cómo mejorar el rendimiento.
Dar soporte a fotos verticales y horizontales
Cómo determinar la orientación
Añadir el estado "seleccionado" a la celda
Cómo gestionar las pulsaciones en la celda de vista de colección
Añadir una "cabecera" (header) y un "pie" (footer)
Formato de la vista de colección y personalización avanzada
Auto Layout de Cocoa
Cómo usar Auto Layout
Preliminares de Auto Layout
Restricciones de formato relativas
Visual Format Language
Cómo depurar errores de formato
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
8. Dibujar mejor
Los muchos sistemas de dibujo de iOS
UIKit y el ciclo de dibujo de las vistas
Dibujo de vista frente a diseño de vista
Dibujo de vista personalizado
Dibujar con UIKit
Trayectorias
Comprender las coordenadas
Cambiar el tamaño y contentMode
Transformaciones
Dibujar con Core Graphics
Mezclar UIKit y Core Graphics
Gestionar contextos gráficos
Optimizar el dibujo UIView
No dibujar
Almacenar en caché y dibujar en segundo plano
Dibujo personalizado frente a prerenderizar
Alineación de píxeles y texto borroso
Alpha, opaque y hidden
CGLayer
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
9. Capas como una cebolla: Core Animation
Animaciones de vista
Gestionar la interacción con el usuario
Dibujar con capas
Establecer contents directamente
Implementar display
Dibujo personalizado
Dibujar en su propio contexto
Mover las cosas
Animaciones implícitas
Animaciones explícitas
Modelo y presentación
Unas palabras sobre los tiempos
En la tercera dimensión
Decorar sus capas
Auto-animar con acciones
Animar propiedades personalizadas
Core Animation e hilos de ejecución
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
10. Hacer frente a esos molestos errores
Patrones de gestión de errores
Aseveraciones
Excepciones
Capturar y reportar fallos
Errores y NSError
Localización de error
Bloques de manejo de errores
Logs
Registrar en el log la información sensible
Obtener sus logs
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
11. Servicios de localización: sepa dónde está
El framework Core Location
Acceder a la ubicación del usuario
Cómo obtener la orientación del usuario mediante la brújula incorporada
La privacidad en los servicios de localización
Establecer el texto descriptivo para el acceso a los datos de localización
Trabajar sin información de localización
Localización en segundo plano
Cómo obtener actualizaciones de localización continuas en segundo plano
Suscribirse a las notificaciones de cambios de ubicación significativos
WeatherLah
Foursquare Radar
Facebook Places
Monitorización de zonas (Geo-Fencing o geoperimetraje)
Lo esencial
La aplicación Recordatorios de Apple
Simulación de la localización
Vigilar la vida de la batería
Resumen
Documentación Apple
Parte III. La herramienta adecuada para el trabajo
12. Paradigmas comunes en las interfaces de usuario que utilizan vistas de tabla
Tirar hacia abajo para actualizar
El control Pull-To-Refresh propio de iOS
Desplazamiento infinito
Edición intralínea y teclado
Cómo animar una vista UITableView
Recargar tablas de forma parcial
Implementaciones prácticas de las animaciones en las vistas de tabla
Cómo implementar una lista acordeón
Como implementar un cajón de controles
Utilizar reconocedores de gestos en las celdas de vista de tabla
Resumen
Documentación Apple
13. Controlar la multitarea
Buenas prácticas con las tareas en segundo plano: un gran poder conlleva una gran responsabilidad
Restauración de estados
Comprobar la restauración de estados
Cómo suscribirse
Cambios en el arranque
Identificadores de restauración
Codificadores y descodificadores de estado
Vistas de tabla y vistas de colección
Restauración avanzada
Introducción a la multitarea y a los bucles de ejecución
Desarrollo de multitarea centrada en operaciones
Establecer el máximo número de operaciones concurrentes
Multitarea con Grand Central Dispatch
GCD y ARC
Fuentes y temporizadores
Creación de puntos de sincronización con barreras de despacho
Objetivos en cola y prioridad
Grupos de despacho
Encolar datos específicos
Datos de despacho
Resumen
Lecturas recomendadas
Documentación Apple
Sesiones WWDC
Otros recursos
14. REST en iOS
La filosofía REST
Elegir su formato de intercambio de datos
Analizar XML en iOS
Analizar JSON en iOS
XML versus JSON
Diseñar el formato de intercambio de datos
Versiones del modelo
Un servicio Web hipotético
Recordatorios importantes
Arquitectura RESTfulEngine (código de ejemplo iHotelApp)
NSURLConnection frente a frameworks de terceras partes
Creación de RESTfulEngine
Añadir autenticación a RESTfulEngine
Añadir bloques a RESTfulEngine
Autenticar sus llamadas API con testigos de acceso
Sobrescribir métodos para añadir cabeceras de autenticación personalizadas en RESTfulEngine.m
Cancelar peticiones
Solicitar respuestas
Codificar objetos JSON clave-valor
Lista frente a detalle de objetos JSON
Objetos JSON anidados
Menos es más
Gestión de errores
Localización
Gestionar formatos adicionales utilizando clases de categoría
Consejos para mejorar el rendimiento en iOS
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
15. Cerrar las escotillas con servicios de seguridad
Comprender la sandbox de iOS
Asegurar las comunicaciones de red
Cómo funcionan los certificados
Comprobar la validez del certificado
Determinar la confianza del certificado
Emplear protección de archivo
Utilizar llaveros
Compartir datos con grupos de acceso
Utilizar cifrado
Visión general de AES
Convertir contraseñas en claves con PBKDF2
Modo AES y mecanismos de relleno
El vector de inicialización (Initialitation Vector, IV)
Autenticación con HMAC
Malas contraseñas
Realizar cifrado de un solo paso
Cómo mejorar el rendimiento de CommonCrypto
Cómo combinar cifrado y compresión
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
Otros recursos
16. Ejecutarse en múltiples iPlataformas e iDispositivos
Desarrollar para múltiples plataformas
Parámetros objetivo configurables: Base SDK frente a Deployment Target
Configurar el parámetro SDK Base
Configurar el parámetro Deployment Target
Consideraciones para múltiple soporte SDK: frameworks, clases y métodos
Disponibilidad de frameworks
Disponibilidad de clase
Disponibilidad de método
Comprobar la disponibilidad de frameworks, clases y métodos
Documentación del desarrollador
Macros en los archivos cabecera iOS
Detectar capacidades de uso del dispositivo
Detectar dispositivos y asumir posibilidades de uso
Detectar hardware y sensores
Detectar tipos de cámara
Detectar si una biblioteca de fotos está vacía
Detectar la presencia de cámara con flash
Detectar un giroscopio
Detectar una brújula o magnetómetro
Detectar una pantalla Retina
Detectar posibilidad de vibración de alerta
Detectar posibilidad de control remoto
Detectar la posibilidad de llamadas de teléfono
Aplicación de correo electrónico y SMS
Comprobar si es multitarea
Obtener la categoría UIDevice+Additions
Dar soporte al iPhone 5
UIRequiredDeviceCapabilities
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
17. Internacionalización y localización
¿Qué es la localización?
Localizar cadenas
Auditar para cadenas no localizadas
Formatear números y fechas
Archivos nib e internacionalización base
Cómo localizar cadenas de texto complejas
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
18. Más allá de la venta con In App Purchase
Antes de comenzar
Productos In App Purchase
Elementos prohibidos
Revisar su modelo de negocio
Configurar productos en iTunes Connect
Paso 1: Crear un nuevo ID de aplicación para su aplicación
Paso 2: Generar perfiles de provisión
Paso 3: Cree la entrada de producto de la aplicación
Paso 4: Crear las entradas de producto In App Purchase
Consumibles, no consumibles, suscripciones no renovables
Suscripciones auto-renovables
Paso 5: Generar el secreto compartido
Paso 6: Crear cuentas de usuario de prueba
Paso 7: Crear contenido hospedado (hosted)
Implementación de In App Purchase
Introducción a MKStoreKit
¿Por qué MKStoreKit?
Diseño de MKStoreKit
Personalizar MKStoreKit
Inicializar MKStoreKit
Configuración a utilizar con Server Product Model
Configurar el servidor
Configuración a utilizar con consumibles
Configuración a utilizar con suscripciones auto-renovables
Realizar la compra
Descargar contenido hospedado
Probar su código
Solución de problemas
ID de producto no válido
No se puede conectar a iTunes Store
Ya ha comprado este producto, pero todavía no se ha descargado
Resumen
Lecturas recomendadas
Documentación Apple
Blogs
Otros recursos
19. Depuración del código fuente
LLDB
La depuración con LLDB
Archivo de información de depuración (archivo dSYM)
Symbolication
Simbolización en Xcode
Dentro de xcarchive
Publicar (commit) los archivos dSYM en el sistema de control de versiones
Puntos de ruptura (breakpoints)
El navegador de puntos de ruptura
Puntos de ruptura de excepciones
Puntos de ruptura simbólicos
Cómo editar puntos de ruptura
Cómo compartir puntos de ruptura
Watchpoints
La consola LLDB
Impresión de variables escalares
Impresión de registros
Creación de scripts para el depurador
La variable de entorno NSZombieEnabled
Diferentes tipos de cuelgues
EXC_BAD_ACCESS
SIGSEGV
SIGBUS
SIGTRAP
EXC_ARITHMETIC
SIGILL
SIGABRT
Watchdog Timeout
Gestión de errores personalizada para las señales
Reunir los informes de cuelgues
iTunes Connect
Recoger los informes
Simbolización de los informes de iTunes Connect con Xcode
Simbolización de los informes de iTunes Connect de forma manual
Servicios de información de errores de terceras partes
Ventajas de TestFlight o HockeyApp sobre iTunes Connect
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
Otros recursos
20. Mejorar el rendimiento de las aplicaciones
La mentalidad orientada al rendimiento
Bienvenido a Instruments
Cómo dar con los problemas de memoria
Unas palabras sobre la asignación de memoria
Cómo encontrar los problemas de CPU
El framework Accelerate
GLKit
Rendimiento de dibujo
Core Image
Cómo optimizar el acceso a disco y a la red
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
Parte IV. Superar los límites
21. Storyboards y transiciones personalizadas
Introducción a los storyboard
Instanciar un storyboard
Cargar controladores de vistas dentro de un storyboard
Segues
Pasar datos
Devolver datos
Instanciar otros controladores de vistas
Ejecutar segues de forma manual
Desenrollar segues
Construir vistas de tabla con storyboard
Tablas estáticas
Celdas prototipo
Transiciones personalizadas
Otra ventaja
Desventajas
Evitar el infierno de los conflictos de unión (merge conflicts)
Personalizar las vistas con el protocolo UIAppearance
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
Otros recursos
22. El mayor truco de Cocoa: codificación y observación clave-valor
Codificación clave-valor
Establecer valores con KVC
Recorrer propiedades con key paths
KVC y las colecciones
KVC y los diccionarios
KVC y los no-objetos (nonobjects)
Higher-Order Messaging con KVC
Operadores de colección
Observación clave-valor
KVO y las colecciones
¿Cómo se implementa KVO?
Ventajas y desventajas de KVO
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
23. Piense diferente: Programación en bloques y funcional
¿Qué es un bloque?
¿Por qué utilizar programación funcional?
La mente humana frente el microprocesador
Paradigma procedural frente a funcional
Un UIAlertView "funcional"
Declarar un bloque
Ámbito de variables
Pila (stack) frente a montón (heap)
Implementar un bloque
UIAlertView basado en bloques
Bloques y concurrencia
Cola despachador de procesos en GCD
NSOperationQueue frente a cola despachador de procesos GCD
Métodos Cocoa basados en bloque
Animaciones UIView al utilizar bloques
Presentar y descartar controladores de vista
TweetComposer frente a In App Email/SMS
Enumeración de diccionario al utilizar NSDictionary enumerateWithBlock
Buscar métodos basados en bloque
Plataformas soportadas
Resumen
Lecturas recomendadas
Documentación Apple
Blogs
Otros recursos
24. Trabajar sin conexión
Razones para trabajar sin conexión
Estrategias para almacenar en caché
Métodos para el almacenamiento de su caché
Implementar la caché del modelo de datos
Core Data
Uso de Core Data para almacenamiento en caché bajo demanda
SQLite
¿Qué técnica de almacenamiento en caché debería usar?
Caché del modelo de datos frente a caché URL
Versionado e invalidación de caché
Caché de modelo de datos
Refactorización
Almacenamiento de versiones en caché
Invalidar la caché
Crear caché en memoria
Diseño de la caché en memoria para AppCache
Gestión de advertencias de memoria
Manejo de las notificaciones de terminación y de paso a segundo plano
Crear una caché URL
Modelo de caducidad
Modelo de validación
Ejemplo
Guardar imágenes en caché con una caché URL
Resumen
Lecturas recomendadas
Documentación Apple
Libros
Otros recursos
25. Los datos en la nube
iCloud
UIDocument
UIManagedDocument
Almacenamiento de datos clave-valor
Entender el almacén de datos de iCloud
Compartir datos entre aplicaciones o suites de aplicaciones
Guardar datos en nuestro contenedor iCloud
Unas palabras sobre la copia de seguridad de iCloud
Desventajas
Ofertas en la nube de terceras partes
Parse
Primeros pasos con Parse
Objetos de alto nivel de Parse
Código
Cómo almacenar objetos
Cómo recuperar objetos
Modo fuera de línea
StackMob
Configuración de StackMob
Inicio de sesión y subida y recuperación de datos
Código personalizado de StackMob
Desventajas de utilizar la infraestructura de soporte como servicio
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
Otros recursos
26. Diseño de texto divertido
Los componentes habituales: campos, vistas y etiquetas
Texto enriquecido en UIKit
Aspectos básicos de las negritas, cursivas y subrayados
Cadenas con atributos
Estilos de párrafo
Cadenas con atributos y HTML
Vistas Web para texto enriquecido
Mostrar y acceder a código HTML en una WebView
Responder a la interacción con el usuario
Dibujo de vistas Web en vistas de tabla y con desplazamiento (scroll)
Core Text
Un formato sencillo con CTFramesetter
Crear cuadros para trayectorias no contiguas
Typesetters, líneas, secuencias y glifos
Dibujar texto sobre una curva
Resumen
Lecturas recomendadas
Documentación Apple
Vídeos WWDC
Otros recursos
27. Crear una (Core) Foundation
Tipos Core Foundation
Convenciones de nombrado y gestión de memoria
Asignadores
Introspección
Cadenas y datos
Cadenas constantes
Crear cadenas
Convertir a cadenas C
Otras operaciones de cadena
Almacenamiento de seguridad para cadenas
CFData
Colecciones
CFArray
CFDictionary
CFSet, CFBag
Otras colecciones
Rellamadas
Conversión puente automática
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
28. Objective-C en profundidad
Comprender las clases y objetos
Trabajar con métodos y propiedades
Cómo funciona realmente el paso de mensajes
Implementaciones dinámicas
Reenvío rápido
Reenvío normal
Fallo de reenvío
Los diferentes sabores de objc_msgSend
Swizzling de método
Swizzling de ISA
Swizzling de método frente a swizzling de ISA
Resumen
Lecturas recomendadas
Documentación Apple
Otros recursos
Índice alfabético

 

2019 © Vuestros Libros Siglo XXI | Desarrollo Web Factor Ideas

Producto añadido al carrito.

Si desea ver la cesta de la compra haga click aquí.