2.47M

КурсоваяAndroid

1.

МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
Учреждение образования“Гомельский государственный университетимени Франциска Скорины”
Факультет физики и ИТ
Кафедра общей физики
Разработка мобильного приложения для онлайнбронирования поездов
Подготовил:
Студент группы МС-32
Дахненко М.С.
Научный руководитель:
Подалов М.А.
Гомель 2023

2.

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

3.

Обоснование выбора технологии
Для разработки приложения онлайн-бронирования поездов был выбран
Android Studio.
Android Studio — это среда разработки, которая используется для создания
приложений для Android-устройств на языке Java и Kotlin.
Также вместе с Android Studio была выбрана платформа Firebase.
Firebase — набор инструментов и сервисов для разработки мобильных и
веб-приложений от Google. С его помощью можно быстро развернуть бэкенд
со своей серверной логикой, подключить базы данных и настроить
авторизацию пользователей.

4.

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

5.

Intro Activity
Создание первого экрана обеспечивает
вход в основную часть приложения для
бронирования билетров на поезда, а также
вход и регистрацию.

6.

Intro Activity
Данный код обеспечивает функционал кнопки для перехода на следующий экран (startBtn),
для перехода на экран входа в аккаунт (button2), для перехода на экран регистрации (button3).

7.

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

8.

Авторизация
В методе setVariable описывается обработка событий для кнопок на экране регистрации. При нажатии на
кнопку signBtn извлекаются значения email и пароля, введенные пользователем в текстовые поля. Далее
происходит проверка длины пароля: если длина пароля меньше шести символов, выводится сообщение с
предупреждением. Метод завершается и регистрация не продолжается.Для создания нового пользователя
используется метод createUserWithEmailAndPassword из Firebase Authentication. Далее выполняется проверка на
успешность
регистрации.
При
некорректной
регистрации
выводится
сообщение
“Ошибка
регистрации”.Функционалом button4 является перевод пользователя на экран входа, минуя процесс регистрации.

9.

Авторизация(экран входа в аккаунт)

10.

Авторизация
При нажатии на кнопку button извлекаются значения email и пароля, введенные пользователем в
текстовые поля. Далее идет проверка заполнения email и пароля: если оба поля не пустые, выполняется
попытка входа. В противном случае выводится сообщение “Пожалуйста, заполните имя и пароль”. После
проверки используется метод signInWithEmailAndPassword из Firebase Authentication для входа пользователя
в аккаунт. При успешном входе пользователь перенаправляется на Main Activity, при ошибке входа
выводится сообщение с текстом “Ошибка входа”.При нажатии на кнопку signUpBtn приложение переходит
на экран регистрации, где пользователь может создать новый аккаунт.

11.

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

12.

Main Activity
Метод setVariable связывает функциональность с элементами пользовательского интерфейса с
использованием binding. Кнопка поиска searchBtn при нажатии создает объект Internt, который
открывает SearchActivity. В Intent добавляются дополнительные данные, которые будут
использоваться пользователем. Кнопка возврата backBtn при нажатии выполняет переход на
предыдущий экран.

13.

Main Activity
Метод initDatePickup инициализирует начальные значения дат в приложении и связывает их с
выбором даты через диалоговое окно. В методе происходит инициализация текущей даты и
завтрашней даты.
Метод initClassSeat предназначен для
настройки выпадающего списка(Spinner) с
предустановленными значениями типов
вагонов. Во время загрузки данных
отображается индикатор
прогресса(ProgressBar), который скрывается
после завершения настройки.

14.

Main Activity
Данный фрагмент кода отвечает за управление числом
пассажиров: взрослых и детей. Основная цель метода
initPassengers – предоставить пользователю возможность
увеличивать или уменьшать количество пассажиров с
помощью кнопок.

15.

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

16.

Search Activity
Данный фрагмент кода – метод,
который инициализирует список
объектов класса Trains из Firebase
Realtime Database. Основная задача
метода – выполнить запрос к базе
данных, отфильтровать данные по
определенным условиям и отобразить
их в пользовательском интерфейсе.
В методе onDataChange проверяется, существует ли результат запроса. Если данные есть,
итерация выполняется по каждому элементу snapshot. Каждый элемент приводится к объекту
класса Train с помощью метода getValue. Условие фильтрует объекты: поле to объекта должно
совпадать с переменной to.Если список не пустой, данные отображаются в RecyclerView,
используя LinearLayoutManager и адаптер TrainsAdapter.

17.

SeatList Activity
После выбора нужно маршрута пользователь
переходит на экран выбора и бронирования
мест.

18.

SeatList Activity
Данный метод настраивает обработчики событий для элементов интерфейса, связанных с выбором и
подтверждением мест в приложении. При нажатии на кнопку backBtn вызывается метод finish, который
завершает текущую активность и возвращает пользователя к предыдущему экрану.
Далее используется обработчик нажатия на кнопку “Подтвердить”. Сначала выполняется проверка,
выбрал ли пользователь хотя бы одно место. Если num больше нуля, то выполняется блок кода для
подтверждения выбора. Если нет - выводится сообщение об ошибке.

19.

SeatList Activity
Сначала происходит создание GridLayoutManager – это менеджер компоновки для RecyclerView, который позволяет
отображать элементы в виде сетки. Второй параметр конструктора указывает количество столбцов в сетке. После
происходит настройка SpanSizeLookup – это интерфейс, который используется для динамической установки размера для
каждого элемента в сетке.
В методе getSpanSize возвращается размер для каждого элемента в сетке. Метод принимает position и возвращает
количество ячеек, которые этот элемент будет занимать в сетке.
Данный фрагмент отвечает за создание и настройку списка
мест для отображения в RecyclerView с использованием
GridLayoutManager.
Сначала происходит установка GridLayoutManager. После
происходит создание списка мест seatList, который будет
использоваться для хранения объектов мест. Далее
создается Map, где ключи – это индексы, а значения –
буквы, соответсвующие буквам мест в ряду.

20.

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

21.

TicketDetail Activity
После выбора мест и всех параметров из
предыдущих экранов пользователь переходит
на экран с оформленным билетом, на
котором отображены все выбранные данные.

22.

TicketDetail Activity
Этот фрагмент кода настраивает интерфейс в
TicketDetailActivity, заполняя элементы
пользовательского интерфейса данными о поезде,
полученными из объекта trains. В начале кода
устанавливается обработчик нажатия на кнопку
backBtn. При нажатии на кнопку вызывается метод
finish, который завершает текущую активность и
возвращает пользователя к предыдущей активности.
Далее осуществляется заполнение текстовых полей
данными о поезде: аббревиатура отправной станции
и станции назначения, название отправной станции,
станции назначения, дату и время отправления
поезда, а также время прибытия, тип вагона, цена и
номера мест.
В конце используется библиотека Glide для загрузки
изображения logo. trains.getTrainLogo – метод
getTrainLogo объекта trains возвращает URL или путь
к изображению логотипа поезда.

23.

Заключение
В ходе выполнения данного данного курсового проекта были получены практические
навыки по разработке и введению в эксплуатацию мобильного приложения с учетом выбора
оптимальной среды разработки, языка программирования. Результатом выполнения курсового
проекта является разработанное приложение – онлайн-бронирование билетов на поезда на ОС
андроид.
Проектирование выполнялось в Android Studio с использованием подключения Firebase
database для хранения в нем файла с информацией о поездах, а также для подключения
аутентификации. По окончанию проектирования были созданы следующие activity:
IntroActivity, LoginAcitivity и SignupAcitivity для аутентификации, MainActivity, SearchActivity,
SeatListActivity и TicketDetailActivity.
Основным функционалом, который может использовать пользователь, является выбор дат
отправления и прибытия, пунктов прибытия и отправления, а также выбор мест, вагона и
количества взрослых и детей.
English     Русский Rules