2.3 Обращение к серверу
Создаем элементы интерфейса для вывода получаемых значений из базы данных. Для заполнения ListView нужно создать дополнительный файл с требуемым элементом в соответствии с рисунком 2.19.
Рисунок 2.19 – элемент, который будет выводиться в ListView
Создаем на рабочем фрагменте ListView и кнопки для взаимодействия с элементами, которые будут выводиться из базы данных в соответствии с рисунком 2.20.
Рисунок 2.20 – fragment_basket
Для обращения пользователя к онлайн-серверу, первостепенно нужно создать класс, где будут перечислены выводимые элементы и добавить к ним get и set запросы в соответствии с рисунком 2.21.
Далее нужно создать адаптер, где будут заполняться элементы из ListView в соответствии с рисунком 2.22 [5].
Переходим в класс фрагмента, где перечисляем компоненты, что нам понадобятся для взаимодействия с базой данных и заполнение созданных элементов интерфейса в соответствии с рисунком 2.23.
Объявляем переменные и вызываем асинхронный метод заполнения ListView в onCreateView фрагмента в соответствии с рисунком 2.24.
После строчки «new GetBasket().execute();» вызывается асинхронный метод AsyncTask, что позволяет выполнить асинхронную работу и делать обновления пользовательского интерфейса. Для обновления реализуйте метод onPostExecute(), а всю фоновую работу заключите в метод doInBackground() в соответствии с рисунком 2.25.
Создаем событие нажатия на элемент ListView, чтобы удалить заказ. По нажатию мы записываем в класс AppData данные нажатого элемента и показываем кнопку удаления в соответствии с рисунком 2.26.
Событие нажатия на кнопку удаления с вызовом асинхронного метода удаления заказа из корзины представлено в соответствии с рисунком 2.27.
Асинхронный метод удаления заказа показан на рисунке 2.28.
Событие нажатия на кнопку оплаты с вызовом асинхронного метода удаления заказа из корзины представлено в соответствии с рисунком 2.29.
Здесь выполняется асинхронный метод изменения записи/записей в соответствии с рисунком 2.30.
Результат выполнения вышеописанного кода представлен на рисунке 2.31.
Аналогично делаем взаимодействие на фрагментах «Главная» и «Профиль».
Выше показаны основные запросы для работы между андроид приложением и back-end. Далее будет представлен клиентский интерфейс и работа с ним [6].
3 Клиентский интерфейс
В результате был реализован как андроид проект, так и back-end для взаимодействия с онлайн-сервером. Попадая разработанное приложение для полноценной работы, нужно зарегистрироваться. Для этого следует заполнить все доступные поля в соответствии с рисунком 3.32
При недостаточном количестве символов появляется предупреждение в соответствии с рисунком 3.33.
При успешной регистрации появится сообщение, сообщающее это в соответствии с рисунком 3.34.
После успешной регистрации пользователя перенаправляет на авторизацию. Для дальнейшей работы заполняем доступные поля и авторизуемся в соответствии с рисунком 3.35.
При успешной авторизации появится сообщение, сообщающее это в соответствии с рисунком 3.36.
В случае, когда недостаточно символов появится аналогичное сообщение, как и при регистрации.
После успешной авторизации у пользователя появляется полный доступ к возможностям андроид приложения.
Список доступных продуктов питания в соответствии с рисунком 3.37.
Для добавления выбранного продукта нужно нажать на него и тогда появится кнопка добавление и выбор количества желаемого товара в соответствии с рисунком 3.38.
Корзина остается пустой пока в нее не добавить желаемый товар в соответствии с рисунками 3.39 - 3.40.
Рисунок 3.40 - интерфейс заполненной корзины
После оплаты заказов будет выдан номер заказа в соответствии с рисунком 3.41.
Рисунок 3.41 – номер заказа
В профиле можно изменить личную информацию в соответствии с рисунком 3.42.
Рисунок 3.42 – изменение личных данных
Результат редактирования мы можем увидеть в базе данных в соответствии с рисунком 3.43.
Рисунок 3.43 – изменение личных данных
ЗАКЛЮЧЕНИЕ
В рамках курсового проекта реализован серверный API и клиентский интерфейс для взаимодействия с ним: было разработано защищенное мобильное приложения для доступа к серверным ресурсам. Заказ продуктов питания [6].
Главной задачей было создание системы, способной реализовать следующий набор функций:
регистрация;
вход-выход в личный кабинет;
редактирование профиля;
лента продуктов питания;
добавление в корзину/удаление из корзины;
корзина авторизованного пользователя.
Все требования, объявленные в техническом задании, были полностью реализованы в данном программном продукте.
Все задачи, поставленные в начале разработки проекта, были решены. Таким образом, цель работы достигнута.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Введение в MS SQL Server и T-SQL – URL: https://metanit.com/sql/sqlserver/1.1.php (дата обращения: 20.04.2022). – Текст: электронный.
Клиент-серверное приложение с базой данных MySQL – URL: https://pcoding.ru/pdf/CSharpMySQL.pdf (дата обращения: 20.04.2022). – Текст: электронный.
Архитектура программного обеспечения – URL: https://en.wikipedia.org/wiki/Software_architecture (дата обращения: 20.04.2022). – Текст: электронный.
Выполнение команд и SqlCommand – URL: https://metanit.com/sharp/adonetcore/2.4.php (дата обращения: 20.04.2022). – Текст: электронный.
Правильная работа с БД в Android – URL: https://habr.com/ru/post/125883/ (дата обращения: 20.04.2022). – Текст: электронный.
CodePath Android Cliffnotes – URL: https://github.com/codepath/android_guides/wiki/ (дата обращения: 20.04.2022). – Текст: электронный.