Опишите ваш проект
Наши специалисты свяжутся с вами в ближайшее время
Отправив запрос вы получаете:
  • Письмо или звонок от нашего менеджера
  • Оценку своего проекта
  • Личную встречу, при необходимости
  • Конфиденциальность гарантирована!
maxim_kaschjev
Ваш менеджер
Максим Кащеев
С удовольствием ответим на все ваши вопросы
Задать вопрос
Project Management

Заметки разработчика или 3 проблемы 5Star Service, о которых мы ещё не говорили

Когда ты чем-то гордишься, то хочется об этом рассказывать снова и снова. Мы уже писали о нашем проекте 5Star Service в блоге, где затронули маркетинговую сторону (идеи, задачи и решения и т. д.) — тут, конечно, мы всё и всех победили. Приложение получилось уникальным в своем роде, при этом остается универсальным и адаптируется под любой B2C-бизнес. Но в этой статье мы поговорим о технической стороне процесса и приоткроем тайны разработчиков.

Что важно для приложения, которое занимается сбором отзывов? Отвечаем: быстрая работа и отзывчивый, располагающий к взаимодействию интерфейс. Чтобы поставить оценку, пользователь должен оставить собственные данные (номер телефона и оценку) — да уж, не самый «простой» нюанс! Поэтому мы постарались настолько ускорить работу и проработать дизайн, чтобы все прошло мгновенно.

Проблема № 1: Скорость превыше всего

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

Но что делать, если возникнут неполадки на сервере или будет плохой интернет (ситуация известная)? Пользователь не сможет оставить отзыв и уйти побыстрей от навязчивых глаз персонала, он будет ждать ответ сервера, снова вводить данные и т. д. Этого мы допустить не могли, поэтому поменяли логику работы приложения.

Вся основная работа 5Star Service выполнятся «в фоне», поэтому пользователю не нужно выжидать — его взаимодействие с приложением осуществляется параллельно, а отделение модуля с сервером от главного потока обеспечило скорость.

Проблема № 2: Дойдет или нет?

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

Проблема № 3.: А если все-таки не дойдет?

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

Вместо резюме

Для всех интересующихся указываем интерфейсы и библиотеки, которые использовались при разработке приложения:

  • SQLite для работы с базой данных
  • Retrofit для работы с сетью
  • ResultReceiver для сохранения неотправленных данных в базу данных
  • IntentService для отправки запросов на сервер с использованием Retrofit
  • Fabric.io для отслеживания ошибок в работе приложения.
Поделись своей эмоцией после прочтения статьи
Давайте обсудим Ваш проект
Мы с радостью сделаем бесплатную оценку вашего проекта
Или просто загрузите файл с презентацией или описанием
Моисеев Артем
Business Development Manager
Моисеев Артем