С появлением iPhone мир изменился. Потом с появлением iPhone 4 он изменился снова. А теперь к iPhone добавился еще и революционный планшет iPad. Современные устройства на базе iOS используются в бизнесе и учебе, для работы и развлечений, и на Арр Store уже сейчас успешно работают десятки тысяч программистов и известных софтверных компаний. Представим, что у вас появилась гениальная идея приложения для iPhone и iPad. С чего начать? Эта книга поможет вам разработать свое первое приложение в самые кратчайшие сроки. Вы не только узнаете, как спроектировать приложение для устройств Apple и сделать его уникальным, но и в совершенстве овладеете принципами программирования на Objective-C и инструментами iPhone SDK, в том числе Interface Builder и Xcode. Apple предоставляет программное обеспечение, эта книга дает знания - от вас потребуется лишь энтузиазм и желание научиться разрабатывать оригинальные и коммерчески успешные приложения для iPhone и iPad. Особенностью данного издания является уникальный способ подачи материала, выделяющий серию "Head First" издательства O'Reilly в ряду множества скучных книг, посвященных программированию.
Название: Программируем для iPhone и iPad. 2-е изд. Автор: Пайлон Д., Пайлон Т. Издательство: Питер Год: 2012 Страниц: 624 Формат: PDF Размер: 179 МБ ISBN: 978-5-459-00375-8 Качество: Отличное
Содержание:
Введение Для кого написана эта книга? Мы знаем, о чем вы думаете Метапознание: наука о мышлении Вот что сделали МЫ: Что можете сделать ВЫ, чтобы заставить свой мозг повиноваться Примите к сведению Технические рецензенты Благодарности 1. Первые шаги iOS и эпоха мобильности Итак, вы хотите написать приложение для iOS… … Программисты iOS нужны всем! Приложения живут в мире iTunes Пора принять решение Все начинается с iOS SDK Первые впечатления Шаблоны приложений Xcode упрощают вашу работу Xcode - полнофункциональная интегрированная среда разработки (IDE) Xcode находится в центре любого проекта iOS Построение интерфейса в Xcode Добавьте в представление кнопку iOS Simulator - инструмент для тестирования приложений на Мае Логика iDecide Изменение текста на кнопке Паттерн Модель-Представление-Контроллер Приложение iDecide немного проще модели MVC Что произошло? Связывание элементов с кодом в редакторе GUI Компонент может инициировать определенные события Связывание событий с методами Только что вы построили свое первое приложение для iPhone! Ваш инструментарий iOS 2. Типы приложений iOS Привет, Рене! Прежде всего нужно понять, чего (на самом деле) хочет Майк Дизайн приложений и iOS HIG Рекомендации НЮ по использованию списков и кнопок Создание нового проекта для приложения InstaEmail Жизнь корневого представления Нам нужны данные Используйте прокручиваемые списки для выбора значений из фиксированного набора Списки получают информацию от источника данных… Знакомый паттерн Прежде всего следует объявить, что контроллер поддерживает оба протокола Протокол источника данных содержит два обязательных метода Связывание источника данных с элементом Протокол делегата состоит всего из одного метода Действия, ссылки и события Связывание события с действием Затем синтезируем свойство… Связывание прокручиваемого списка с IBOutlet Использование ссылки на список для получения выбранных значений 3. Objective-C для iOS Побольше разнообразия Рене не отстает… Ручное редактирование текста Заголовочный файл описывает интерфейс класса Генерируемые методы чтения и записи также обеспечивают управление памятью Чтобы управление памятью работало нормально, необходимо запомнить две вещи Но когда Майк набрал текст… Настройка UITextField Компоненты, использующие клавиатуру, вызывают ее на экран… Запрос к UITextField на передачу фокуса Именованные аргументы в сообщениях Objective-C Использование сообщения для оповещения контроллера о нажатии кнопки Done Куда пропал введенный текст? Ваш инструментарий Objective-C 4. Множественные представления Таблица и представление Как же эти представления будут взаимодействовать? Навигационный шаблон объединяет несколько представлений Встроенное табличное представление Строение табличного представления Еще несколько коктейлей… Списки plist - простой механизм сохранения и загрузки данных Массивы (и другие типы) обладают встроенной поддержкой plist Вывод подробной информации в детализированном представлении Близкое знакомство с детализированным представлением Использование навигационного контроллера для переключения между представлениями Навигационный контроллер ведет стек контроллеров представлений В словарях информация хранится в формате пар «ключ-значение» Отладка - «темная сторона» программирования для iOS Первый шаг отладки: консоль Взаимодействие с приложением во время выполнения Использование точек прерывания при отладке В отладчике Xcode отображается информация о состоянии приложения Ваш инструментарий iOS 5. Списки plist и модальное представления Наводим глянец Все началось с просьбы Сэма… Использование отладчика для анализа сбоя Обновление кода для работы со списком plist словарей Детализированному представлению нужны данные Другие ключи Проблема с интерфейсом Отображение индикатора раскрытия Приложение пользуется популярностью… Добавление рецептов с использованием кнопок навигационного контроллера Кнопка должна создать новое представление Нам понадобится представление… но не обязательно новое представление Контроллер представления определяет поведение представления Файл. xib содержит компоненты пользовательского интерфейса и информацию о связях… Контроллеры представлений можно субклассировать и расширять, как и любые другие классы В модальном представлении пользователь концентрируется на выполняемой задаче… У нашего модального представления нет навигационной панели Создание кнопок сохранения и отмены Действия для сохранения и отмены Ваш инструментарий iOS 6. Сохранение, редактирование и сортировка Такое разное редактирование Сэм собирается ввести новый рецепт… … но ему мешает клавиатура Упаковка контента в прокручиваемое представление Размеры прокручиваемого представления совпадают с размерами экрана Клавиатура изменяет видимую область iOS оповещает приложение о клавиатуре Регистрация в стандартном центре оповещений В событиях клавиатуры передается информация о размере и состоянии клавиатуры Табличное представление не знает о том, что его данные изменились Нарушился порядок сортировки массива Табличные представления обладают встроенной поддержкой редактирования и удаления Ваш инструментарий iOS Toolbox 7. Переход на iPad Больше места DrinkMixer на iPad Симулятор iPad В HIG рассказано и про iPad Построение универсального приложения в Xcode Проверка устройства Повороты на iPad Проблема с изменением представления Не забудьте о табличном представлении Ваш инструментарий iOS 8. Вкладки и Core Data Корпоративные приложения Приложение для «охотника за головами» Новый элемент для iPhone Выбор шаблона для приложения iBountyHunter Особенности структуры универсальных приложений Как работает код iBountyHunter для iPhone… … и какое место он занимает в универсальном приложении Построение представления для списка разыскиваемых Следующий пункт: представление для списка пойманных преступников Субпредставления и содержимое представлений После короткой встречи с Бобом… Core Data позволяет сосредоточиться на функциональности приложения Core Data необходимо описание данных Core Data использует модель управляемых объектов для описания сущностей Построение сущности Использование NSFetchRequest для описания поиска База данных Боба - ресурс Возвращаемся к стеку Core Data Шаблон выполняет настройку SQLite Приложения iOS доступны только для чтения Возможность чтения и записи определяется структурой приложения iPhone Копирование базы данных в каталог Documents Ваш инструментарий Core Data 9. Миграция и оптимизация с Core Data Все изменяется Бобу нужна документация Все начинается с модели объектов Данные не обновились Миграция данных - стандартная проблема Миграция старых данных в новую модель Xcode упрощает изменение версии модели данных Core Data поддерживает «облегченную» миграцию данных То, что мы сделали… Боб высказывает свое мнение У приложений тоже есть свой жизненный цикл… Правила многозадачности iOS Показываем приложение Бобу Использование предикатов для фильтрации данных Определение предиката для NSFetchRequest Классы контроллеров Core Data обеспечивают эффективную обработку результатов Пора заняться оптимизацией Создание нового метода чтения для FetchedResultsController Данные необходимо обновить Ваш инструментарий данных 10. Камера, map kit и core location Реальные доказательства Для оплаты нужны доказательства Путь к камере… Возможности устройств можно проверить Карта действий помогает пользователю Бобу нужно знать не только «когда», но и «где» Core Location определит ваше местонахождение Добавление новой библиотеки Боб не согласен на широту и долготу Map Kit - инструментарий для работы с картами в iOS Пользовательская настройка карты Над аннотациями придется потрудиться Полная реализация протокола аннотаций Ваш инструментарий iOS 11. Интерфейс приложений для iPad Бобу нужно приложение и для iPad… Рекомендации по удобству использования в iOS HIG Итеративное проектирование интерфейса В приложении BountyHunterHD используется контроллер разделенного представления Объединим элементы оформления Похоже, у нас проблемы… Широкие возможности UlWebview HTML, CSS и Objective-C Использование UlWebView Ваш инструментарий NUI I. Напоследок Четыре важные темы (которые мы не рассмотрели) 1. Интернационализация и локализация Локализация строковых ресурсов 2. Отображение анимаций 3. Акселерометр Ускорение 4. Пара слов об играх Quartz и OpenGL II. Подготовка приложения к распространению О правилах Apple Профиль Provisioning Profile объединяет все составляющие Organizer и упорядоченное хранение