Программирование под iOS. Для профессионалов
Дж. Конвэй, А. Хиллегасс
Эта книга, выходящая уже в третьем издании и удостоенная премии «Jolt Productivity Award 2012» по версии Dr. Dobb's Journal, научит вас всем тонкостям разработки приложений для устройств на iOS (iPhone, iPad и iPod Touch). Основанное на учебном курсе известного образовательного IT-проекта Big Nerd Ranch, это практическое пособие содержит ключевые концепции программирования в iOS, множество примеров кода и упражнений по разработке приложений. Новое издание охватывает версии iOS 5 и Xcode 4.3.
Издательство: Питер, 2013 г.
ISBN 978-5-4461-0102-3, 978-0321821522
Количество страниц: 608.
Содержание книги «Программирование под iOS. Для профессионалов»:
- 15 Благодарности
- 16 Предисловие
- 16 Предварительные соображения
- 17 Изменения в третьем издании книги
- 17 Философия обучения
- 18 Как использовать книгу
- 19 Структура книги
- 21 Правила оформления кода
- 22 Используемые стили
- 22 Требуемое оборудование и программы
- 24 Глава 1. Простое приложение iOS
- 25 Создание проекта Xcode
- 27 Создание интерфейсов
- 31 Шаблон Model-View-Controller
- 33 Объявления
- 33 Объявление переменных экземпляра класса
- 34 Объявление методов
- 35 Создание подключений
- 36 Установка указателей
- 37 Настройка целей и действий
- 39 Обзор подключений
- 39 Реализация методов
- 42 Построение приложения и выполнение на симуляторе
- 44 Развертывание приложения
- 46 Значки приложений
- 47 Изображение запуска
- 50 Глава 2. Objective-C
- 50 Объекты
- 51 Использование экземпляров класса
- 51 Создание объекта
- 52 Отправка сообщений
- 53 Разрушение объектов
- 54 Начало разработки проекта RandomPossessions
- 58 Создание строк
- 59 Форматирование строк
- 59 Объекты NSArray и NSMutableArray
- 61 Подклассы классов в Objective-C
- 62 Создание подкласса класса NSObject
- 64 Переменные экземпляра класса
- 65 Методы-аксессоры
- 69 Методы экземпляра класса
- 70 Инициализаторы
- 74 Другие инициализаторы и цепь инициализаторов
- 76 Использование инициализаторов
- 77 Методы класса
- 79 Тестирование подкласса
- 80 Исключения и нераспознанные селекторы
- 82 Быстрая нумерация
- 82 Задачи
- 83 Бронзовая задача: поиск ошибок
- 83 Серебряная задача: другой инициализатор
- 83 Золотая задача: другой класс
- 83 Вы любознательны?
- 84 Для любознательных: имена классов
- 85 Глава 3. Управление памятью с помощью ARC
- 85 Куча
- 86 Стек
- 87 Переменные-указатели и владение объектами
- 88 Управление памятью
- 88 Использование ARC для управления памятью
- 89 Каким образом объекты теряют владельцев
- 92 Сильные и слабые ссылки
- 97 Свойства
- 97 Объявление свойств
- 99 Синтез свойств
- 101 Переменные и свойства экземпляра класса
- 102 Копирование
- 103 Точечный синтаксис
- 103 Для любознательных: автоматическое освобождение пула и очистка журнала ARC
- 106 Глава 4. Делегирование и Core Location
- 107 Проекты, цели и фреймворки
- 109 Core Location
- 110 Получение обновлений от диспетчера CLLocationManager
- 112 Делегирование
- 113 Протоколы
- 116 Делегирование, контроллеры и управление памятью
- 117 Использование отладчика
- 117 Применение точек прерывания
- 119 Построчное выполнение кода
- 121 Диагностика сбоев и исключений
- 123 Бронзовая задача: фильтр расстояния
- 124 Серебряная задача: направление движения
- 124 Для любознательных: фазы построения приложения, ошибки компилятора и компоновщика
- 124 Предварительная обработка
- 125 Компиляция
- 127 Связывание
- 129 Глава 5. Фреймворк MapKit и Input Text
- 129 Объектные диаграммы
- 130 Фреймворк MapKit
- 131 Свойства интерфейса
- 134 Будьте делегатом MapView
- 135 Использование документации
- 140 Протокол MKAnnotation
- 144 Тегирование локаций
- 145 Собираем все вместе
- 147 Бронзовая задача: тип карты
- 147 Серебряная задача: изменение типа карты
- 147 Золотая задача: расширение аннотации
- 148 Глава 6. Подклассы UIView и UIScrollView
- 150 Представления и иерархия представлений
- 151 Создание пользовательского представления
- 155 Метод drawRect
- 158 Фреймворк Core Graphics
- 160 Графические дополнения UIKit
- 161 Перерисовывание представлений
- 163 События движения
- 165 Использование представления UIScrollView
- 167 Панорамирование и разбиение на страницы
- 168 Масштабирование
- 170 Скрытие строки состояния
- 170 Бронзовая задача: цвета
- 170 Серебряная задача: фигуры
- 171 Золотая задача: другое представление и кривые
- 172 Глава 7. Контроллеры представлений
- 172 UIViewController
- 172 Создание приложения HypnoTime
- 173 Подклассы класса UIViewController
- 176 Другой контроллер UIViewController
- 183 UITabBarController
- 186 Жизненный цикл контроллера представлений
- 187 Инициализация контроллеров представлений
- 188 Контроллер UIViewController и «ленивая» загрузка
- 191 Выгрузка представлений
- 193 Отображение и скрытие представлений
- 194 Подклассы и шаблоны контроллера представлений
- 195 Бронзовая задача: другая вкладка
- 196 Серебряная задача: логика контроллера
- 196 Для любознательных: функция main и UIApplication
- 196 Для любознательных: дисплей Retina
- 172 UIViewController
- 199 Глава 8. Уведомления и вращение
- 199 Центр уведомлений
- 201 Уведомления UIDevice
- 202 Автовращение
- 209 Программная настройка масок автоматического изменения размеров и поразрядные операции
- 211 Переход в альбомный режим
- 212 Бронзовая задача: уведомления о приближении
- 212 Серебряная задача: программная установка масок автоматического изменения размеров
- 213 Золотая задача: переопределение автовращения
- 213 Для любознательных: переопределение автовращения
- 215 Глава 9. UITableView и UITableViewController
- 215 Начинаем разработку приложения Homepwner
- 217 UITableViewController
- 217 Создание подкласса класса UITableViewController
- 220 Источник данных UITableView
- 220 Создание подкласса BNRItemStore
- 224 Реализация методов источника данных
- 226 UITableViewCells
- 228 Создание и выборка UITableViewCells
- 229 Повторное использование UITableViewCells
- 231 Библиотека фрагментов кода
- 233 Бронзовая задача: разделы
- 233 Серебряная задача: строки констант
- 233 Золотая задача: настройка таблицы
- 234 Глава 10. Редактирование UITableView
- 234 Режим редактирования
- 240 Добавление строк
- 242 Удаление строк
- 243 Перемещение строк
- 245 Бронзовая задача: переименование кнопки удаления
- 245 Серебряная задача: предотвращение переупорядочения
- 245 Золотая задача: реальное предотвращение переупорядочивания
- 246 Глава 11. UINavigationController
- 246 Контроллер UINavigationController
- 250 Дополнительный контроллер UIViewController
- 256 Выполнение навигации с помощью UINavigationController
- 256 Помещение в стек контроллеров представлений
- 258 Передача данных между контроллерами представлений
- 260 Отображение и скрытие представлений
- 261 UINavigationBar
- 265 Бронзовая задача: отображение цифровой клавиатуры
- 266 Серебряная задача: скрытие цифровой клавиатуры
- 266 Золотая задача: помещение в стек большего числа контроллеров представлений
- 267 Глава 12. Camera
- 267 Отображение изображений и представление UIImageView
- 269 Фотосъемка и контроллер UIImagePickerController
- 276 Создание хранилища BNRImageStore
- 277 NSDictionary
- 279 Создание и использование ключей
- 281 Фреймворк Core Foundation и абсолютно свободное связывание
- 282 Завершение создания BNRImageStore
- 284 Скрытие клавиатуры
- 286 Бронзовая задача: коррекция изображения
- 286 Серебряная задача: удаление изображения
- 286 Золотая задача: наложение камеры
- 286 Для любознательных: запись видео
- 267 Отображение изображений и представление UIImageView
- 289 Глава 13. Контроллер UIPopoverController и контроллеры модальных представлений
- 289 Универсализация приложения Homepwner
- 291 Определение семейства устройств
- 292 UIPopoverController
- 295 Подробнее о модальных контроллерах представлений
- 297 Сокрытие модальных контроллеров представлений
- 299 Стили модального контроллера представлений
- 301 Блоки завершения
- 303 Эффекты перехода для модального контроллера представлений
- 303 Бронзовая задача: универсализация приложения Whereami
- 303 Серебряная задача: всегда листаем страницы
- 303 Золотая задача: изменение вида «плавающих» окон
- 304 Для любознательных: взаимосвязи контроллера представлений
- 304 Взаимосвязи «предок-потомок»
- 304 Взаимосвязи «презентующий-презентуемый»
- 306 Взаимосвязи внутри семейства
- 289 Универсализация приложения Homepwner
- 309 Глава 14. Сохранение, загрузка и применение состояний
- 309 Архивирование
- 311 Песочница приложения
- 313 Создание пути к файлу
- 313 Классы NSKeyedArchiver и NSKeyedUnarchiver
- 317 Состояния приложения и переходы между ними
- 319 Запись в файловой системе с помощью NSData
- 322 Предупреждения о нехватке памяти
- 323 Шаблон проектирования «модель-представление-контроллер-хранилище»
- 324 Бронзовая задача: PNG
- 324 Серебряная задача: архивирование приложения Whereami
- 324 Для любознательных: переходы между состояниями приложения
- 326 Для любознательных: чтение и запись в файловой системе
- 328 Для любознательных: пакет приложения
- 331 Глава 15. Разбиение на подклассы класса UITableViewCell
- 331 Создание класса HomepwnerItemCell
- 333 Конфигурирование интерфейса UITableViewCell
- 334 Исследование свойств класса HomepwnerItemCell
- 335 Использование класса HomepwnerItemCell
- 337 Манипулирование изображениями
- 341 Ретрансляция действий из UITableViewCells
- 342 Добавление контроллеров к подклассу ячейки
- 343 Ретрансляция сообщения контроллеру
- 344 Магия селектора Objective-C
- 346 Представление изображения контроллером «плавающего» окна
- 349 Бронзовая задача: цветовое кодирование
- 349 Серебряная задача: базовый класс ячейки
- 349 Золотая задача: масштабирование
- 331 Создание класса HomepwnerItemCell
- 350 Глава 16. Core Data
- 350 Отображение, связанное с объектами
- 351 Переход на использование Core Data в приложении Homepwner
- 351 Файл модели
- 356 Объект NSManagedObject и его подклассы
- 359 Обновление BNRItemStore
- 365 Добавление сущностей BNRAssetTypes в приложение Homepwner
- 370 Немного об SQL
- 370 Сбои
- 372 Достоинства и недостатки механизмов обеспечения постоянства существования
- 373 Бронзовая задача: ресурсы на iPad
- 373 Серебряная задача: новые типы ресурсов
- 373 Золотая задача: отображение ресурсов по типу
- 374 Глава 17. Локализация
- 375 Интернационализация, выполняемая с помощью NSLocale
- 376 Локализация ресурсов
- 380 Функция NSLocalizedString и таблицы строк
- 382 Бронзовая задача: другая локализация
- 382 Для любознательных: роль функции NSBundle в интернационализации
- 383 Глава 18. Класс NSUserDefaults
- 383 Обновление приложения Whereami
- 384 Использование класса NSUserDefaults
- 387 Серебряная задача: начальная локация
- 388 Золотая задача: Concise Coordinates
- 388 Для любознательных: приложение Settings
- 389 Глава 19. События прикосновения и UIResponder
- 389 События прикосновения
- 391 Создание приложения TouchTracker
- 392 Рисование с помощью TouchDrawView
- 394 Преобразование прикосновения в линию
- 396 Цепочка респондера
- 398 Бронзовая задача: сохранение и загрузка
- 398 Серебряная задача: цвета
- 398 Золотая задача: окружности
- 398 Для любознательных: UIControl
- 400 Глава 20. Объекты UIGestureRecognizer и UIMenuController
- 400 Подклассы класса UIGestureRecognizer
- 401 Обнаружение тапов с помощью UITapGestureRecognizer
- 404 Класс UIMenuController
- 406 UILongPressGestureRecognizer
- 407 Распознаватель UIPanGestureRecognizer и распознаватели синхронности
- 410 Для любознательных: UIMenuController и UIResponderStandardEditActions
- 411 Для любознательных: дополнительно о UIGestureRecognizer
- 412 Бронзовая задача: удаление линий
- 412 Серебряная задача: мистические линии
- 412 Золотая задача: скорость и размер
- 413 Мегазолотая задача: цвета
- 414 Глава 21. Инструменты
- 414 Статический анализатор
- 416 Средство Instruments
- 416 Инструмент Allocations
- 423 Инструмент Time ProŸler
- 426 Инструмент Leaks
- 428 Схемы Xcode
- 429 Создание новой схемы
- 431 Настройки компиляции
- 435 Глава 22. Слой Core Animation
- 435 Слои и представления
- 436 Создание класса CALayer
- 439 Контекст слоя
- 441 Неявно анимируемые свойства
- 442 Бронзовая задача: другой слой
- 442 Серебряная задача: радиус закругленного угла
- 443 Золотая задача: тени
- 443 Для любознательных: программное генерирование контента
- 444 Для любознательных: слои, растры и контексты
- 446 Глава 23. Управление анимацией с помощью CAAnimation
- 446 Объекты анимации
- 449 Вращение, выполняемое с помощью объекта CABasicAnimation
- 452 Функции работы со временем
- 453 Завершение анимации
- 454 Создание эффекта отскока с помощью класса CAKeyframeAnimation
- 456 Бронзовая задача: дополнительная анимация
- 456 Серебряная задача: еще одна дополнительная анимация
- 456 Золотая задача: цепочка анимаций
- 456 Для любознательных: слой презентации и слой модели
- 458 Глава 24. UIStoryboard
- 458 Создание сториборда
- 462 Контроллеры UITableViewController в сториборде
- 464 Сегвеи
- 468 Дополнительно о сторибордах
- 470 Глава 25. Веб-службы и представление UIWebView
- 471 Веб-службы
- 472 Начнем создавать приложение Nerdfeed
- 473 Классы NSURL, NSURLRequest и NSURLConnection
- 474 Форматирование URL-ссылок и запросов
- 475 Работа с классом NSURLConnection
- 476 Сбор XML-данных
- 479 Синтаксический анализ XML с помощью NSXMLParser
- 480 Конструирование дерева, состоящего из объектов-моделей
- 489 Быстрый перехват регистрации
- 490 Представление UIWebView
- 492 Для любознательных: парсер NSXMLParser
- 493 Для любознательных: тело запроса
- 495 Для любознательных: аттестаты
- 496 Бронзовая задача: дополнительные данные
- 496 Серебряная задача: дополнительные свойства UIWebView
- 471 Веб-службы
- 497 Глава 26. Классы UISplitViewController и NSRegularExpression
- 498 Создание разделенного приложения Nerdfeed
- 502 Обмен информацией между мастером и деталями
- 509 Отображение контроллера мастер-представления в портретном режиме
- 511 Универсализация приложения Nerdfeed
- 512 NSRegularExpression
- 515 Конструирование строки шаблона
- 518 Бронзовая задача: поиск подфорума
- 518 Серебряная задача: переключение мастер-кнопки
- 518 Серебряная задача: обработка ответа
- 518 Золотая задача: отображение потоков
- 519 Глава 27. Блоки
- 519 Блоки и синтаксис блоков
- 520 Объявление переменных блока
- 521 Определение блоков литералов
- 523 Выполнение блоков
- 523 Дополнительные заметки о блоках
- 524 Основы использования блоков
- 527 Захват переменных
- 531 Типичное использование блоков
- 532 Для любознательных: модификатор __block, сокращенный синтаксис и память
- 535 Для любознательных: достоинства и недостатки параметров обратного вызова
- 519 Блоки и синтаксис блоков
- 538 Глава 28. Шаблон проектирования Model-View-Controller-Store
- 538 Зачем нужны хранилища
- 541 Создание класса BNRFeedStore
- 544 Использование хранилища
- 547 Создание хранилища BNRFeedStore
- 547 Инициализация подключения
- 553 Другой запрос
- 557 Сериализация JSON
- 561 Еще об объектах хранилища
- 563 Бронзовая задача: пользовательский интерфейс для счетчика песен
- 563 Мегазолотая задача: другая веб-служба
- 563 Для любознательных: данные JSON
- 565 Глава 29. Дополнительные сведения о MVCS
- 565 Кэширование RSS-подписки
- 571 «Продвинутое» кэширование
- 579 Протокол NSCopying
- 581 Завершение работы над подпиской BNR
- 583 Прочтенные и непрочтенные элементы
- 589 Другие преимущества объектов хранилища
- 590 Бронзовая задача: усечение кэша
- 590 Серебряная задача: избранное
- 590 Золотая задача: кэширование JSON
- 590 Для любознательных: создание объекта хранилища
- 590 Определение внешних источников данных
- 591 Идентификация статуса синглетона
- 592 Определение порядка доставки результатов
- 592 Для любознательных: автоматическое кэширование и файл Cache.db
- 594 Глава 30. iCloud
- 594 Требования iCloud
- 595 Контейнеры вездесущности
- 597 Инициализация контейнера вездесущности
- 600 Core Data и iCloud
- 606 Для любознательных: резервные копии iCloud
- 607 Глава 31. Послесловие
- 607 Что дальше
- 607 Не стесняйтесь обращаться к нам
Инструкция как скачать книгу Дж. Конвэй, А. Хиллегасс: Программирование под iOS. Для профессионалов в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
Рейтинг книги:
3 голоса
2295