6 Разработка мобильного приложения под Android: рефакторинг кода, переработка макета приложения, определение лучшего стека технологий и разработка приложения, тестирование, раскатка приложения на торговых площадках
Цель разработки приложения Synergy CRM заключается в предоставлении пользователям мобильной платформы Android с возможностью удобного доступа к основным функциям и возможностям, которые доступны в веб-версии приложения. С помощью приложения пользователи смогут быстро и удобно просматривать, создавать, изменять и удалять сущности, такие как контакты, компании, задачи, сделки и многое другое.
Одной из ключевых задач приложения является повышение удобства использования Synergy CRM для действующих пользователей. На основе обратной связи от пользователей, мы постоянно совершенствуем интерфейс и функционал приложения, чтобы обеспечить максимальную удобство и эффективность работы.
Кроме того, целью разработки приложения является расширение доступности приложения Synergy CRM. Это позволит пользователям Synergy CRM более удобно и просто управлять своими бизнес-процессами, работать с приложением Synergy CRM в любом месте и в любое время, взаимодействовать над своими задачами и проектами на практически любом устройстве.
Разработанное мобильное приложение позволит пользователям Synergy CRM более удобно и просто управлять своими бизнес-процессами и повысить доступность приложения. Ниже будет приведено описание этапов разработки приложения, технические особенности и возможности для пользователей.
Архитектурные паттерны и решения, которые необходимо использовать в ходе разработки приложения Synergy CRM для ОС Android были детально рассмотрены в разделе 1.4. Результаты тестирования выполненной разработки для ОС Android представлено в пунктах 14 и 15 настоящего Отчета.
Ниже рассмотрим результаты выполненной разработки с описанием доступных функциональных возможностей. Все иллюстрации разработанных окон приведены в приложении Г.
Экран Авторизации предназначен для запроса у пользователя логина и пароля для доступа к функционалу приложения (рисунок Г.1). На экране Авторизации пользователь должен ввести свой логин и пароль в специальные поля. При нажатии на кнопку "Войти" приложение отправляет запрос на сервер для проверки данных. Сервер проводит проверку логина и пароля и отправляет ответ в форматеJSON.
В случае, если данные были введены неверно, на экране Авторизации появляется сообщение об ошибке. Пользователь должен ввести корректные данные для продолжения работы с приложением. Если данные были введены правильно, пользователь перенаправляется на главный экран приложения.
Контроль и проверка данных на экране Авторизации является очень важным процессом, так как он обеспечивает безопасность и конфиденциальность пользовательских данных. Надежная система авторизации помогает предотвратить возможность несанкционированного доступа к информации, хранящейся в приложении.
Экран реализован в полном объеме в соответствии с ТЗ, весь доступный функционал проверен и работает.
Экран Меню вызывается на любом экране при нажатии на иконку меню, расположенную в нижней левой части элемента навигационное меню (рисунок Г.2).
Экран Меню является одним из самых важных элементов в приложении. В настройках приложения есть пункт «Основное меню», он поможет пользователю настроить расположение пунктов меню и скрыть неиспользуемые (рисунокГ.3).
Скрытие пунктов функция экрана Меню, которая позволяет убрать те пункты меню, которые пользователь не использует. Например, если пользователю не нужен пункт "Платежи", он может скрыть его и увидеть только нужные пункты меню. Это дает возможность сделать экран меню более удобным и простым для использования (рисунокГ.4).
Синхронизация с веб-версией на старте приложения позволяет пользователям иметь доступ к своим настройкам и данным, сохраненным на сервере. Это удобно для тех, кто часто переключается между мобильной и веб-версиями и привык уже к настройкам меню.
При разработке был использован стандартный компонент NavigationView библиотеки androidx для отображения боковой навигации и информационного хедера с информацией о пользователе. Для навигации использует Jetpack Navigation.
Экран Меню является одним из самых важных элементов приложения. Настройка расположения меню, скрытие пунктов и синхронизация с веб-версией – это три ключевые функции, которые помогают сделать экран Меню более удобным и приятным в использовании.
Функционал меню реализован в полном объеме, весь доступный функционал проверен и работает.
Экран Поиск позволяет пользователям искать определенные объекты из списка всех доступных объектов. Этот экран предоставляет пользователям простой и эффективный способ найти нужный им объект зная только название, экономя их время и усилия (рисунок Г.5).
На экране отображается строка поиска, в которую пользователи могут ввести ключевые слова, относящиеся к искомому объекту. Затем приложение отправляет запрос на сервер с поисковым запросом и в случае успешного поиска приложение получает ответ с найденными объектами, отображая только релевантные результаты распределенными по категориям, к которым относятся объекты (рисунок Г.6).
Информация во вкладках сигнализирует о найденных объектах и показывает количество совпадений, удовлетворяющим поисковому запросу.
Экран расположен в нижнем навигационном меню приложения, что делает его легко доступным с любого экрана. Так же поиск доступен на экране со списком объектов, для поиска в выбранном разделе.
Экран Поиск работает с большим количеством объектов и предоставляет быстрый и удобный способ найти нужный объект. Данная функция повышает удобство для пользователей и производительность.
Экран Чаты позволяет просматривать и управлять всеми чатами в одном месте, облегчает отслеживание сообщений(рисунок Г.7).
Приложение поддерживает получение пушей с информацией о новом сообщении. При нажатии на уведомление происходит открытие приложения (если в данный момент оно было неактивно) и переход в чат, в котором пришло новое сообщение. На экране отображается список всех активных чатов, причем самые последние чаты находятся вверху. Вы можете нажать на любой чат, чтобы открыть его и начать набирать сообщение.
Получение уведомлений реализовано с помощью Firebase cloud messaging, рекомендованной sdk, которая является в отличии от аналогов полностью бесплатной. После того как пользователь прошел авторизацию, на сервер Synergy CRM отправляется информация о токене, полученном при запросе по api Firebase для конкретного устройства. Это нужно для уникальности и идентификации пользователя в среде Firebaseдля получения пользователя уведомления.
В приложение добавляется слушатель сообщений, который взаимодействует с api Firebase,когда приложение находится в активном состоянии. Сообщение содержит такую информацию как идентификатор, текст, а также может содержать кастомизированный ответ, соответствующий логике приложения, например такой как идентификатор чата из которого пришло уведомление. Все данные передаются в зашифрованном виде, для повышенной безопасности приложения и передаваемых в нем данных.
На экране также можно искать конкретные чаты и управлять настройками, добавлять описание к чату. При необходимости доступно редактирование уже отправленного сообщения.
Экран Чаты – это удобный и эффективный способ управления всеми вашими разговорами в одном месте, не переключаясь в другие приложения для коммуникаций.
Экран Контакты – раздел, содержащий список контактов или другими словами физических лиц, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунок Г.8).
Экран Контакты представляет собой инструмент для управления деловыми контактами. Экран содержит раздел, в котором отображается список всех контактов, созданных пользователем в веб-версии приложения или в мобильном приложении. Список организован в алфавитном порядке и может быть отсортирован по различным критериям, таким как имя, компания или дата добавления (рисунок Г.9).
Каждый контакт в списке содержит подробные данные об отдельном субъекте, включая его имя, должность, компанию, контактную информацию (например, номер телефона и адрес электронной почты). Кроме того, вы можете просмотреть связанные с контактом объекты, такие как задачи, встречи и сделки (рисунок Г.10).
На экране просмотра списка легко добавлять новые контакты, редактировать существующие или удалять контакты, которые больше не актуальны. Также можно создавать пользовательские поля для хранения дополнительной информации о контактах, например, об их отрасли или местонахождении.
Экран Уведомления предназначен для отображения всех уведомлений, которые вы получаете из приложения, включая напоминания о встречах и уведомления о просроченных задачах(рисунок Г.11).
Уведомления кроме экрана, так же дублируются нотификаций в информационной панели вашего телефона. Отслеживая эти уведомления, вы можете быть уверены, что никогда не пропустите важный срок или встречу.
Для получений пушей используется Firebase cloud messaging. При нажатии на нотификацию пользователь может перейти для просмотра объекта, о котором пришла информация.
При открытии экрана информация получается с сервера Synergy CRM, о всех уведомлениях, которые произошли за время с последнего запроса.
Экран организован удобным образом: самые последние уведомления отображаются в верхней части. Вы можете прокрутить список, чтобы просмотреть все уведомления, или применить фильтр уведомлений, чтобы просматривать только определенные типы уведомлений, например, «Вас назначили ответственным» (рисунок Г.12).
Одной из самых полезных функций экрана Уведомления является возможность перейти к просмотру объекта, к которому относится уведомление, например, когда вас назначают ответственным по задаче.
Экран Уведомления представляет собой важный информационный инструмент, с помощью которого пользователь всегда будет в курсе назначенных встреч и задач, что позволит ему не пропустить важный срок или встречу.
Экран Уведомления обеспечивает централизованное хранение всех уведомлений и позволяет настроить параметры в соответствии с вашими потребностями (рисунок Г.13).
Экраны отображения объектов. Экраны являются типовыми, далее представлено краткое описание по каждому экрану.
Все экраны отображения объектов реализованы по одной схеме: отправка запроса на сервер v1/тип сущности; парсинг ответа; сохранение в бд; отображение на экране.
Экран Компании представляет собой раздел, содержащий список компаний или другими словами юридических лиц, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунокГ.14).
Экран Компании в Synergy CRM является мощным инструментом для управления деловыми отношениями с другими организациями. Этот экран содержит раздел, в котором отображается список всех компаний, созданных вами в веб-версии приложения. Список организован в алфавитном порядке.
Каждая компания в списке содержит подробные данные об организации, включая ее название, отрасль, контактную информацию (например, номер телефона и адрес электронной почты), а также любые примечания или комментарии, которые вы добавили. Кроме того, пользователь может просмотреть связанные с компанией объекты, такие как контакты, задачи, встречи и сделки.
Экран Сделки содержит список сделок, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях(рисунок Г.15).
Экран Сделки позволяет пользователю просмотреть список всех сделок (рисунокГ.16). В случае, если пользователь является управляющим, то он может просматривать все сделки своих подчиненных.
В экране Сделки есть удобный инструмент для управления сделками, позволяющий переключить вид на
«Доску» с разделением сделок по категориям (рисунок Г.17). Имеется возможность перетаскивать сделки между категориями (рисунок Г.18). После открытия сделки можно посмотреть детальную информацию о сделке, а также присутствует возможность удобно изменить статус, не переключаясь с доски (рисункиГ.19 и Г.20).
Экран Заявки представляет собой раздел, содержащий список заявок, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунок Г.21).
Экран, на котором пользователь может просмотреть список всех своих заявок, а также в случае управляющих все заявки своих подчиненных. Есть возможность переключить вид на «Доску» с разделением заявок по категориям. Имеется возможность перетаскивать заявки между категориями.
После открытия заявки можно посмотреть детальную информацию (рисунок Г.22), а также присутствует возможность удобно изменить статус, не переключаясь с доски(рисунки Г.23 и Г.24).
Экран Задачи содержит список задач, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунокГ.25).
Экран, на котором пользователь может просмотреть список всех своих задач, а также в случае управляющих все задачи своих подчиненных. Есть возможность переключить вид на «Доску» с разделением задач по категориям. Имеется возможность перетаскивать задачи между категориями.
После открытия задачи можно посмотреть детальную информацию (рисунок Г.26), а также присутствует возможность удобно изменить статус или отправить в архив, не переключаясь с доски (рисунокГ.27).
Экран Счета содержит список счетов, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунокГ.28).
Экран Счета позволяет пользователю просмотреть список всех своих счетов, создать счет или отредактировать существующий (рисунок Г.29).
Экран Платежи содержит список платежей, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях(рисунок Г.30).
Экран Платежи содержит функции, связанные с просмотром соисполнителей (рисунок Г.31). Также имеется функционал по отслеживанию оплаты, отслеживанию статуса платежа, внесению изменений и использованию других функций, сопутствующих финансовым документам (рисунок Г.32).
Экран Сотрудники содержит список сотрудников, созданных в веб-версии SynergyCRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностей (рисунокГ.33). Для пользователя с ролью Управляющий имеется возможность настройки прав сотрудника прямо из приложения.
Экран Продукты содержит список продуктов, созданных в веб-версии Synergy CRM (рисунок Г.34), а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунок Г.35). Доступна возможность редактировать и создавать новые сущности.
Экран Документы содержит список документов, созданных в веб-версии SynergyCRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунок Г.36). С возможностью редактировать и создавать новые сущности. Обеспечивает удобный доступ к существующей документации созданной в веб-версии Synergy CRM (рисунокГ.37). По функционалу схож с экраном Файлы.
Экран Файлы содержит список файлов, созданных в веб-версии Synergy CRM, а также подробные данные о каждой отдельной сущности из данного раздела и связанных с ней сущностях (рисунокГ.38).
Предназначен для работы и управления файлами, возможностью скачать файл или поделиться с помощью известных мессенджеров или почтовых клиентов, а также вывести на печать документ.
Экран Звонки обеспечивает возможность просматривать историю совершенных звонков, информацию, такую как длительность, номера исходящих и входящих, а также прослушать при необходимости запись разговора.
Экран Склад представляет собой раздел, в котором можно осуществлять складские операции (рисунок Г.39) и управлять номенклатурой и ее вложенностью в сделки (рисункиГ.40 – Г.44).
Экран Сканер штрих-кодов предоставляет функционал, позволяющий проводить складские операции, сканируя штрихкод приложением.
Предоставляет функции, связанные с управлением складскими запасами: создание операций перемещения, списания, отгрузки, заказа покупателя, оприходования, приемки и заказа поставщику и созданием мест хранения.
Реализован двумя экранами: экран Операции; экран Места хранения.
Экран Сканер штрих-кодов дает возможность добавить позиции к операции через выбор нужной позиции с использованием сканера штрих-кода (рисунок Г.45). Сканер использует библиотеку машинного зрения MLKit для распознавания кода, а также Camera View для вывода изображения с камеры в приложении.
Работа над функциональными возможностями склада еще ведется, разрабатываются новые разделы, которые уже реализованы в веб-версии SynergyCRM.
Экран Договоры содержит информацию о текущих и прошлых договорах с возможностью просмотра связи договора, например, с контактом, компанией, заявкой и других (рисунки Г.46 – Г.48).
Экран Проекты позволяет пользователю просмотреть список всех своих проектов, а также в случае, если пользователь находится в статусе Управляющий, просмотреть все проекты своих подчиненных. Этот экран имеет простой и понятный дизайн, который помогает быстро ориентироваться в списке проектов (рисунокГ.49).
В верхней части экрана находится шапка, которая предоставляет доступ к другим важным функциям приложения. Ниже находится список проектов, отображаемый в виде карточек. Каждая карточка содержит краткое описание проекта (рисунок Г.50).
Пользователь может просмотреть детальную информацию о проекте, нажав на соответствующую карточку. При долгом нажатии каждой карточки есть некоторые дополнительные функции, такие как архивирование или удаление проекта.
Экран Проекты также предоставляет возможность пользователям создавать новые проекты и добавлять в них задачи. Для этого на экране есть кнопка с плюсом (рисунок Г.51).
В целом, экран Проекты в приложении является очень полезным инструментом для организации и управления проектами. Его простой и понятный интерфейс помогает пользователю быстро находить нужную информацию и легко управлять своими проектами.
Также обеспечивает удобные инструменты для управления проектами, возможность переключить вид на
«Доску» с разделением проектов по категориям. Имеется возможность перетаскивать проекты между категориями (рисунокГ.52).
После открытия проекта пользователь может посмотреть детальную информацию о проекте, а также посмотреть список задач, соответствующих проекту, разделенный по категориям задач. Присутствует возможность удобно завершить или отложить задачу, не переключаясь с доски(рисунок Г.53).
Экран Настроек прав. Предоставляет доступ к настройкам различных параметров и уровням доступа. Данный функционал доступен пользователям с ролью «Администратор» (рисунки Г.54 – Г.55).
Конфигурация настроек прав запрашивается приложением на старте с сервера, что учесть изменения произошедшие в веб версии, пока приложением не пользовались и обновляет прошлые настройки прав.
Экран Справочники предоставляет доступ к настройке, созданию и удалению основных справочников, которых соответствуют реализованным объектам мобильного приложения (рисунки Г.56 – Г.57).
Также предусмотрена возможность смены языка (рисунокГ.58) и выбора темы оформления (рисункиГ.59
– Г.60), что дает пользователям свободу выбора в настройке приложения в соответствии с их личными предпочтениями.
Экран Сортировка представляет собой функцию приложения, которая позволяет пользователям сортировать объекты в списке по атрибутам, соответствующим конкретному объекту (рисунок Г.61). На этом экране отображаются все доступные варианты сортировки, такие как алфавитный порядок, дата создания или индекс. Экран Сортировка предоставляет пользователям возможность организовать список объектов на основе своих предпочтений, облегчая поиск и доступ к конкретным объектам.
Экран Сортировка также может позволить пользователям фильтровать список по нескольким атрибутам, таким как дата создания, это помогает пользователям сосредоточиться на конкретных элементах.
Еще одной важной особенностью экрана Сортировка является возможность переключения между восходящим и нисходящим порядком. Это гарантирует, что пользователи смогут и быстро находить нужную информацию.
Экран Сортировка расположен в представлении списка и доступен через отдельную кнопку «Сортировка» на верхней панели приложения. Экран предоставляет четкую и ясную информацию о каждом варианте сортировки.
Экран Сортировка является важной функцией приложения, функционал которой реализован в полном объеме согласно ТЗ и позволяющей пользователям эффективно организовывать информацию и получать к ней доступ.
Экран Параметры атрибутов позволяет пользователям настраивать атрибуты выбранного объекта. На этом экране отображаются все доступные атрибуты объекта, такие как создатель, ответственный или тип (рисунокГ.62). Экран Параметры атрибутов предоставляет пользователям возможность изменять атрибуты объекта в соответствии со своими предпочтениями.
Экран Настройки атрибутов расположен на экране просмотра объекта и доступен через меню объекта, во всплывающем диалоговом окне пункт «Настроить поля».
Список содержит все атрибуты, которые относятся к определенному объекту и меняется от его выбора. Все атрибуты соответствуют ответу полученного с сервера, при запросе за получением информации о объекте.
Экран Настройки атрибутов является важной функцией для приложения, которая позволяет пользователям эффективно изменять и настраивать объекты.
Экран Создание объекта позволяет пользователю может создать новую сущность путем нажатия на кнопку «Создать». Для каждой сущности доступны для заполнения определенные поля, некоторые из которых могут быть настроены как обязательные в веб-версии SynergyCRM (рисунок Г.63).
Список видимых полей может быть настроен пользователем при нажатии на иконку «Троеточие» в верхней правой части экрана и выборе пункта «Видимость полей». В появившемся модальном окне пользователь определяет какие поля должны отображаться в форме создания сущности.
Для создания сущности пользователь заполняет необходимые поля и нажимает на кнопку «Создать», расположенную в нижней части экрана. Если не заполнены обязательные поля, то они подсвечиваются красным цветом и в верхней части экрана появляется уведомление с текстом «Не заполнены обязательные поля».
Кнопка «Создать» является одной из самых важных функций в приложении, позволяющей пользователям создавать новые объекты или записи. Основная задача данного функционала заключается в облегчении и ускорении процесса создания нового объекта (рисунок Г.64).
Кнопка «Создать» легко доступна для пользователя. Она расположена на главной странице приложения, в меню и на панели инструментов при просмотре списка объектов. Кнопка «Создать» имеет различные функции в зависимости от контекста: например, на экране «Контакты», взаимодействие с кнопкой перенаправит пользователя на экран создания «Контакта» (рисунокГ.65).
При взаимодействии с кнопкой в навигационной панели, пользователю покажется стандартное диалоговое окно выбора, содержащая список всех объектов доступных для создания(рисунок Г.66).
Основная функция кнопки «Создать» состоит в открытии формы для создания нового объекта. Эта форма может содержать различные поля для заполнения, такие как название, описание, дата, местоположение и т.д. В зависимости от типа объекта, форма может содержать различные поля и опции, свойственные выбранному объекту. Также при создании объекта реализована проверка обязательных полей для заполнения, в случае если поле не заполнено, то на экране появится аллерт реализованный с помощью стандартного компонента Android Snackbar, который подскажет пользователю, какое поле необходимо заполнить.
Кнопка «Создать» имеет определенную функцию, такую как сохранение объекта в базу данных и отправка его на сервер. В меню настроек приложения имеется возможность настройки списка доступных объектов для создания, есть функция скрытия пункта из списка, а также изменить расположение пунктов в списке (рисункиГ.67 – 68).
В целом, функциональность кнопки «Создать» интуитивно понятна и удобна для пользователя, что позволяет ускорить процесс создания новых объектов и делает использование приложения более эффективным.
Функционал разработан в соответствие с ТЗ, с внесением корректировок по отображению уведомления. Показ уведомления перенесен в нижнюю область приложения, для сохранения единого стиля оформления информационных сообщений.
Экран Активность позволяет пользователям просматривать активность над объектом. Вкладка активности объекта реализована отправкой запросов на сервер, содержащий id объекта, для идентификации и получения результата, отображенного в виде списка.
Экран Активность расположен на странице просмотра объекта, через отдельную вкладку и предоставлять четкую и краткую информацию о каждом виде деятельности.
На этом экране отображаются все действия, совершенные над объектом, сгруппированными по дате, такие как обновления, создания, назначения и другие. Экран Активность предоставляет пользователям полную историю жизненного цикла объекта, что облегчает отслеживание изменений и контроль прогресса.
Экран Активность является важной информационной функцией для приложения, позволяющей пользователям с ролью «Управляющий» отслеживать изменения и контролировать «Менеджеров» с течением времени.
Экраны Архив и Корзина позволяют пользователям просматривать и восстанавливать ранее удаленные элементы. Вывод на экран списка объектов реализован с помощью отправки на сервер запроса с применением фильтра, по которому формируется ответ, содержащий только сущности, которые отправлены в Архив (рисунок Г.69) или в Корзину (рисунокГ.70).
На экранах Архив или Корзина пользователи могут просмотреть список всех удаленных объектов. Они могут выбрать конкретный элемент, чтобы просмотреть его подробную информацию и восстановить его, если это необходимо.
Для удаления или отправки в архив, на экране просмотра объекта реализовано дополнительное меню, с использованием стандартного окна диалога BottomSheetDialogFragment ОС Android. После выбора действия с объектов, пользователю необходимо подтвердить свое намерение, что благоприятно сказывается на пользовательском опыте и предотвращает случайное действие над объектом.
Экраны Архив и Корзина являются важным компонентами приложения, которые позволяют пользователям управлять своими объектами. Эти экраны являются неотъемлемой частью приложения и обеспечивают удобство и эффективность использования.
Функционал экранов реализован в полном объеме в соответствии с ТЗ, весь доступный функционал проверен и работает.
В результате работы было разработано и реализовано удобное и функциональное приложение, которое позволяет пользователям эффективно управлять своими задачами и проектами, а также быстро получать доступ к необходимой информации и документации.
Таким образом, разработанный модуль обеспечивает функции, согласно пункту 4.1.1 технического задания: интеграция с интернет-магазинами, доступ через мобильное приложение; соответствует входным воздействиям в пункте 4.1.3 технического задания в полном объеме, соответствует выходным реакциям в пункте4.1.4 технического задания в полном объеме.