2011г.
Любому человеку, мало-мальски знакомому с программированием, будет легко научиться разработке приложений для iPhone. Но если вы хотите создать действительно уникальный и успешный продукт, вам потребуется большое количество дополнительных знаний и навыков в сфере дизайна, продвижения и маркетинга. Книга "Разработка приложений под iPhone. Полное руководство" содержит все необходимые сведения по каждой из стадий этого нелегкого процесса: от проектирования программных приложений до их продажи.
- возможностях продвижения своего продукта, увеличения продаж и методах работы с покупателями.
Оглавление книги
"Разработка приложений под iPhone. Полное руководство"
Об авторе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Люди, которые подготовили эту книгу . . . . . . . . . . . . . . . . . . . . . . . . . 16
Благодарности автора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Магазин App Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Об этой книге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Структура издания . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Начало начал . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Что за стрелки? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
"Живые примеры" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
О сайте MissingManuals .com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Safari® Books Online . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
От издательства . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Часть I. Начало работы с Cocoa Touch
Глава 1. Ваше первое приложение для iPhone . . . . . . . . . . . . . . . . . 26
Получаем инструментарий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Установка Xcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Установка iPhone SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Будущее пакета iPhone SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Изучаем инструментарий . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Список деталей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Осторожно, идет сборка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Запуск на Macintosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Смещая акценты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Глава 2. Вся сила в скобках . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
Objective-C: фундамент вашего iPhone-приложения . . . . . . . . . . . . . . . . . 46
Все дороги ведут к объекту . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Первоклассно! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Классы во всех подробностях . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Один за всех . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Следовать протоколу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Сон разума рождает методы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Будем категоричны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Реализация: красиво и с умом . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
Создаем новые классы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Управление памятью . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Сила nil'а . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Невыносимая легкость авторелиза . . . . . . . . . . . . . . . . . . . . . . . . 62
Свойства и точки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Методы класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
Инициализация объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Циклы: благо или зло? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Исключительный код . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Селекторы во всей красе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Предъявите ваш id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
Дополнительные ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Документация для разработчиков . . . . . . . . . . . . . . . . . . . . . . . . . 76
Учитесь быть ленивым . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
Глава 3. Cocoa Touch: заставим Objective-C работать . . . . . . . . . . . 80
Знакомство с Cocoa Touch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Большая тройка: модель, вид, контроллер . . . . . . . . . . . . . . . . . . . . . . . . 81
Виды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Модели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
Контроллеры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Объекты-значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Базовые типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Объектные типы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Наборы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Глубокое копирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Списки свойств . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Изменяемое и неизменяемое . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Mutable-копирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Защита данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Делегирование и источники данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Цели и действия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Пользовательский интерфейс по-сложному . . . . . . . . . . . . . . . . . . 96
Пользовательский интерфейс по-простому . . . . . . . . . . . . . . . . . 101
Уведомления . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
Синглтоны . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Дополнительные ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Глава 4. Инструменты дизайнера: улучшаем фонарик . . . . . . . . . 118
Сначала планировать, потом программировать . . . . . . . . . . . . . . . . . . . 118
Зачем нужен дизайнер? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Цели дизайна . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Специфика дизайна приложений для iPhone . . . . . . . . . . . . . . . . 120
Дизайн: процедура . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Жизнь в гармонии с дизайнером . . . . . . . . . . . . . . . . . . . . . . . . . 128
Обратная связь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
От кого исходит обратная связь? . . . . . . . . . . . . . . . . . . . . . . . . 129
Flashlight 2 .0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Быстрее, больше, сильнее . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Лицевая сторона . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Оборотная сторона . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Чертежная доска . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Технический дизайн: между графикой и кодом . . . . . . . . . . . . . . . . . . . 134
Да будет свет! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Окно установок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Дополнительные ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Часть II. Глубины разработки
Глава 5. Разработка - это серьезно . . . . . . . . . . . . . . . . . . . . . . . . . 140
За пределами шаблона . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Выбор версии SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Меняем установки проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Меняем установки цели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
Установки сборки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Двойственность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Пусть все будет официально . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Присоединитесь к Программе для iPhone-разработчиков . . . . . . . 150
Откроем дверцу . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Если что-то не так . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Обретенная мобильность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Готово к запуску . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Глава 6. Фонарик для профессионалов . . . . . . . . . . . . . . . . . . . . . . 170
Экскурсия . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Откройте учебник . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
Flashlight_ProAppDelegate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Окна и виды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
NIB-файлы: об этом стоит узнать . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
MainWindow .xib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
MainView .xib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
Установка размеров вида . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Автоматическое изменение размеров . . . . . . . . . . . . . . . . . . . . . 179
SettingsView .xib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
AboutView .xib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
Как навести красоту . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
LightView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
IFInfoView . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
Приспосабливаем Cocoa Touch под себя . . . . . . . . . . . . . . . . . . . . . . . . . 198
UIColor+Brightness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
UIView+Brightness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
UIView+Concealed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
На подиуме - модели . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
SOSModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
FlashlightModel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Все под контролем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
MainViewController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
SettingsViewController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
AboutViewController . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Локализация: capisce? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Localizable .strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
AboutView .xib . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Товарный вид . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
Часть III. Бизнес-перспектива
Глава 7. Последние штрихи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Бета-тестирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
У вас все работает . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Ad Hoc-распространение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
Подчистка сделанного . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Комитет по благоустройству . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Нашествие двунадесяти языков . . . . . . . . . . . . . . . . . . . . . . . . 242
Веб-разработка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Содержимое сайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Видеоролики . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Статистика посещений сайта . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Пришло время App Store . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Глава 8. Продажи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Подпись, печать . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Добро пожаловать . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
Первоочередное . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Делайте ваши ставки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Соглашение об экспорте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
Краткие сведения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Маркировка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
Загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 259
Выбираем цену . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261
Локализация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
Проверка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Правка метаданных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Рынок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Статистика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
Конкуренция . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Два разработчика, один рынок . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Стратегии ценообразования . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Попробуй, а потом купи . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Окончательный профиль . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Окончательная цель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
Окончательная сборка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Окончательная загрузка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Окончательный тест . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Продвижение началось . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Рассмотрение программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Все ли по правилам? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Боремся с отбраковкой . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
Готово к продажам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
Глава 9. Ваши первые клиенты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Следим за продажами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Ежедневные отчеты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
Ежемесячные финансовые отчеты . . . . . . . . . . . . . . . . . . . . . . . 288
Оплата . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Реклама и продвижение на рынке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Пресс-релиз . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
На каждый роток . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Социальные сети: усилитель слова . . . . . . . . . . . . . . . . . . . . . . . 292
Большой взрыв . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Онлайн-реклама . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Рекламные коды . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
Распродажа со скидками . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Вывод результатов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Следим за эффективностью . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
Регистрация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Поддержка пользователей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Ни единой ошибки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Обработка отчетов об ошибках . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Обработка запросов поддержки . . . . . . . . . . . . . . . . . . . . . . . . . 314
Обновления продукта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
Новая информация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
iTunes: с возвращением! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
Обновления (или их отсутствие) . . . . . . . . . . . . . . . . . . . . . . . . . 316
Примите поздравления! . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Приложение . Для дальнейшего изучения . . . . . . . . . . . . . . . . . . . . . 319
Objective-C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Сетевые ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Cocoa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
Сетевые ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Форумы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
iPhone SDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Сетевые ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Форумы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Xcode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322
Разработка интерфейсов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Веб-разработка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Сетевые ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Форумы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Новинки в отрасли, коммерческие вопросы . . . . . . . . . . . . . . . . . . . . . . 324
Книги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Сетевые ресурсы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Форумы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324
Ресурсы с открытым исходным кодом . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Алфавитный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327