Санкт-Петербургский Государственный Университет
Математико-механический факультет
Кафедра системного программирования
Разработка масштабируемого интерфейс
а для клиентской программы с динамическим контентом
Курсовая работа студента 345 группы
Добролеж Анны Борисовны
Научный руководитель Вячеслав Алексеевич Кириллин
кандидат ф.-м.н.
Санкт-Петербург
1.Оглавление
2.Введение
3.Постановка задачи
4.Проблемы реализации
5.Описание решения
6.Список литературы
1.Введение
Данная курсовая работа выполнялась в рамках участия в проекте системы мобильного маркетинга SmartKupon.
Проект SmartKupon - это новый рекламный инструмент, в основе которого лежит привлечение клиентов в заведения, посредством предоставления им специальных дисконтных условий и информирования об уникальных акциях. SmartKupon - это программа в мобильном телефоне, которая доступна для установки бесплатно каждому владельцу практически любого современного мобильного устройства.
В основу рекламного механизма по системе SmartKupon заложены следующие принципы:
· Рекламодатель платит только за результат, то есть только за тех клиентов, которые воспользовались услугой;
· Рекламодатель имеет возможность получить детальную статистику и отчетность по рекламной кампании в любой момент времени;
· Клиент сам заинтересован в получении рекламного предложения в каждом случае, реклама не должна навязываться;
· Рекламные предложения не отвлекают клиента, и не вызывают отторжения и неприязни, как например SMS рассылка;
· Сделан акцент на качество и удобство просмотра рекламных материалов соответствующих потребностям клиента;
· Клиент, выбирая рекламное предложение на своем телефоне, имеет возможность прямо на экране с рекламным предложением получить самую важную информацию, которая необходима для принятия решения. Например, для предложения от кинотеатра - расписание сеансов;
· Система выдает клиенту рекламные предложения согласно его профайлу. Учитывается следующая информация:
o в чем клиент заинтересован
o в чем клиент не заинтересован
o сколько клиент готов потратить на услугу
o район проживания клиента
· В каких местах города клиент бывает
· Местоположение клиента непосредственно в момент выбора услуги
· Решается проблема "как проехать", в том числе и для торговых и бизнес центров;
· Рекламодателю предоставляется возможность обратной связи с клиентом, возможности по интерактивному взаимодействию не ограничены.
Данная курсовая работа затрагивает лишь часть проекта SmartKupon, а именно пользовательский интерфейс клиентского приложение под платфору WindowsMobile.
Однако стоит отметить, что эта клиентская часть системы является одной из наиболее важных с точки зрения успешности проекта, так как именно эта часть системы будет предоставлять конечным пользователям, и именно от удобства, быстродействия и прочих параметров качества продукта зависит его успешность.
2.Постановка задачи
Задачей курсовой работы было разработать мобильное приложение для работы с электронными мобильными купонами, удовлетворяющее следующим требованиям:
· Моментальный отклик на любое действие пользователя. Вне зависимости от загруженности приложения, не должно быть ощущения «зависания»
· Загрузка приложения должна занимать минимальное время, в зависимости от возможностей устройства.
· Использование приложения интуитивно понятно и не требует дополнительных технических навыков
· Приложение должно быть не требовательно к техническому оснащению устройства. Т.е. Оно должно одинаково хорошо работать как на устройствах предыдущего поколения, так и на современных устройствах.
неполадкам (и адекватно на них реагировать): таким, как отсутствие доступа к сети, всяческие действия пользователя, в том числе и не предусмотренные инструкцией (хаотичное нажатие кнопок)
3.Обзор существующих решений.
Было проведено исследование имеющихся на данный момент похожих продуктов. Наиболее близкие по смыслу приложения, найденные на российском и зарубежном рынках – Topskidka.ru и CouponCabin соответственно.
Ниже, на Фиг.1 приведён сплэш-скрин приложения Topskidka.Ru
Фиг.2
Плюсом этого приложения со стороны пользовательского интерфейса можно назвать компоновку элементов, позволяющую получить максимально полную информацию о конкретном предложении из одного экрана. Однако отношение занимаемой изображением области текстового поля хотелось бы изменить в пользу графических ресурсов.
Теперь рассмотрим, что нам предлагает зарубежный рынок мобильных приложений подобного рода.
На Фиг.2 приведён экран приложение CouponCabin.
Фиг. 1
Из отмеченных мною плюсов по сравнению с предыдущим приложением -
привычный и интуитивно понятный пользователю поиск, некоторое оживление текста с помощью верхней панели-логотипа приложения.
Навигация по приложению достаточно приятная, но во многом продуманна исключительно для устройств с тач-скрином, а не для кнопочных устройств, чего хотелось бы избежать нашем приложении.
По окончанию обзора, хотелось бы отметить, что основным их недостатком с точки зрения интерфейса – практически исключительно текстовые элементы интерфейса. Собственно, этот момент был отмечен в исследовании уже существующих решений, и данном приложении это будет по возможности исправлено.
4.Проблемы реализации
В связи с различными и техническими возможностями устройств возникает довольно большое количество проблем, в том числе и в реализации интерфейса.
Основной проблемой при разработке интерфейса оказалось различное разрешение экранов.
Помимо стандартных типов QVGA (Quarter Video Graphics Array)(320×240) и разрешение VGA(Video Graphics Array) (640×480), отношение высоты, к ширине которых привычные 4:3, есть ещё отличающиеся от них - как с большим отношением длины к ширине, так и с меньшим, более близким к единице.
Проведённые исследования рынка мобильных устройств показали, что процент устройств с «нестандартным» разрешением достаточно велик.
Т.е. проигнорировать эту часть устройств, допустив возможно некорректную работу программы, или неудобный интерфейс не возможно.
6.Описание решения.
Итак, основной вопрос, появившийся в связи с различными разрешениями экрана — это вопрос масштабирования ресурсов, как встроенных, та и поступающих с сервера текстовых ресурсов и изображений.
Изначально, в качестве пробного решения предлагался вариант полного масштабирования. Т.е. к любому графическому ресурсу прикреплялось два числа, которые обозначают, сколько процентов по вертикали и по горизонтали от размера экрана он занимает.
Такое решение казалось наиболее явным. Но в процессе реализации оказалось, что то масштабирование картинок, которое предлагает нам платформа Windows Mobile, ведёт к очень большой потере качества изображения, что неприемлемо для приложения, основой которого являются именно графические ресурсы.
Тесты показали, что наибольшие проблемы возникают при «неподобном» сжатии/растяжении, т.е. когда исходное отношение высоты ресурса к его длине отличается от требуемого. На основании этого, было принято решение всегда сохранять пропорции ресурса, а домножить размеры на множитель, полученный как меньший из двух отношений (высота к высоте, ширина к ширине требуемого ресурса к исходному), а далее проводить только центровку изображения.
Таким образом, удалось добиться достаточно хорошего качества изображений как на экранах с большим разрешением, так и на устройствах, с нестандартным отношением сторон экрана.
В отношении фоновых ресурсов было принято решении заменить изображение фона на небольшую часть симметричной текстуры, которой потом можно будет «замостить» любое пространство. Это дало значительные улучшения как в качестве изображения (полное отсутствия сжатия/растяжения), так и размере ресурсов (размер всего каждой фоновой картинки уменьшилась более чем в 12 раз)
Так же было важно реализовать помимо управления приложением с помощью тач-скрина (собственно основной способ по умолчанию), полноценное управление приложением исключительно с помощью хардварных кнопок.
Была полностью продуманна и реализована логика переход как между областями на купоне (на данный момент это кнопки) так и между самими купонами, и, естественно, между экранами.
Логика управления реализована таким образом, чтобы все действия, которые может совершить пользователь с помощью тачскрина, могут быть без проблем повторены исключительно клавишами устройства.
Заключение
Результатом работы над проблемой, заявленной в курсовой, стало клиентское приложение, демонстрирующее возможность решить поставленные задачи на промышленном уровне.
Приложение удовлетворяет заявленным выше требованиям, достаточно стрессоустойчиво, что подтверждено тестированием, проведёнными по окончанию разработки отделом качества ООО «SmartKupon».
На данный момент, приложение доступно находится на бета-тестировании, что позволяет получить отзыв реальных пользователей и исправить возможные недочёты в ближайшее время. Так же планируется в скором времени выпустить приложение в общее пользование, в качестве части системы мобильного маркетинга SmartKupon.
Список литературы:
2)Programming Microsoft Windows CE .NET, Third Edition
3)Writing Mobile Code Essential Software Engineering for Building Mobile Application