2011г.
В это трудно поверить, но это факт: если вы знаете HTML, CSS и JavaScript, то вы обладаете необходимым инструментарием для разработки iPhone-приложений! Книга
Джонатана Старка научит вас создавать программы для iPhone и iPod touch при помощи свободно доступных веб-технологий. Причем для любой платформы и без применения Objective-C и Cocoa! В этой книге рассказано, как создать один продукт для нескольких платформ и превратить свой продукт в нативное приложение iPhone при помощи
свободно распространяемого фреймворка PhoneGap. Вы узнаете, почему при выпуске своей программы как веб-приложения вы сможете гораздо быстрее найти и исправить ошибки, а также выполнить тестирование — в отличие от ситуации, когда программа пишется при помощи инструментов Apple, а затем отправляется в App Store.
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Для кого эта книга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Что нужно для работы с этой книгой . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Условные сокращения, используемые в данной книге . . . . . . . . . . . . . . . . 12
Работа с примерами кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Как с нами связаться . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Благодарности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Об обложке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
От издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Глава 1. Начало . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Сравнение веб-приложений и нативных приложений . . . . . . . . . . . . . . . . 17
Достоинства и недостатки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Какой метод подходит вам? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Вводный курс веб-программирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Введение в HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Введение в CSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Введение в JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Глава 2. Основы оформления в iPhone . . . . . . . . . . . . . . . . . . . . . . . . 28
Первые шаги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Подготовка отдельной таблицы стилей для iPhone . . . . . . . . . . . . 31
Управление масштабированием страниц . . . . . . . . . . . . . . . . . . . . 33
Добавление CSS для iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Добавление интерфейса и компонентов iPhone . . . . . . . . . . . . . . . . . . . . 38
Добавление основных функций при помощи jQuery . . . . . . . . . . . . . . . . . 40
Чему мы научились . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Глава 3. Продвинутые методы оформления в iPhone . . . . . . . . . . . 46
Добавление Ajax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Регулировщик движения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Простейшие мелкие функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Создаем собственную кнопку Back (Назад) . . . . . . . . . . . . . . . . . . . . . . . . 58
Добавление ярлыка на главный экран . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Полноэкранный режим . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Изменение строки состояния . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Создание собственного стартового рисунка . . . . . . . . . . . . . . . . . . 68
Чему мы научились . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Глава 4. Анимация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Скромная помощь нашего друга . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Скользящая главная страница . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Добавление панели Dates (Даты) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Добавление панели Date (Дата) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Добавление панели New Entry (Новая запись) . . . . . . . . . . . . . . . . . . . . . 78
Добавление панели Settings (Настройки) . . . . . . . . . . . . . . . . . . . . . . . . . 82
Все вместе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Настройка jQTouch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Чему мы научились . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Глава 5. Клиентские хранилища данных . . . . . . . . . . . . . . . . . . . . . . 90
localStorage и sessionStorage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Сохранение пользовательских настроек в localStorage . . . . . . . . . . 91
Сохранение выбранной даты в sessionStorage . . . . . . . . . . . . . . . . 94
Клиентская база данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Создание базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Вставка строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Обработка ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Выделение строк и работа с результирующими множествами . . . 105
Удаление строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Чему мы научились . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Глава 6. Выход в офлайн . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Основы офлайнового кэша приложений . . . . . . . . . . . . . . . . . . . . . . . . . 113
Онлайновый белый список и резервные варианты . . . . . . . . . . . . . . . . . 116
Создание динамического файла описания . . . . . . . . . . . . . . . . . . . . . . . 120
Отладка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Консоль JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
База данных кэша приложения . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Чему мы научились . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Глава 7. Работа с нативными приложениями . . . . . . . . . . . . . . . . . 137
Введение в PhoneGap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Использование полной высоты экрана . . . . . . . . . . . . . . . . . . . . 143
Настройка заголовка и ярлыка программы . . . . . . . . . . . . . . . . . 145
Создание стартового экрана . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
Установка программы на iPhone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Управление iPhone при помощи JavaScript . . . . . . . . . . . . . . . . . . . . . . . 159
Сигналы, вибрация и уведомления . . . . . . . . . . . . . . . . . . . . . . . 160
Геолокация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Акселерометр . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Чему мы научились . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Глава 8. Отправка программ на iTunes . . . . . . . . . . . . . . . . . . . . . . . 176
Создание в iPhone профиля настройки дистрибутива приложения . . . . . 176
Установка на iPhone профиля настройки дистрибутива приложения . . . . 178
Переименование проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
Подготовка двоичного файла приложения . . . . . . . . . . . . . . . . . . . . . . . 182
Отправка приложения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Пока вы ждете . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Дополнительная литература . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
Алфавитный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186