Материал: Разработка и продвижение мобильного приложения

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

. Поиск в базе данных и визуализация на картах Yandex и Google объектов выбранной категории, представляющих туристический интерес.

. Выбор желаемых объектов интереса для поиска маршрута.

. Отображение выбранного объекта на карте.

. Навигация по выбранному маршруту с использованием карт Yandex и Google.

. Реализация клиентского приложение на платформе Android.

. Использование встроенной реляционной базы данных SQLite.

Перейдем к разработке структуры мобильного приложения, а именно - к созданию технического задания.

2.3.2 Разработка структуры мобильного приложения: техническое задание

Для начала определимся, что такое техническое задание и для чего оно необходимо.

Техническое задание (также - техзадание, ТЗ) - технический документ (спецификация), оговаривающий набор требований к системе и утверждённый как заказчиком/пользователем, так и исполнителем/производителем системы. Такая спецификация может содержать также системные требования <#"877831.files/image001.gif">

Рис. 4 . Структурная схема мобильного приложения

В данной схеме «Блок карт» включает в себя информацию о местоположении и как добраться до места. В блоке «Запустить приложение» пользователь сможет выбрать один из блоков которые представлены в приложении: «Блок Выбрать категории», «Блок выбрать «объекты»», «Блок Достопримечательности», разделе «Выбрать объекты» отображается информация о разных местах и не только, с помощью комплекса «SCADA системы» можно собрать и обработать информацию мест которые были внесены в приложение.

Диаграмма вариантов использования мобильного приложения отражает отношения между пользователем и вариантами использования, т.е. описывает типичный способ взаимодействия пользователя с системой.

Рис. 5. Диаграмма вариантов использования мобильного приложения «Культурный Таганрог»

Программное приложение для ОС Android состоит из набора активностей, каждой из которых соответствует экран приложения. Каждая активность представлена в проекте классом, реализованном на языке Java, хранящемся в одноименном файле с расширением java. Каждой активности соответствует xml файл-описание. В xml-файле описано в виде xml-кода расположение визуализируемых объектов. При запуске активности система Android автоматически распознает размер экрана мобильного устройства и приводит выводимый контент в соответствие с разметкой, описанной в xml-файле. Таким образом, одна и та же активность будет выглядеть одинаково независимо от диагонали используемого устройства. Также, для каждого приложения Android должен существовать xml-файл, в котором в виде xml-кода будут прописаны минимальные требования к системе, а также активность, вызываемая при запуске приложения [28].

Приложение работает со встраиваемой реляционной базой данных SQLite. SQLite не использует парадигму клиент-сервер, то есть движок SQLite не является отдельно работающим процессом, с которым взаимодействует программа, а предоставляет библиотеку, с которой программа компонуется и движок становится составной частью программы. Таким образом, в качестве протокола обмена используются вызовы функций (API) библиотеки SQLite. Такой подход уменьшает накладные расходы, время отклика и упрощает программу. SQLite хранит всю базу данных (включая определения, таблицы, индексы и данные) в единственном стандартном файле на том компьютере, на котором исполняется программа [29].

Рис. 6. Пошаговая схема работы фрагмента приложения

На рисунке 3 представлена диаграмма работы фрагмента реализуемого приложения, демонстрирующая выбор музея «museums» в категории «culture».

В области разработки программного обеспечения используется специальный язык для графического описания объектного моделирования -язык UML (UnifiedModelingLanguage). При описания работы приложения создается абстрактная модель системы или подсистемы, называемая UML-моделью. На стадии описания работы приложения для наглядного представления работы отдельных функций приложения приводится диаграмма компонентов [24].

Поскольку основными элементами приложения для ОС Android являются активности, то схема работы реализуемого приложения представляет собой схему связей между активностями. В Приложении 1 показана диаграмма активностей UML, демонстрирующая работу всего разрабатываемого приложения. [25]

На рисунке 7 представлена диаграмма потоков данных. Потоки данных в рассматриваемой диаграмме распространяются от базы данных к остальным элементам посредством SQL-запросов.


При загрузке приложения основная активность обращается к базе данных, находящейся на диске. Если на диске база данных не обнаружена, то создается пустая база данных и происходит её обновление через интернет.

Таким образом, пользователь может выбрать интересующие его категории объектов. При выборе категории в меню загружается активность «Категория», которая обращается к базе данных и, считав возможные категории, отображает их в списке. При выборе категории загружается активность «Подкатегория». С помощью механизма передачи параметров между активностями ей передается информация о категории. Эта активность тоже обращается к базе данных (формируя запрос) и выводит все подкатегории. При выборе любой подкатегории формируется запрос на изменение базы данных. Таким образом, база данных всегда будет знать об интересующих подкатегориях и их не придется вводить после каждого перезапуска приложения.

Выход из этих активностей осуществляется с помощью кнопки «Назад». Активность «Таблица» формирует запрос к базе данных на основании выбранных категорий и выводит список всех объектов в табличной форме. Также с помощью специальной функции из Google Map и Yandex API и вычисляется расстояние между объектом и текущим местоположением.

При необходимости получения дальнейшей информации загружается следующая активность, куда передается ID номер выбранного объекта.

Активность представляет собой Tab View, в одном из табов которого находится карта, а в других -текстовые поля. Активность запрашивает из базы данных информацию об объекте и заполняет текстовые поля.

При необходимости получения дальнейшей информации загружается следующая активность, куда передается IDномер выбранного объекта.

Активность представляет собой TabView, в одном из табов которого находится карта, а в других - текстовые поля. Активность запрашивает из базы данных информацию об объекте и заполняет текстовые поля.

Список модулей

Функционально, приложение состоит из приведенных ниже модулей (активностей). Активность является схемой представления Android-приложений.

Каждый экран пользовательского интерфейса представлен классом Activity и по сути является отдельной формой приложения. Android-приложение способно состоять из нескольких активностей и может переключаться между ними во время выполнения приложения.

·        Основная активность содержит объект карты и подменю выбора категории. Она предназначена для определения пользователем собственного местоположения и выбора интересующей его категории.

·        Активность выбора категории фильтрации содержит несколько элементов управления, которые позволяют уточнить область, интересующую пользователя. После выбора этой области происходит переход в следующую активность. В параметрах передается уточненная информация по области интереса. Активность использует шаблон форматирования ListView. Работа с базой данных происходит с помощью класса SqlDataHelper.

·        Активность выбора объекта интереса содержит список объектов интереса, удовлетворяющих выбранным ранее критериям. Для этого активность, получив в параметрах уточненную информацию об объектах интереса, формирует запрос к базе данных и на основании полученной от базы данных информации создает динамический список объектов с помощью адаптера «ArrayAdapter».Работа с базой данных происходит с помощью класса SqlDataHelper.

·        Активность TableView содержит список объектов из выбранных категорий с указаниями расстояния до них. Активность посылает запрос к базе данных о выбранных категориях и на основании полученной информации формирует новый SQL-запрос для получения всех интересующих объектов. При выборе любого объекта запускается новая активность TabWidget, в качестве параметров которой передается идентификатор объекта.

·        Активность TabWidget: На основании идентификатора объекта формируется SQL-запрос для получения расширенной информации об объекте, такой как информация о выставках, скидках, GPS-координатах, адресе и режиме работы.

Схема активностей разработанного мною приложения представлен с помощью диаграммы классов UML (Приложение 2).

По умолчанию, в Android используется SQLite-популярная и простая в освоении реляционная база данных. SQLite поддерживает типы TEXT(аналог Stringв Java), INTEGER(аналог long в Java) и REAL(аналог double в Java). Остальные типы следует конвертировать, прежде чем сохранять в базе данных[27].

Библиотека Android содержит абстрактный класс SQLiteOpenHelper, с помощью которого можно создавать, открывать и обновлять базы данных. Это основной класс, с которым осуществляется работа в проекте. При реализации этого вспомогательного класса скрывается логика, на основе которой принимается решение о создании или обновлении базы данных перед ее открытием.

Класс SQLiteOpenHelper содержит два абстрактных метода: onCreate()-метод, который вызывается при первом создании базы данных, а также onUpgrade, который вызывается при модификации базы данных.

В приложении создан собственный класс diplom_Data_Base, наследуемый от SQLiteOpenHelper. В этом классе реализованы методы onCreate и onUpgrate. В них описана в них логика создания и модификации базы данных.

В методе onCreate таблицы заполняются начальными значениями. При этом метод onCreate вызывается только один раз при создании базы данных.

Запрос к базе данных выполняется с помощью вызова SQLiteDatabase::query.

В результате выполнения запросов возвращается объект Cursor, содержащий таблицу с результатами запроса. Cursor предполагает последовательную работу со строками результата. В каждый момент времени активна одна строка, на которую ссылается указатель. Перебирая записи последовательно, можно получить доступ к данным.

Описание функциональности

При запуске приложения на экран отображается подгруженный фрагмент карты (Gogle map), на котором отмечено текущее местоположение пользователя (рис. 8). Для более детального просмотра (к примеру, поиск улицы и номера домов) можно регулировать масштаб карты.

При нажатии на кнопку выбора первого меню пользователю сначала предоставляется фильтр объектов по категориям, а затем checkbox, с помощью которого можно отметить интересующие типы объектов данной категории. Эти действия в соответствующем порядке показаны ниже на рисунке 8.

Рис. 8.Выбор категорий

Определившись с типом объектов для поиска, пользователю предоставляется список объектов в табличном виде, взятый из базы данных, с указанием адресов (рис. 9). При выборе на карте конкретного объекта можно посмотреть отдельно информацию о нем.

Рис. 9.Просмотр информации о выбранном объекте

Для ориентации пользователя предлагается после просмотра информации об объекте посмотреть выбранный объект на карте и построить маршрут до него с помощью карт Google Maps (рис. 10).

Рис. 10.Построение маршрута с помощью навигации карт Google Maps

Так же, встроена и погода в приложении, которая с помощью интернета обновляется 24 часа в сутки (рис.11).

Рис. 11. Показ погоды

Тестирование

В процессе разработки приложения производилось поэтапное тестирование с целью выявления программных ошибок и несоответствий техническому заданию. Для этого нами были созданы эмуляторы смартфона и планшета с разными диагоналями экрана для разных версий Android. Тестируемый программный продукт последовательно запускался на этих эмуляторах, его поведение анализировалось, и при необходимости по результатам анализа вносились изменения в код [26].

Для тестирования отдельных модулей работы с базой данных в текст программы были внесены специальные функции, позволяющие анализировать базу данных и, при подозрении на ошибку, выводящие сообщение в системный журнал. Они также известны как юнит-тесты. Например, при изменениях в базе данных проводилась проверка целостности базы данных (проверка на соответствие ключей - индексам),после чего при необходимости выводилось сообщение в системный log.

Были проведены приведенные ниже тесты.

. Каждая активность была подвергнута юнит-тестированию с целью выявления ошибок, вызванных несоответствием ожидаемых и полученных параметров. Для этого для каждой активности был создан специальный юнит-класс, посылающий в активность различные верные и неверные параметры. При аномальном поведении активности или ее сбое, анализировалось поведение, и ошибка исправлялась.

. В базу данных намеренно вносились недопустимые данные в соответствующие поля, которые могли быть неверно интерпретированы программой. Затем анализировалось поведение активности во время обработки недопустимых данных.

. Приложение было запущено на устройствах, работающих под управлением разных версий Android с целью выявления особенностей работы приложения, запущенного в разных операционных системах.

. После завершения цикла разработки, программный продукт тестировался на реальных устройствах. По результатам тестирования была добавлена виртуальная кнопка «Меню» для устройств, не имеющих аппаратных кнопок.

Рассмотрим возможные варианты развития программного приложения

Возможными путями развития приложения являются:

. интеграция приложения со сторонними базами данных;

. реализация двухкомпонентной базы данных (локальной базы данных и базы данных в облаке);

. реализация возможности подгрузки пакетной информации;

. обновление мест интереса с использование удаленного сервера;

. реализация интерфейса на различных языках.

ГЛАВА 3. Разработка плана продвижения мобильного приложения

.1 Обзор методов продвижения мобильного приложения

После того, как приложение создано и размещено в сети, о нем необходимо сообщить потенциальным потребителям. В начале существования приложения большинство посетителей попадают на страницы через поисковые системы в «Play market». Для того, чтобы приложение начало выводиться по тем или иным поисковым запросам, оно должно быть проиндексированным поисковыми роботами и занесен в их базы данных контента . Поднять страницы в поисковой выдаче и повысить посещаемость сайта можно несколькими способами, а именно, бесплатными и платными, каждый из которых обладает плюсами и минусами.

1.Оптимизация - это уникальное название приложения и наличие ключевых слов в описании приложения. Но не только. Попадание в ТОП зависит, так же, от количества скачивания приложения, а так же от его рейтинга среди пользователей. При этом важно своевременно обновлять приложение, так как устаревшие версии не просто удаляют из поисковой выдачи, но и напрочь удаляют из каталогов [1].

. Интегрированная реклама на других приложениях.

Для этого необходимо совершить следующие действия.

1) Коммуницировать с потенциальными клиентами в тех приложениях, которые они уже установили.

) Разместить рекламу в популярных приложениях.

) Категоризировать целевую аудиторию по интересам, выбрав именно те приложения, которые пользуются у них спросом.