ВВЕДЕНИЕ 3
1. ПОСТАНОВКА ЗАДАЧИ 6
1.1. Функциональные требования к приложению 6
1.2. Альтернативные решения 9
1.2.1. RecordMyScreen 9
1.2.2. Appsee 9
1.2.3. Lookback 10
1.2.4. Сводный анализ аналогов 11
3. АРХИТЕКТУРА ПРИЛОЖЕНИЯ 12
3.1. Высокоуровневый дизайн приложения 12
3.2. Проектирование базы данных 14
3.3. Диаграмма классов 17
4. РАЗРАБОТКА ПРИЛОЖЕНИЯ 21
4.1. Менеджер прототипов 21
4.2. Запись взаимодействия с прототипом 22
4.2.1. Класс LPPrototypeCaptureRecorder 22
4.2.2. Реализация захвата изображения 24
4.2.3. Перехват нажатий на экран 26
4.2.4. Отрисовка нажатий 28
4.2.5. Создание видео из последовательности изображений 29
4.2.6. Захват видео с фронтальной камеры и запись звука 32
4.2.7. Рендеринг итогового видео 34
4.3. Создание тепловых карт 37
4.4. Пользовательский интерфейс приложения 40
ЗАКЛЮЧЕНИЕ 45
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 46
ПРИЛОЖЕНИЕ
С каждым годом количество пользователей смартфонов неуклонно растет. В этом можно убедиться, взглянув на статистику продаж за последние годы. Если в 2007 году было продано 122 миллиона устройств, то к 2015 году это число выросло до 1.4 миллиарда [1]. Такой значительный рост количества владельцев смартфонов не остался незамеченным производителями программного обеспечения. В июле 2015 года в Apple App Store - магазине приложений для устройств, работающих на операционной системе iOS, - насчитывалось 1 500 000 приложений. Еще большее количество приложений присутствует в магазине Google Play, который можно найти на устройствах под управлением операционной системы Android [2]. Тем не менее, большая часть прибыли приходится на магазин приложений от компании Apple [3]. По этой причине разработка приложений для операционной системы iOS в большинстве случаев остается более предпочтительной.
При таких условиях не могла не образоваться сильная конкуренция между производителями мобильного программного обеспечения, которая в итоге привела к значительному усложнению процесса разработки приложений для портативных устройств в целом. Стремление сделать свой продукт выгодно выделяющимся на фоне соперников заставляет разработчиков всё более тщательно подходить к созданию мобильных приложений. Например, возникает необходимость проведения анализа предпочтений целевой аудитории ещё до выпуска продукта на рынок. И таким образом в процесс разработки между созданием макета приложения и его непосредственной реализацией вклинивается разработка интерактивных прототипов, которые позволяют получить данные о взаимодействии аудитории с пользовательским интерфейсом будущего продукта. Как правило, интерактивный прототип не содержит реальных данных, только их имитацию, но позволяет разработчику получить обратную связь от потенциальных пользователей для последующего анализа и внесения изменений в разрабатываемый продукт.
Существующие сервисы для работы с интерактивными прототипами мобильных приложений, такие как Invision, Marvel, Framerjs и Atomic.io предоставляют инструментарий для создания и распространения прототипов, однако задача сбора и анализа данных об опыте взаимодействия пользователей с интерфейсами ложится на плечи разработчика. Таким образом, чтобы получить информацию о взаимодействии пользователя с прототипом, во время тестирования разработчик должен присутствовать рядом и лично фиксировать то, как происходит данное взаимодействие и какое впечатление от приложения формируется у каждого пользователя.
Для того, чтобы выявить основные паттерны поведения пользователя внутри приложения и внести соответствующие изменения в дизайн, важно получить отзывы от как можно большего количества людей. Однако при личном наблюдении есть вероятность упустить важные детали. Автоматизация процесса фиксирования информации об опыте взаимодействия пользователя с прототипом позволила бы решить данную проблему, предо ставив возможность анализа полученных данных с целью выявления существующих проблем в дизайне и закономерности использования. На этапе проектирования интерфейсов мобильных приложений важно получить информацию о том, на какие элементы интерфейса пользователь в первую очередь обращает внимание, какого поведения ожидает при взаимодействии с ними, а также то, насколько сложно ему дается навигация по экранам в прототипе.
По способу реализации конечного результата инструменты прототипирования можно условно разделить на две группы. Инструменты первой группы используют особый формат прототипов и могут запускать их исключительно внутри своих собственных приложений. Таким образом, сбор информации о том, как пользователь взаимодействует с этими прототипами не удастся организовать в рамках доступных возможностей iOS SDK. Для создания интерактивных прототипов инструментами второй группы используются веб-технологии. Это значительно упрощает распространение результатов пользователям, так как не требует создания отдельного приложения для запуска прототипа под каждую операционную систему - до статочно передать ссылку на готовую веб-страницу. iOS SDK предлагает большое количество способов работы с веб-страницами, благодаря чему становится возможным сбор информации о взаимодействии с прототипами, созданными при помощи инструментов из этой группы.
Таким образом, целью данной работы является создание мобильного приложения для операционной системы iOS, назначением которого является осуществление сбора данных о взаимодействии с прототипами iOS- приложений, основанных на веб-технологиях.
В результате выполнения дипломной работы было разработано iOS приложение, позволяющее фиксировать процесс взаимодействия пользователя с прототипом для последующего анализа полученных данных с целью выявления существующих проблем в дизайне и закономерности использования. Поддерживаются следующие возможности:
• захват изображения с дисплея смартфона;
• перехват нажатий на экран;
• запись с фронтальной камеры;
• запись звука;
• генерация тепловых карт для отдельных экранов прототипа.
Приложением поддерживаются любые прототипы, реализованные с использованием веб-технологий. Исключение составляет только возможность генерации тепловых карт. Корректные результаты могут быть получены, только если прототип меняет URL при переходе от экрана к экрану. В частности, эта возможность доступна для сервисов прототипирования Marvel и Invision.
Реализация приложения не содержит вызовов закрытых методов из iOS SDK, а потому приложение будет опубликовано в магазине мобильных приложений App Store. В дальнейшем планируется реализовать удаленное распространение прототипов и хранение полученных данных на сервере, а также добавить в приложение модуль для автоматизированного анализа полученных данных о взаимодействии пользователя с интерфейсами приложений.
Разработанное в рамках дипломной работы мобильное приложение предоставляет возможность проводить детальный анализ предпочтений и привычек целевой аудитории на этапе проектирования интерфейса, и, следовательно, увеличить шансы на создание конкурентоспособного продукта.