Вы находитесь на странице: 1из 33

ТИТУЛЬНИК

Подтитульник
Оглавление
Список используемых сокращений...................................................................4

ВВЕДЕНИЕ.............................................................................................................5

1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ...........................................................6

1.1 Описание предметной области..................................................................6

1.2 Анализ аналогов разрабатываемого приложения.................................6

1.3 Выводы к разделу 1......................................................................................7

2 МЕТОДОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ....................................8

2.1 Выбор языка разработки............................................................................8

2.2 Выбор инструментов для разработки интерфейса приложения.........8

2.3 Выбор среды для разработки приложения и БД....................................8

2.4 Выводы к разделу 2..................................................................................8

3 РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ....................................................................9

3.1 Стадии и этапы разработки.......................................................................9

3.2 Структурная схема приложения...............................................................9

3.3 Cтруктура БД..............................................................................................10

3.4 UML-диаграмма деятельности................................................................11

3.5 Структура приложения.............................................................................13

3.6 Разработка серверной части....................................................................15

3.7 Разработка интерфейса приложения......................................................21

4 РУКОВОДСТВО ПО ИСПОЛЬЗОВАНИЮ ПРОГРАММЫ..................28

4.1 Предназначение программы....................................................................28

4.2 Регистрация.................................................................................................28

4.3 Авторизация................................................................................................28

4.5 Отправка сообщений.................................................................................28


3
4.6 Выводы к разделу 4....................................................................................29

5 ТЕСТИРОВАНИЕ ПРИЛОЖЕНИЯ............................................................30

5.1 Выводы к разделу 5....................................................................................30

ЗАКЛЮЧЕНИЕ...................................................................................................31

Список источников.............................................................................................32

4
Список используемых сокращений
API – Application Programming Interface;
FCM – Firebase Cloud Messaging;
ОС – Операционная система;
БД – База данных.

5
ВВЕДЕНИЕ
В качестве темы для курсовой работы была выбрана разработка
мобильного приложения под ОС android “Мессенджер LunGO”. В
современном мире каждый человек обладает смартфоном, и для комфортной
связи с другими людьми были придуманы различные социальные сети и
мессенджеры. Приложений для обмена сообщений достаточно много, однако
данное приложение, в отличии от своих аналогов, не имеет “лишних”
функций, которые только мешают комфортному общению для пользователя.
Проект создавался под смартфоны на базе Android версии не ниже 4.4
(API>19).

6
1 АНАЛИЗ ПРЕДМЕТНОЙ ОБЛАСТИ
1.1 Описание предметной области
Предметной областью для данной курсовой работы является
мобильный мессенджер «LunGO».
Почти каждый человек пользуется различными мессенджерами. Они
предназначены для общения между людьми. Пользователи могут отправлять
сообщения, делиться новостями, записывать голосовые сообщения,
пересылать картинки и фотографии.
Преимущества использования мессенджера:
1) нет необходимости делать звонки, чтобы что-то рассказать человеку.
2) Нет необходимости тратить деньги на отправку сообщений.
1.2 Анализ аналогов разрабатываемого приложения
Идея разработки мобильного мессенджера не является новой.
Существует немало разнообразных приложений для разных платформ.
Рассмотрим некоторые их них.
Основные аналоги приложения “Мессенджер”
1) Viber — приложение для смартфонов, которое позволяет совершать
видео и голосовые VoIP звонки через всемирную систему объединённых
компьютерных сетей "Интернет".
2) WhatsApp — популярная бесплатная система мгновенного обмена
текстовыми сообщениями для мобильных и иных платформ с поддержкой
голосовой и видеосвязи. Позволяет пересылать текстовые сообщения,
изображения, видео и аудио через Интернет. 
3) Telegram — кроссплатформенный мессенджер, позволяющий
обмениваться сообщениями и медиафайлами многих форматов.
4) Facebook Messenger – интегрированное приложение с системой
обмена сообщений на основном сайте Facebook. То есть если вы
зарегистрированы на этом сайте, то для того, чтобы вам ответить на чье-либо
сообщение не нужно включать компьютер и заходить на сайт. Достаточно

7
скачать Messenger и вы сможете в любое время ответить на сообщение со
своего смартфона. Ежемесячно данное приложение скачивает около 50
миллионов людей. На 2017 год его использует более 1 млрд пользователей.
Разработанная по теме данной курсовой работы программа обладает
следующими преимуществами перед перечисленными:
1) Озвучивание текстового сообщения при нажатии на него.
2) Приложение занимает меньше памяти смартфона.
3) Интересный дизайн.
4) Нет лишних функций, которые не нужны простому пользователю.
1.3 Выводы к разделу 1
С учетом особенностей рассмотренного выше программного
обеспечения, можно поставить следующие задачи для реализации
собственного приложения:
1) Спроектировать удобный интерфейс;
2) Разработать функции, которые будут реализовывать полноценную
работоспособность приложения;
3) Протестировать разработанный продукт и в случае необходимости
доработать его.

8
2 МЕТОДОЛОГИЯ РАЗРАБОТКИ ПРИЛОЖЕНИЯ
2.1 Выбор языка разработки
Для разработки приложения был выбран язык программирования Java,
принадлежащий семейству объектно-ориентированных языков
программирования. Именно на этом языке ведется разработка мобильных
приложений под ОС android.
2.2 Выбор инструментов для разработки интерфейса приложения
Приложение будет разрабатываться как мобильное, поэтому разработка
интерфейса будет производиться программными средствами среды
разработки Android studio c использованием XML разметки.
2.3 Выбор среды для разработки приложения и БД
Для разработки приложения будет использоваться среда Android
Studio. В качестве базы данных была выбрана noSQL база данных Firebase
Realtime Database. В отличие от реляционной модели, которая сохраняет
логическую бизнес-сущность приложения в различные физические таблицы в
целях нормализации, NoSQL хранилища оперируют с этими сущностями как
с целостными объектами, что позволяет более гибко использовать
хранящиеся данные.
2.4 Выводы к разделу 2
Таким образом, был выбран один из основных языком
программирования под ОС android – Java. Среда разработки – Android studio,
база данных – Firebase realtime database.

9
3 РЕАЛИЗАЦИЯ ПРИЛОЖЕНИЯ
3.1 Стадии и этапы разработки
Таблица 1 Содержание этапов работ

Содержание работ Срок выполнения
этапа
Разработка структуры входных и
1 3-4 неделя
выходных данных
2 Разработка алгоритма решения задачи 5-6 неделя
3 Разработка структуры программы 8 неделя
4 Разработка графического интерфейса 9 неделя
5 Написание кода программы 6-14 неделя
6 Отладка программы 13-14 неделя
7 Написание и оформление отчета 13.14 неделя

3.2 Структурная схема приложения


Структурная схема приложения представлена на рисунке 3.1.

Рисунок 3.1. Структурная схема приложения


В качестве Веб сервера была выбрана Firebase от компании Google. Это
удобный инструмент, который предоставляет свои вычислительные
10
мощности. Основной сервис — облачная СУБД класса NoSQL, позволяющая
разработчикам приложений хранить и синхронизировать данные между
несколькими клиентами. Поддержаны особенности интеграции с
приложениями под операционные системы Android и iOS, реализовано API
для приложений на JavaScript, Java, Objective-C и Node.js, также возможно
работать напрямую с базой данных в стиле REST из ряда JavaScript-
фреймворков, включая AngularJS, React, Vue.js, Ember.js и Backbone.js.
Предусмотрено API для шифрования данных.
База данных – realtime database, которая является нереляционной, т.е
сущности хранятся не в физических таблицах, а в виде объектов, которые
удобно использовать в Java коде.
В качестве хостинга для хранения статических файлов (таких как CSS,
HTML, JavaScript, изображения), выбран firebase storage, обеспечивающий
доставку через CDN и сервис аутентификации клиента с использованием
кода только на стороне клиента с поддержкой входа через Facebook, GitHub,
Twitter и Google.
3.3 Cтруктура БД
В отличие от реляционной модели, которая сохраняет логическую
бизнес-сущность приложения в различные физические таблицы в целях
нормализации, NoSQL хранилища оперируют с этими сущностями как с
целостными объектами. Агрегатная модель представлена на рисунках 3.2-3.3.

11
Рисунок 3.2. Агрегатная модель noSQL базы данных

Рисунок 3.3. Реальный пример из базы данных

3.4 UML-диаграмма деятельности


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

12
Реализованные задачи представлены на UML-диаграмме деятельности
(рисунок 3.4).

Рисунок 3.4. Диаграмма деятельности

13
3.5 Структура приложения
В директории java расположен весь исходный код проекта. В
директории res находятся все изображения, иконки, шрифты, значения, xml
разметка, layout’ы. Структура проекта представлена на рисунках 3.5-3.8

Рисунок 3.5. Структура проекта

Рисунок 3.6. Структура проекта

14
Рисунок 3.7. Структура проекта

Рисунок 3.8. Структура проекта

15
3.6 Разработка серверной части
Функция регистрации пользователя представлена на рисунке 3.9.

Рисунок 3.9. Функция регистрации пользователя

Рисунок 3.10. Функция регистрации пользователя

16
Функция авторизации пользователя представлена на рисунке 3.11.

Рисунок 3.11. Авторизация пользователя


Функция проверки по токену при входе в приложение, авторизован ли
пользователь представлена на рисунке 3.12.

Рисунок 3.12. Проверка по токену

17
Сущность пользователя, которая будет храниться в базе данных
представлена на рисунке 3.13.

Рисунок 3.13. Сущность пользователя


Сущность сообщений, которая будет храниться в базе данных
представлена на рисунке 3.14.

Рисунок 3.14. Сущность сообщений

18
Конструктор и поля класса для работы с базой данных представлены на
рисунке 3.15.

Рисунок 3.15. Класс для работы с БД


Функция загрузки аватарок пользователей с сервера представлена на
рисунке 3.16.

Рисунок 3.16. Функция загрузки аватарок

19
Функция отправки сообщений и сохранение их в БД представлены на
рисунке 3.17.

Рисунок 3.17. Отправка сообщений


Функция загрузки сообщений с сервера представлена на рисунке 3.18.

Рисунок 3.18. Загрузка сообщений

20
Функция отправки уведомлений представлена на рисунке 3.19.

Рисунок 3.19. Отправка уведомлений


Функция получения контактов с БД представлена на рисунке 3.20.

Рисунок 3.20. Получение контактов

21
3.7 Разработка интерфейса приложения
Окно регистрации состоит из трех полей ввода, чекбокса и кнопки. Для
переключения между регистрацией и авторизацией был сделан тумблер с
двумя режимами Sign in и Sign up. Окно регистрации представлено на
рисунке 3.21.

Рисунок 3.21. Окно регистрации

Окно авторизации состоит из двух полей ввода и кнопки. Представлено


на рисунке 3.22.

Рисунок 3.22. Окно авторизации

22
Главное окно приложения представлено на рисунке 3.23. Оно включает
в себя две вкладки, контакты и чаты. В левом верхнем углу расположен
элемент ImageView, при нажатии на который пользователь может установить
личную аватарку. В правом верхнем углу расположена кнопка L, которая
содержит основное меню приложения. В нижнем правом углу находится
кнопка, с помощью которой можно найти любого пользователя,
зарегистрированного в приложении.

Рисунок 3.23. Главное окно приложения

23
Окно поиска пользователей в общем списке представлено на рисунке
3.24. С помощью регулярных выражений пользователь может найти любого
человека зарегистрированного в приложении. Достаточно ввести часть его
имени в поле ввода в верхней части интерфейса.

Рисунок 3.24. Общий список контактов

24
Окно группового чата представлено на рисунке 3.25. При создании чата
пользователь может добавить любое количество человек. Также имеется
возможность изменить картинку группы или название. Над каждым
сообщением отображается имя пользователя.

Рисунок 3.25. Групповой чат

25
Окно с личными сообщениями представлено на рисунке 3.26. При
нажатии на кнопку в правом верхнем углу, пользователь может добавить
собеседника в контакты или очистить чат, а также посмотреть профиль.

Рисунок 3.26. Личные сообщения

26
Окно с выпадающим меню представлено на рисунке 3.27. При нажатии
на кнопку L в верхнем правом углу выпадает главное меню, в котором
пользователь может создать группу, зайти в настройки или выйти с аккаунта.

Рисунок 3.27. Выпадающее меню

Окно настроек представлено на рисунке 3.28.

Рисунок 3.28. Настройки приложения

27
Окно восстановления пароля представлено на рисунке 3.29.
Пользователю необходимо ввести email. Все инструкции по восстановлению
будут отправлены на почту.

Рисунок 3.29. Окно восстановления пароля

28
4 РУКОВОДСТВО ПО ИСПОЛЬЗОВАНИЮ ПРОГРАММЫ
4.1 Предназначение программы
Программа разработана для обмена информацией между
пользователями. Пользователи могут писать друг другу личные текcтовые и
голосовые сообщения, отправлять картинки, видео, устанавливать статус и
аватарки. Также пользователи могут создавать групповые чаты с
неограниченным количеством человек.
4.2 Регистрация
Для регистрации пользователю необходимо ввести логин, пароль и
почту. Если все данные введены корректно, его перенаправит на страницу
авторизации.
4.3 Авторизация
Для авторизации, зарегистрированному пользователю необходимо
правильно ввести данные, указанные при регистрации, в соответствующие
поля.
4.4 Главное меню
В главном меню расположены две вкладки: чаты и контакты. Для того
чтобы добавить пользователя в контакты или написать ему, необходимо
найти в общем списке необходимого человека. В верхней части интерфейса
расположено поле ввода, с помощью которого по имени можно найти
пользователя. Для выхода из приложения необходимо нажать на кнопку L в
верхнем правом углу. Для установки аватара пользователя необходимо
нажать на иконку человека в верхнем левом углу.
4.5 Отправка сообщений
Чтобы отправить текстовое сообщение, начните вводить в поле ввода
текст и справа от поля поля появится кнопка GO. Нажмите ее для отправки
сообщения. Для отправки аудио или изображения необходимо нажать на
соответствующие кнопки.

29
4.6 Выводы к разделу 4
Было описано предназначение приложения и приведены инструкции
для основных функций приложения.

30
5 ТЕСТИРОВАНИЕ ПРИЛОЖЕНИЯ
В ходе разработке приложения были проведены различные тесты.
Находились и исправлялись некоторые ошибки приложения. Вносились
корректировки, улучшающие интерфейс.
Тестирование проводилось на всем протяжении разработки
приложения различными пользователями под операционной системой
android версий 4.4-9.0
5.1 Выводы к разделу 5
Проведение итоговых тестовых запусков показало, что приложение:
 работоспособно;
 работает на устройствах с операционной системой android выше
4.4;
 интуитивно понятно и удобно;
 функционально.
В ходе выполнения курсовой работы было разработано
соответствующее техническому заданию приложение для мобильных
телефонов под ОС android “Мессенджер LunGO”.

31
ЗАКЛЮЧЕНИЕ
По итогам разработки были выполнены следующие задачи:
 был спроектирован интуитивно понятный интерфейс и логика
приложения;
 были реализованы необходимые для работы приложения функции,
работающие без ошибок;
 были проведены тесты для оценки работоспособности и
корректности работы приложения.
Поставленная цель курсовой работы была выполнена.
В результате проведенной работы были изучены и приобретены
следующие компетенции:
 Разработка клиент-серверных приложений;
 Проектирование архитектуры ПО;
 Разработка ПО под мобильные устройства с ОС android.

32
Список источников

1) Firebase Realtime Database [Электронный ресурс]. – Режим доступа:


https://firebase.google.com/docs/database – Заглавие с экрана – (Дата
обращения: 24.10.2019).
2) Firebase Cloud Storage [Электронный ресурс]. – Режим доступа:
https://firebase.google.com/docs/storage?authuser=0 – Заглавие с экрана – (Дата
обращения: 27.10.2019).
3) Firebase Cloud Messaging [Электронный ресурс]. – Режим доступа:
https://firebase.google.com/docs/cloud-messaging?authuser=0 – Заглавие с
экрана – (Дата обращения: 20.11.2019).
4) Start Android - учебник по Android для начинающих и продвинутых
[Электронный ресурс]. – Режим доступа: https://startandroid.ru/ru/ – Заглавие с
экрана – (Дата обращения: 20.11.2019).
5) Material Design [Электронный ресурс]. – Режим доступа:
https://material.io/design/ – Заглавие с экрана – (Дата обращения: 24.03.2019).
6) Figma [Электронный ресурс]. – Режим доступа:
https://www.figma.com/features/ – Заглавие с экрана – (Дата обращения:
27.11.2019).
7) Android XML design [Электронный ресурс]. – Режим доступа:
https://developer.android.com/design – Заглавие с экрана – (Дата обращения:
20.10.2019).

33