Файл: Критерии выбора средств разработки мобильных приложений (Разработка мобильного приложения для курьерской службы доставки «Ptichka»).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.06.2023

Просмотров: 68

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

● Expo предоставляет удобный интерфейс для отладки кода при его разработке. Все ошибки и логи можно выводить в консоль клиентского приложения от Expo или же в консоль браузера при отладке через него. Также предоставляется функционал для запуска разрабатываемого приложения на эмуляторах мобильных устройств или же на реальном мобильной устройстве при подключении к одной wifi сети;

● Expo предоставляет свой интерфейс для взаимодействия с возможностями устройства: камера, контакты, локальное хранилище данных и тд. Поэтому не нужно загружать различные отдельные библиотеки под эти задачи;

● еще одной особенностью Expo является обновление приложения, установленного на устройстве, в реальном времени: после сборки и публикации новой версии, все приложения, ранее установленные пользователями, будут обновлены. Это очень мощный функционал, он решает одну из главных проблем в мобильной разработке - совместимость между версиями. Без возможности обновления приложений в реальном времени, при выпуске новых версий для него всегда нужно реализовывать совместимость со старыми, так как пользователи не всегда сразу же обновляют установленные приложения [8].

3. Реализация мобильного приложения для курьерской службы доставки «Ptichka»

Архитектура приложения

Структура реализации архитектуры разработанного мобильного приложения изображена на рисунке 1.

Рисунок 1 – Структура разработанного приложения

В проектировании реализованного приложения использовался Flux в качестве архитектурного подхода, суть которого была описана ранее. Поэтому весь объем данных, используемых в приложении хранится в общем хранилище, которое представлено классом AppState. Хранилище содержит все сущности, используемые в приложении:

  • cities – города доступные для работы;
  • profile – данные пользователя;
  • location – геоданные пользователя;
  • activeOrders – выполняемые пользователем заказы;
  • availableOrder – доступные пользователя заказы;
  • balance – данные по балансу пользователя;
  • messagesFAQ – информационные материалы о работе;
  • notifications – системные уведомления для пользователя.

Для работы с API серверов был реализован соответствующий класс. Все запросы к API серверу осуществляются через протокол https. Метод loadCities загружает список городов обращаясь к базовому API серверу – московскому. Все остальные запросы отправляются к API серверу, соответствующему выбранному для работы городу – у каждого города есть свой API сервер.


Помимо обращения к API серверу данные на мобильное устройство могут прийти с push-уведомлением. В уведомлении содержится тип данных, чтобы на мобильном устройстве можно было понять, как их обработать, например orderPublished, и сами данные. Для работы с данными был реализован класс NotificationManager.

Приложения, написанные на React Native, не сохраняют своего состояния после выключения, поэтому при запуске приложения общее хранилище будет пустым. Преимущество такого поведения в том, что приложение будет занимать минимум памяти, необходимой для хранения данных на устройстве. Однако есть ряд данных, которые должны храниться на устройстве и быть доступными при запуске приложения без обращения к серверу. Например, токен для аутентификации, выбранный для работы город, данные пользователя и т.д. Для таких данных React Native предоставляет AsyncStorage – это хранилище, в которое можно добавлять, удалять и извлекать данные, но, в отличие от общего хранилища, данные в AsyncStorage будут сохранены после выключения приложения или телефона и будут доступны при следующем запуске. Для работы с AsyncStorage был реализован класс Storage.

Интерфейс пользователя реализован через классы представлений:

  • MesageForCourierView – страница с системным уведомлением для пользователя;
  • SelectCityView – страница со списком городов, доступных для работы;
  • ManageBalanceView – страница с управления балансом курьера: просмотр текущего баланса, пополнение баланса и просмотр списка операций с балансом;
  • PhoneConfirmationView – страница ввода номера при регистрации;
  • CodeConfirmationView – страница ввода кода подтверждения номера при регистрации;
  • FAQVIew – страница с информацией о работе;
  • AvailableOrdersView – страница со списком доступных заказов;
  • ActiveOrdersView – страница со списком выполняемых заказов.

Реализация приложения

Курьерская служба «Ptichka» распространена в нескольких городах. У каждого из городов есть свой API сервер. Соответственное, перед регистрацией, пользователю нужно будет выбрать город, в котором он будет работать (рисунок 2).

Рисунок 2 - Страница с выбором города для работы

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


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

Рисунок 3 – Страница для ввода номера телефона при регистрации

Далее он перенаправляется на страницу ввода кода подтверждения номера телефона, который пришел ему по смс (рисунок 4).

Рисунок 4 – Страница с для ввода кода подтверждения номера телефона

После ввода корректного кода подтверждения телефона пользователю нужно ввести свое имя и фамилию (рисунок 5).

Рисунок 5 – Страница для ввода имени и фамилии

После ввода имени и фамилии регистрация завершается, и пользователь перенаправляется на страницу с доступными заказами.

Страница с доступными заказами представлена кнопкой “Обновить список заказов” и списком с доступными заказами. При нажатии на кнопку “Обновить список заказов” на API сервер отправляются текущие геоданные пользователя и совершается запрос за данными о доступных для него заказах. Каждый из заказов размещен в списке в отдельном блоке (рисунок 6).

Изначально, при добавлении нового заказа в список, через обращение к API или при получении push-уведомления, данные по заказу отображены в короткой форме: отображены только первый и последний адреса, причем у адресов указано только близлежащая к ним станция метро, но не отображены дополнительное поручение и комментарий от клиента. При нажатии на кнопку “Нет” пользователь может убрать заказ из списка доступных, а при нажатии на кнопку “Подробнее” просмотреть всю информацию по заказу и открыть карту с пунктами назначения, указанными в нем (рисунок 7).

Рисунок 6 – Короткая форма отображения информации по доступному заказу

Рисунок 7 – Отображение подробной информации по доступному заказу

При нажатии на кнопку «Показать карту» пользователю отобразится карта, на которой отображено местоположение адресов, которые указаны в заказе (рисунок 8). Карта реализована при помощи API Google Maps.

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


Рисунок 8 – Карта с адресами, указанными в заказе

На странице с активными заказами расположен список заказов, которые выполняются пользователем в данный момент. В списке с заказами для каждого заказа отображается его номер и первый адрес (рисунок 9).

Рисунок 9 – Список активных заказов

При нажатии на один из элементов в списке пользователю отображается подробная информация по соответствующему заказу: адреса, которые нужно посетить, контактные данные к каждому из них и время к которому нужно забрать и доставить посылки (рисунок 10); тип посылки, описание дополнительного поручения и комментарий от клиента, если они указаны в заказе, а также полное описание составляющих цены заказа (рисунок 11).

Рисунок 10 – Список адресов у выполняемого заказа

Рисунок 11 – Информация по выполняемому заказу

Также на странице с подробной информацией по выполняемому заказу расположены кнопки (рисунок 12):

«Показать карту», при нажатии на которую пользователю откроется карта с адресами указанными в заказе (рисунок 8);

«Выехал» для уведомления клиента о том, в какое время курьер прибудет на адрес (рисунок 13);

«Клиент недоступен» для уведомления клиента о том, что курьер не может с ним связаться (рисунок 14).;

«Передать заказ» для отказа от выполнения заказа;

«Отменить заказ» для отмены из-за некорректных данных (рисунок 15).

После нажатия на одну из кнопок на API сервер отправляется POST запрос и далее через смс сообщение клиент будет оповещен о соответствующей информации или статус заказа будет изменен на доступный/отмененный.

Рисунок 12 – Пользовательские кнопки на странице описание выполняемого заказа

Рисунок 13 – Уведомление клиента о времени прибытия

Рисунок 14 – Уведомление клиента о том, что с ним не получается связаться

Рисунок 15 – Выбор причины отмена заказа

Заключение

Чтобы определиться, какой из инструментов выбрать, выделяют такие критерии сравнения, как:


1) платформа;

2) поддерживаемые языки программирования;

3) функциональные особенности;

4) стоимость.

Работа в курьерской службе доставки «Ptichka» подразумевает под собой доставку посылок по указанным клиентам адресам. Соответственно, для коммуникации с клиентами, управления выполняемыми заказами и получения новых, у работника должна быть возможность в любом месте и в любое время взаимодействовать с сервером службы для получения необходимой информации.

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

В качестве альтернативного решения было предпринято реализовать мобильное приложение для курьеров службы. Мобильные устройства уже давно стали хорошей платформой для создания бизнес приложений. Приложение легко установить на телефон через магазин, предоставляемый его операционной системой. На сегодняшний день мобильные телефоны и планшеты предоставляют достаточно вычислительных мощностей для реализации сложной логики и функционала в разрабатываемых приложениях. И основное преимущество мобильных приложений – это доступность в любом месте. Соответственное, если приложение разрабатывается для работы, связанной с передвижением пользователя, то реализация этого приложения на мобильных устройствах будет отличным решением.

Список использованных источников

  1. Белов П.М. Основы алгоритмизации в информационных системах: Учебн. Пособие.- Спб.: СЗТУ, 2003. – 85с
  2. Войт Н. Н. Информатика и вычислительная техника. - Ульяновск: УлГТУ 2013. 362 с.
  3. Голощапов А. А. Google Android: программирование для мобильных устройств. - Спб.: БХВ - Петербург 2014. 163 с.
  4. Макаров В.Л. Программирование и основы алгоритмизации.: учебн. пособие.-Спб., СЗТУ, 2003, - 110с.
  5. Медникс З., Дорнин Л., Мик Б., Накамура М. Программирование под Android. – O’Reilly: Питер, 2013 – 559 с.
  6. Основы алгоритмизации и программирования : учебное пособие / Г. Р. Кадырова. – Ульяновск : УлГТУ, 2014. – 95 с
  7. Основы алгоритмизации и программирования: учеб. пособие / Т.А. Жданова, Ю.С. Бузыкова. – Хабаровск : Изд-во Тихоокеан. гос.ун-та, 2011. – 56 с.
  8. Пискунова Н. В. Заработать миллионы с Iphone и Android пользователей. - М.: Финансы и статистика 2015. 162с.
  9. Программирование и основы алгоритмизации: Для инженерных специальностей технических университетов и вузов. /А.Г. Аузяк, Ю.А. Богомолов, А.И. Маликов, Б.А. Старостин. Казань: Изд-во Казанского национального исследовательского технического ун-та - КАИ, 2013, 153 с.
  10. Соколов В. В. Вычислительная техника и информационные технологии. Разработка мобильных приложений. Учебное пособие. - М.: Юрайт 2016. 176 с.
  11. Фадеев А.Ю., Волкова Е.А. Сравнительный анализ программного обеспечения для разработки мобильных приложений // Наука и перспективы. 2016. №3. URL: https://cyberleninka.ru/article/n/sravnitelnyy-analiz-programmnogo-obespecheniya-dlya-razrabotki-mobilnyh-prilozheniy (дата обращения: 03.02.2019).
  12. Цхошвили Д.З. О выборе инструментов для разработки мобильных приложений // Современные научные исследования и инновации. 2017. № 11 [Электронный ресурс]. URL: http://web.snauka.ru/issues/2017/11/84703 (дата обращения: 23.09.2018).